Forge Forum Engine V1.0

Samedi 11 Juillet, 2026 13:46

1 Vues

0 Commentaires

  • 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.

    1. 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
    2. 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é.
    3. Types de balises
      Forge Forum utilise trois types de balises :
      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.



      globales (toutes pagesBalises)
      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; }


    4. Modèles par page
    5. 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
    6. 2 subforum_row.tpl — Ligne sous-forum / sous-catégorie
      Compilé par : main.php, en boucle sur chaque sous-catégorie
      Balise 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
    7. 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
    8. 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
    9. 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
    10. 6 post.tpl — Message unique
      Compilé par : topic.php, pour chaque message dans post_rows
      Balise 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.


    11. 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
    12. 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.


    13. 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
    14. 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).


    15. 11 notifications.tpl + notification_row.tpl
      Action : notifications.php
      URL : ?do=forum&action=notifications
      Balise 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
    16. 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é
    17. 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; }



    18. 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é.
    1. 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.

Auteur: Elegance

Plugin : Forge Forum v1.0

Version DLE: 19.1 20.0

Pour toute question ou mise à jour:  Les mises à jour seront effectuées viaGithub

ou via le site web de l'auteur.


DarkLane

Rédacteur de l'article

A propos

Signature

N'importe qui peut critiquer.
Créer quelque chose qui sera critiqué n'est pas donné à tout le monde.

Information

Les visiteurs appartenant au groupe Invités ne peuvent pas laisser de commentaires sur cette publication.