-
Forge Forum Engine v1.0.0 est un plugin de forum nouvelle génération, rapide, sécurisé et modulaire, développé pour l’infrastructure DataLife Engine. La traduction du ficher languages/French/forum.lng à été effectuté avec CHAT GPT pareils pour les templates.
Veuillez lire le fichier Readme.md qui se trouve dans l'arhive
-
Forge Forum — Guide des modèles et des balises
Ce document explique toutes les balises, blocs et points de configuration utilisés dans les modèles front-end du module Forge Forum.- Structure des fichiers
Les modèles se trouvent sous votre thème DLE actif : templates/{skin}/forum/
├── index.tpl → Page d'accueil du forum
├── category.tpl → Liste des catégories / sujets
├── topic.tpl → Vue du sujet + réponse rapide
├── topic_row.tpl → Ligne d'un sujet unique (dans la liste de catégorie)
├── subforum_row.tpl → Ligne d'une sous-catégorie / forum (sur la page d'accueil)
├── post.tpl → Ligne d'un message unique (dans un sujet)
├── profile.tpl → Profil forum d'un membre
├── new_topic.tpl → Formulaire de nouveau sujet
├── edit.tpl → Formulaire d'édition de message
├── search.tpl → Page de recherche
├── notifications.tpl → Liste des notifications
├── notification_row.tpl → Ligne d'une notification
├── forum.css → Styles du forum (type MyBB)
└── forum.js → Gestion ouverture/fermeture des cartes catégorie, etc.
Fichiers de langue : language/{Turkish|English|Russian}/forum.lng
Images de rang (optionnel) : templates/{skin}/forum/ranks/administrator.png - Intégration au thème
Ajoutez dans votre modèle principal (main.tpl ou équivalent) le CSS/JS pour les pages du forum : Le contenu du forum se compile dans la zone {content} de DLE ; il n’y a pas de forum/main.tpl séparé. - Types de balises
Forge Forum utilise trois types de balises :
globales (toutes pagesBalises)Type Syntaxe Description Variable {nom_balise} Texte ou HTML rempli par PHP Bloc condition [bloc]...[/bloc] Affiche le contenu si la condition est vraie, sinon supprime le bloc Groupe DLE [group=1,2]...[/group] Contrôle d’accès selon groupe utilisateur (après compilation du modèle) Note : Les blocs condition sont gérés avec set_block(). Les balises d’ouverture/fermeture sont définies en chaînes vides ou supprimées par regex.
Ces balises sont injectées via init.php et forum.php sur toutes les pages du forum.Balise Usage {forum_breadcrumb} Fil d’Ariane (breadcrumb) HTML. Généré dans forum.php à partir de $forum_speedbar. {http_home_url} URL racine du site (ex. https://site.com/) {dle_login_hash} Hash de sécurité / CSRF, envoyé dans les formulaires comme user_hash {lang_code} Code langue actif (tr, en, ru) {lang_dir} Direction du texte (ltr / rtl) Blocs conditionnels globaux (init.php) : Bloc Visibilité --------------------- ------------------------------------------------------ [is-logged]...[/is-logged] Utilisateur connecté [not-logged]...[/not-logged] Utilisateur non connecté [has-forum-notifs]...[/has-forum-notifs] Connecté avec notifications non lues Balise complémentaire : {forum_notif_count} : nombre de notifications non lues (significatif uniquement à l’intérieur de [has-forum-notifs]). Couleur du thème (injection automatique) : Si la couleur du titre des cartes catégorie (theme_header_color) est configurée dans le panneau admin, init.php ajoute : .forum-wrapper { --mybb-bg-header: #1d2d44; } - Modèles par page
- 1 index.tpl — Page principale du forum
Action : main.php
URL : /forum/Balise Usage {categories} HTML combiné de tous les blocs catégories (incluant subforum_row.tpl) {forum_title} Titre du forum (ex. "Forum") {online_summary} Résumé du type « Actifs dans les 15 dernières minutes : X membres » {online_list} Liste des membres en ligne, liens séparés par virgules {total_posts} Nombre total de messages {total_threads} Nombre total de sujets {total_members} Nombre total de membres {newest_member} Nom et lien du membre le plus récent - 2 subforum_row.tpl — Ligne sous-forum / sous-catégorie
Compilé par : main.php, en boucle sur chaque sous-catégorieBalise Usage {sf_url} URL de la page catégorie {sf_name} Nom catégorie {sf_description} Description catégorie {sf_topics} Nombre de sujets {sf_posts} Nombre de messages {sf_icon_html} HTML pour icône Font Awesome ou image {sf_subforums} Liste des liens sous-forums {sf_last_url} URL du dernier message {sf_last_topic} Titre du dernier sujet (abrégé) {sf_last_topic_full} Titre complet pour attribut title {sf_last_date} Date du dernier message {sf_last_user} Dernier utilisateur ayant posté {sf_last_avatar} Avatar HTML du dernier auteur Blocs conditionnels : Bloc Condition ----------------- ------------------------------------------------- [sf-has-icon] Une icône personnalisée est définie [sf-no-icon] Pas d’icône (cercles doubles par défaut) [sf-has-subforums] Sous-catégories présentes [sf-has-lastpost] Un dernier message existe [sf-no-lastpost] Aucune réponse dans la catégorie - 3 category.tpl — Liste des sujets d’une catégorie
Action : category.php
URL : /forum/{slug-catégorie}/Balise Usage {cat_name} Nom de la catégorie {cat_description} Description {cat_total_topics} Nombre total de sujets avant pagination {cat_alt} Slug SEO de la catégorie (pour lien nouveau sujet) {cat_id} ID catégorie {topic_rows} Combinaison des lignes des sujets (topic_row.tpl) ou message vide {pagination} HTML pour la pagination - 4 topic_row.tpl — Ligne d’un sujet
Compilé par : category.php, en boucle sur chaque sujet (ex: mybb-row-unread)Balise Usage {t_row_class} Classe CSS du {t_title_style} Style inline pour le titre (gras bleu, etc.) {t_title} Titre du sujet (échappé) {t_url} URL du sujet (.html) {t_author} Auteur du sujet {t_date} Date d’ouverture {t_replies} Nombre de réponses {t_views} Nombre de vues {t_last_url} Lien direct vers dernier message (bonne page + #post-ID) {t_last_date} Date dernier message {t_last_user} Dernier auteur message {t_last_avatar} Avatar HTML {t_prefix_name} Nom du préfixe du sujet {t_prefix_color} Couleur hex du préfixe {t_prefix_icon} Classe Font Awesome de l’icône préfixe Blocs conditionnels : Bloc Condition -------------------- ------------------------------------------------ [t-pinned] Sujet épinglé [t-locked] Sujet verrouillé [t-unread] Sujet non lu dans la session [t-read] Sujet lu [t-has-prefix] Sujet avec préfixe [t-has-lastpost] Sujet a un dernier message - 5 topic.tpl — Page d’un sujet
Action : topic.php
URL : /forum/topic/{id}-{slug}.html, /forum/topic/{id}-{slug}/page/{n}/Balise Usage {topic_title} Titre du sujet (peut inclure HTML de préfixe) {topic_id} ID du sujet {topic_views} Vues {topic_replies} Réponses {topic_date} Date d’ouverture {topic_is_locked} 1 ou 0 (verrouillé) {topic_is_pinned} 1 ou 0 (épinglé) {post_rows} Combinaison de tous les messages (post.tpl) {pagination} Liens de pagination des messages {poll_block} Bloc sondage HTML (généré par PHP si présent) {tags_block} Bloc des étiquettes (vide, extensible) {reply_editor} Éditeur de réponse rapide (TinyMCE/Froala ou textarea) {pin_label} “Épingler” / “Désépingler” (localisé) {lock_label} “Verrouiller” / “Déverrouiller” {mod_display} Affichage outils modération : block ou none Blocs conditionnels : Bloc Condition ---------------------- ------------------------------------------------ [topic-pinned] Sujet épinglé [topic-locked] Sujet verrouillé [allow-bump] L’utilisateur peut remonter le sujet [not-group=5]...[/not-group] Non invité — formulaire de réponse rapide visible [group=5]...[/group] Invité — avertissement connexion/inscription Fonctions jаvascript intégrées (dans topic.tpl) : Fonction Rôle --------------------------- ----------------------------------------------------------- forumLikePost(id, type) AJAX pour like / dislike forumQuotePost(id) AJAX citation de message forumReportPost(id) Envoi d’une plainte modAction(action, data) Épingler, verrouiller, supprimer, remonter handleForumUpload(input) Téléversement de fichier pour réponse rapide triggerForumUpload() Ouvre le sélecteur de fichier - 6 post.tpl — Message unique
Compilé par : topic.php, pour chaque message dans post_rowsBalise Usage {post_id} ID du message (#post-{id} comme ancre) {p_name} Nom d’utilisateur {p_posts} Nombre messages forum de l’utilisateur {p_pts} Points forum {p_text} Contenu du message (BBCode/HTML analysé) {p_date} Date d’envoi {p_num} Numéro de message (#1, #2, etc.) {likes} Nombre de likes {dislikes} Nombre de dislikes {avatar} Avatar ou bloc par défaut {p_group_id} ID groupe utilisateur DLE {p_group_name} Nom du groupe (ADMIN, MEMBRE, etc.) {p_group_style} CSS en ligne pour badge groupe {p_rank_name} Nom du rang forum {p_rank_color} Couleur du rang {p_rank_html} HTML du badge rang (image ou icône) {p_star_count} Nombre d’étoiles (1–5 selon note) {p_star_color} Couleur des étoiles {p_ip} IP (lien pour admin, invisible aux autres) {p_email_href} Lien email retour {p_pm_href} Lien message privé {p_pm_onclick} onclick modal PM {p_find_href} Recherche messages de l’utilisateur {p_uid} ID utilisateur Blocs conditionnels : Bloc Condition ---------------------- ---------------------------------------------------- [owner] Premier message du sujet (propriétaire) [p-has-rank] Rang forum défini et système activé [has-email] Email affichable [no-email] Pas d’email [can-pm] PM possible [no-pm] PM désactivé [has-profile] Membre enregistré (lien profil / recherche) [edit] Utilisateur peut éditer ce message [complaint] Bouton de plainte visible [group=1,2] Admin / modérateur (affiche IP, sélection multiple) Les étoiles s’affichent avec : .mybb-author-stars[data-stars="{p_star_count}"][data-color="{p_star_color}"] rempli par le JS dans topic.tpl. - 7 profile.tpl — Profil forum
Action : profile.php
URL : /forum/user/{nom-utilisateur}/Balise Usage {user_name} Nom utilisateur {user_id} ID utilisateur {user_fullname} Nom complet {user_land} Pays / localisation {points} Points forum {topic_count} Nombre de sujets ouverts {post_count} Nombre de messages écrits {reg_date} Date d’inscription {last_date} Dernière visite {avatar_html} HTML avatar de profil (support Gravatar) {rank_title} Nom du rang {rank_color} Couleur du rang {rank_icon} Icône FA du rang {rank_badge} Texte court du badge rang {rank_html} HTML complet badge rang {group_name} Nom du groupe DLE {group_color} Couleur groupe DLE {online_dot} Indication en ligne HTML ou vide {pm_url} URL messagerie privée {email_url} URL email {recent_topics} Liste des derniers sujets (HTML généré par PHP) {recent_posts} Liste des derniers messages (HTML PHP) Blocs conditionnels : Bloc Condition --------------------- -------------------------------------------------- [has-forum-rank] Rang forum défini [has-pm] Affiche lien PM [has-email] Affiche lien email [has-land] Affichage info localisation [has-fullname] Nom complet présent - 8 new_topic.tpl — Nouveau sujet
Action : new_topic.php
URL : /forum/new-topic/ ou /forum/new-topic/{categorie}/Balise Usage {forum_editor} Éditeur de sujet (wseditor + TinyMCE/Froala) {category_selector} Menu {prefix_selector} Menu {cat_id} ID catégorie présélectionnée {cat_name} Nom catégorie présélectionné Champs de formulaire fixes dans le modèle : title, text, tags, poll_question, poll_options, poll_max_choices, poll_days, poll_multiple, submit_topic, user_hash. - 9 edit.tpl — Édition de message
Action : edit.php
URL : ?do=forum&action=edit&post_id={id}Balise Usage {post_id} ID du message édité {topic_id} ID du sujet {topic_title} Titre du sujet (bandeau info) {post_text} Texte brut du message (textarea fallback) {forum_editor} HTML de l’éditeur {category_selector} Seulement pour le premier message {prefix_selector} Seulement pour le premier message {title_val} Titre actuel {tags_val} Étiquettes actuelles (virgule séparée) {poll_question} Question du sondage {poll_options} Options du sondage (une par ligne) {poll_max_choices} Nombre max de choix {poll_days} Durée du sondage en jours {poll_multiple_checked} checked ou vide Bloc conditionnel : Bloc Condition ------------------ --------------------------------------------------- [first_post] Message édité est premier du sujet — affiche champs titre, catégorie, sondage - 10 search.tpl — Recherche
Action : search.php
URL : ?do=forum&action=search (+ q, in, mode)Balise Usage {q} Terme de recherche (dans le formulaire) {in_topics} Checked si recherche dans titres de sujet {in_posts} Checked si recherche dans messages {total} Nombre de résultats {results} Lignes résultats HTML (générées par PHP) {pagination} Pagination Bloc conditionnel : Bloc Condition ------------ --------------------------------------------------- [results] Si au moins un résultat, affiche bandeau supérieur Modes supplémentaires (URL) : mode=new (nouveaux messages), mode=today (messages du jour). - 11 notifications.tpl + notification_row.tpl
Action : notifications.php
URL : ?do=forum&action=notificationsBalise Usage {notification_rows} Combinaison des lignes notification notification_row.tpl : Balise Usage ---------------------- -------------------------------------------------- {id} ID notification {sender} Nom de l’expéditeur {topic_title} Titre du sujet concerné {notif_url} Lien vers sujet / message {date} Date de notification Blocs conditionnels : Bloc Condition -------------------- ------------------------------------------------- [type-reply] Notification de réponse [type-like] Notification de like [type-mention] Notification @mention [notif-unread] Notification non lue [notif-read] Notification lue - Balises de groupe locales DLE
Les balises standard group sont supportées dans les modèles : [group=1]Seulement admin[/group]
[group=1,2]Admin et modérateur[/group]
[not-group=5]Pas invité[/not-group]
Groupes typiques :
1 = Administrateur
2 = Modérateur
5 = Invité - Variables CSS (forum.css)
Pour personnaliser le thème via :root / .forum-wrapper :Variable Défaut Usage --mybb-bg-header #1d2d44 Titre des cartes catégorie --mybb-bg-body #ebf0f6 Fond de page --mybb-bg-card #ffffff Fond des cartes --mybb-bg-subheader #ebf2fb Bandes sous-titres --mybb-text-primary #1d2d44 Texte principal --mybb-text-muted #8c9ba5 Texte atténué --mybb-border-color #c9d3e0 Couleur des bordures --mybb-radius-sm/md/lg 4/6/8px Arrondis des coins Bandeau bleu de l’éditeur (compatible DLE) : .wseditor { border-top: 5px solid #0c5f7e; } - Points d’accès AJAX (JS du modèle)
Module | URL | Fonction
------------|--------------------------------|-----------------------------------------
forum_like | ?controller=ajax&mod=forum_like | Like / dislike
forum_quote | ?controller=ajax&mod=forum_quote | Citation
forum_upload| ?controller=ajax&mod=forum_upload | Téléversement fichiers/images
forum_moderation | ?controller=ajax&mod=forum_moderation | Épingler, verrouiller, supprimer, remonter
forum_reports| ?controller=ajax&mod=forum_reports | Plaintes
forum_tools | ?controller=ajax&mod=forum_tools | Outils d’administration
Tous les appels doivent envoyer user_hash / dle_login_hash. 9. Structure URL SEO
Règles définies dans forge_forum.xml via DLEUrl::AddRule : | Page | Exemple d’URL |
|-----------------|---------------------------------------|
| Accueil | /forum/ |
| Catégorie | /forum/{categorie-slug}/ |
| Page catégorie | /forum/{categorie-slug}/page/2/ |
| Sujet | /forum/topic/{id}-{slug}.html |
| Page sujet | /forum/topic/{id}-{slug}/page/2/ |
| Dernier message | …/page/N/#post-{id} |
| Nouveau sujet | /forum/new-topic/ |
| Profil | /forum/user/{utilisateur}/ |
| Recherche | /forum/search/ |
10. Fichiers de langue (forum.lng)
Les textes statiques des modèles sont déplacés dans les fichiers de langue. Côté PHP, on utilise les clés $lang['forum_...']. Langues supportées :
language/Turkish/forum.lng
language/English/forum.lng
language/Russian/forum.lng
Le fichier forum.lng correspondant à la langue du site DLE est chargé automatiquement (engine/modules/forum.php). 11. Conseils de personnalisation- Nouveau thème : copiez templates/Default/forum/ dans {skin}/forum/, ajoutez CSS/JS dans main.tpl.
- Ajouter un bloc conditionnel : en PHP, utiliser $tpl->set("[bloc-nom]", ""); + $tpl->set("[/bloc-nom]", ""); ou supprimer avec set_block(..., "").
- Modèle en boucle : les sous-modèles comme topic_row.tpl sont compilés via $tpl2->load_template() dans une boucle et insérés dans le modèle principal via {topic_rows}.
- Image de rang : dans Admin → Paramètres des rangs, nommez l’image (ex. administrator.png) et placez-la dans templates/{skin}/forum/ranks/.
- Fil d’Ariane : la plupart des pages utilisent {forum_breadcrumb} sauf profile.php qui produit un fil personnalisé.
- Version
Plugin : Forge Forum v1.0
Guide : Balises modèles — Compatible moteur Forge Forum
Pour questions et mises à jour : merci de poster un commentaire sous le sujet.
Les mises à jour seront publiées via Github.
- Structure des fichiers
-
Vous n’êtes pas autorisé à télécharger des fichiers depuis notre serveur. Si vous voulez avoir accés aux téléchargements veuillez vous connecter ou inscrivez-vous sur le site c'est gratuit!
DarkLane
Groupe: AdministrateursDiscution
Aucun commentaire pour le moment — soyez le premier.