<?xml version="1.0" encoding="UTF-8" ?>
<!-- RSS generated by PHPBoost on Wed, 29 Apr 2026 06:10:48 +0200 -->
<rss version="2.0" xmlns:atom="https://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Wiki]]></title>
		<atom:link href="https://www.phpboost.com/syndication/rss/wiki/96" rel="self" type="application/rss+xml"/>
		<link>https://www.phpboost.com</link>
		<description><![CDATA[Derniers articles de la catégorie Design et interface PHPBoost 6]]></description>
		<copyright>(C) 2005-2026 PHPBoost</copyright>
		<language>fr</language>
		<generator>PHPBoost</generator>
		
            <item>
                <title><![CDATA[1 - Structure d'un thème PHPBoost 6]]></title>
                <link>https://www.phpboost.com/wiki/1-structure-d-un-theme-phpboost-6</link>
                <guid>https://www.phpboost.com/wiki/1-structure-d-un-theme-phpboost-6</guid>
                <description><![CDATA[<h2 class="formatter-title wiki-paragraph-2" id="paragraph-introduction">Introduction</h2><br />

FWKBoost, le framework html/css/javascript mis en place depuis la version 6 accentue le fonctionnement par héritage en l'étendant à tous les fichiers utilisés dans un thème.<br />
<ul class="formatter-ul">
    <li class="formatter-li">Tous les fichiers communs sont placés dans le dossier <pre style="display:inline;">/templates/__default__</pre>
    </li><li class="formatter-li">Tous les fichiers relatifs aux modules sont dans leur dossier <pre style="display:inline;">/templates</pre> respectif<br />
</li></ul><br />
<br />
Un thème est composé de plusieurs types de fichiers :<br />
<br />
<strong>Les fichiers de mise en forme/animation</strong> :<br />
<ul class="formatter-ul">
    <li class="formatter-li"><a class="offload" href="https://developer.mozilla.org/fr/docs/Web/CSS">CSS</a> (Cascading Style Sheet ou feuilles de style en cascade) est un langage de style qui définit la présentation des documents HTML. Par exemple, CSS couvre les polices, les couleurs, les marges, les lignes, la hauteur, la largeur, les images d'arrière-plan, les positionnements évolués et bien d'autres choses. Le CSS est la partie concernant la mise en forme du document, les fichiers ont l'extension .css.
    </li><li class="formatter-li"><a class="offload" href="https://developer.mozilla.org/fr/docs/Web/JavaScript">Javascript</a> est un langage qui permet de manipuler les propriétés css ou les déclarations html pour améliorer l'animation ou la mise en forme d'une page.<br />
</li></ul><br />
<strong>Les fichiers de structure HTML</strong> : Un fichier template (patron en français) permet de faire l'interface entre <a class="offload" href="https://developer.mozilla.org/fr/docs/Glossary/PHP">PHP</a> (générateur de contenu) et le code <a class="offload" href="https://developer.mozilla.org/fr/docs/Web/HTML">HTML</a> généré. Ces fichiers sont en langage HTML (HyperText Markup Language) et contiennent les variables définies par PHP. Le HTML concerne le fond du document, les fichiers ont l'extension .tpl.<br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-la-structure-minimale-d-un-theme">La structure minimale d'un thème</h2><br />

Pour fonctionner, un thème doit être constitué à minima de la manière suivante :<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">Nom_Du_Thème
    </li><li class="formatter-li">+lang
    </li><li class="formatter-li">++french
    </li><li class="formatter-li">+++<pre style="display:inline;">desc.ini</pre>
    </li><li class="formatter-li">+thème
    </li><li class="formatter-li">++images
    </li><li class="formatter-li">+++<pre style="display:inline;">miniature.ext</pre>
    </li><li class="formatter-li">++<pre style="display:inline;">@import.css</pre>
    </li><li class="formatter-li">+<pre style="display:inline;">config.ini</pre><br />
</li></ul><br />
</div><br />
<br />
<pre style="display:inline;">desc.ini</pre> contient le nom du thème et sa description<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">name = "Base"
desc = "Le thème officiel de PHPBoost."
main_color = "Blanc, Bleu"</pre></pre></div></div>.<br />
<br />
<pre style="display:inline;">miniature.ext</pre> (par ex: theme.webp) est la miniature du thème. Elle est affichée dans la liste des thèmes pour l'illustrer. Il peut y en avoir plusieurs à déclarer dans le fichier config.ini dans l'option "pictures".<br />
<br />
<pre style="display:inline;">config.ini</pre> permet d'afficher des informations sur le thème et de lui attribuer une configuration par défaut qui sera appliquée lors de son installation.<br />
<div class="formatter-container formatter-code code-TEXT"><span class="formatter-title">Code TEXT : </span><div class="formatter-content"><pre style="display:inline;"><pre class="text" style="font-family:monospace;">addon_type = "theme"
author = "PHPBoost"
author_mail = "contact@phpboost.com"
author_link = "https://www.phpboost.com"
creation_date = "2016/02/24/"
last_update = "2022/07/02/"
version = "6.0.0"
compatibility = "6.0.0"
require_copyright = "0"
html_version = "5.0"
css_version = "4.0"
columns_disabled = "right"
variable_width = "0"
width = "1280px"
pictures = "theme/images/theme.webp, ../__default__/theme/images/admin.webp"</pre></pre></div></div><br />
<br />
On peut aussi y retrouver les options :<br />
<pre style="display:inline;">repository = "https://dl.phpboost.com/unofficial_templates.xml"</pre> qui permet de déclencher une alerte dans l'administration quand le thème est mis à jour.<br />
<pre style="display:inline;">parent_theme = "nom_du_dossier_du_theme_parent"</pre> quand le thème est un thème enfant (cf <a href="https://www.phpboost.com/wiki/3-modifier-un-theme-phpboost-6">Modifier un thème</a>)<br />
<br />
<pre style="display:inline;">@import.css</pre> contient la liste de tous les fichiers css utilisés par le framework.<br />
<div class="formatter-container formatter-code code-CSS"><span class="formatter-title">Code CSS : </span><div class="formatter-content"><pre style="display:inline;"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@import url('../../__default__/theme/default.css') screen, print;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/font-awesome/css/all.css');</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/font-awesome-animation.css');</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/lightcase.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/icoboost/icoboost.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/precode.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/linedwrap.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/shape.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/@variables.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/form.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/fieldset.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/input.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/datepicker.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/constraint.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/authorizations.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/table.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/formatter.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/cookies.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/scrollto.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/sortable.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/cssmenu.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/pushmenu.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/plugins.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/owl.carousel.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/list_order.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/explorer.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/messages.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/message_helper.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/pagination.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/share.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/cell.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/cell_layout.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/global.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/content.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/colors_code.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/colors.css') screen;</span></pre></pre></div></div><br />
<br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-creation-d-un-theme">Création d'un thème</h2><br />

La procédure pour créer un thème plus évolué est expliquée <a href="https://www.phpboost.com/wiki/2-creation-d-un-theme-phpboost-6">sur la page suivante</a><br />]]></description>
                <pubDate>Sun, 30 Jun 2024 13:04:06 +0200</pubDate>
                
            </item>
		
            <item>
                <title><![CDATA[3 - Modifier un thème PHPBoost 6]]></title>
                <link>https://www.phpboost.com/wiki/3-modifier-un-theme-phpboost-6</link>
                <guid>https://www.phpboost.com/wiki/3-modifier-un-theme-phpboost-6</guid>
                <description><![CDATA[<h2 class="formatter-title wiki-paragraph-2" id="paragraph-la-parentalite">La parentalité</h2><br />

Modifier un thème vous expose à perdre ces modifications à chaque mise à jour du thème lorsque l'auteur la diffuse. Il est donc préférable de faire une copie du thème et de modifier cette copie, mais dans ce cas, la copie ne serait pas mise à jour si le thème d'origine est mis à jour.<br />
<br />
La notion de <strong>parentalité</strong> a donc été introduite en version 6.<br />
Cette notion permet de créer un nouveau thème, le thème enfant, rattaché à un autre thème, le thème parent.<br />
<br />
Dans le principe, le système de templates va regarder quels fichiers utiliser en commençant par le thème enfant, puis le thème parent puis le dossier __default__ ou les modules.<br />
Il n'est donc pas nécessaire de porter les fichiers tpl/css/js du thème parent dans le thème enfant, à moins qu'on veuille les modifier dans le thème enfant.<br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-les-fichiers-minimum-requis">Les fichiers minimum requis</h2><br />

Il faut tout d'abord s'assurer que le thème qui sera le thème parent est bien installé sur le site.<br />
<br />
On commence par créer les fichiers de base de la <a href="https://www.phpboost.com/wiki/1-structure-d-un-theme-phpboost-6">structure d'un thème</a><br />
<br />
On ajoute la fonction parent_theme dans le config.ini du thème enfant<br />
<pre style="display:inline;">parent_theme = "nom_du_dossier_du_theme_parent"</pre><br />
<br />
On remplace le @import.css du thème enfant par une copie du thème parent<br />
<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+Nom_Du_Theme
    </li><li class="formatter-li">++lang
    </li><li class="formatter-li">+++french
    </li><li class="formatter-li">++++desc.ini
    </li><li class="formatter-li">++theme
    </li><li class="formatter-li">+++@import.css
    </li><li class="formatter-li">+++images
    </li><li class="formatter-li">++++theme.webp
    </li><li class="formatter-li">++config.ini<br />
</li></ul><br />
</div><br />
<br />
Ainsi, chaque mise à jour du thème parent sera appliquée au thème enfant sans que les modifications apportées au thème enfant ne soient impactées.<br />
Bien sur, si un fichier du thème parent est surchargé dans le thème enfant, il ne sera pas mis à jour; il faudra donc le modifier manuellement si nécessaire.]]></description>
                <pubDate>Fri, 17 Feb 2023 06:23:41 +0100</pubDate>
                
            </item>
		
            <item>
                <title><![CDATA[2 - Création d'un thème PHPBoost 6]]></title>
                <link>https://www.phpboost.com/wiki/2-creation-d-un-theme-phpboost-6</link>
                <guid>https://www.phpboost.com/wiki/2-creation-d-un-theme-phpboost-6</guid>
                <description><![CDATA[<h2 class="formatter-title wiki-paragraph-2" id="paragraph-introduction">Introduction</h2><br />

Après avoir mis en place les fichiers de base de la <a href="https://www.phpboost.com/wiki/structure-d-un-theme-phpboost-6">structure d'un thème</a>, on peut s'étonner de l'absence de fichier HTML ou de fichier css. En réalité ils sont présents dans un dossier commun pour une utilisation "automatique" et ne seront nécessaires dans un thème que s'ils sont amenés à être modifiés.<br />
<br />
Dans le principe, on copie le ou les fichiers du dossier commun que l'on veut modifier puis on les colle dans le thème en respectant l&#8217;arborescence de ce dossier commun :<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+__default__<br />
</li></ul><br />
</div><br />
Ce principe de copié/collé/modification est appelé : <strong>surcharge</strong><br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-heritage-des-fichiers">Héritage des fichiers</h2><br />

<h3 class="formatter-title wiki-paragraph-3" id="paragraph-structure-html">Structure HTML</h3><br />

Les fichiers tpl de la structure HTML du thème seront surchargés à la racine du thème avant d'être modifiés :<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+Nom_Du_Theme
    </li><li class="formatter-li">++...
    </li><li class="formatter-li">++body.tpl
    </li><li class="formatter-li">++frame.tpl
    </li><li class="formatter-li">++js_bottom.tpl
    </li><li class="formatter-li">++js_top.tpl
    </li><li class="formatter-li">++maintain.tpl<br />
</li></ul><br />
</div><br />
<br />
<strong>frame.tpl</strong> contient les limites de la structure HTML : le <head/>, l'appel du fichier @import.css, des fichiers javascript et l'appel de la structure html principale.<br />
<strong>js_top.tpl</strong> contient la liste des fichiers javascript appelés en début de page.<br />
<strong>js_bottom</strong> contient la liste des fichiers javascript appelés en fin de page.<br />
<br />
<strong>body.tpl</strong> contient la structure HTML principale<br />
<br />
<strong>maintain.tpl</strong> contient la structure HTML principale lorsque le site est placé en maintenance<br />
<br />
<h3 class="formatter-title wiki-paragraph-3" id="paragraph-l-administration">L'administration</h3><br />

Il est possible de modifier l'aspect de l'administration en surchargeant les fichiers du dossier commun.<br />
Comme précédemment, on fera attention à bien respecter l'arborescence des dossiers/fichiers.<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+__default__
    </li><li class="formatter-li">++admin<br />
</li></ul><br />
</div><br />
<br />
Par exemple si on veut modifier la structure HTML principale des pages de l'administration on surchargera comme suit:<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+Nom_Du_Theme
    </li><li class="formatter-li">++admin
    </li><li class="formatter-li">+++body.tpl<br />
</li></ul><br />
</div><br />
<br />
<h3 class="formatter-title wiki-paragraph-3" id="paragraph-le-framework">le framework</h3><br />

Certains contenus sont générés via le script php dans des fichiers tpl contenus dans le dossier :<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+__default__
    </li><li class="formatter-li">++framework
    </li><li class="formatter-li">+++...<br />
</li></ul><br />
</div><br />
<br />
Si l'on veut par exemple modifier l'aspect des menus de liens, on va surcharger le fichier<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+__default__
    </li><li class="formatter-li">++framework
    </li><li class="formatter-li">+++menus
    </li><li class="formatter-li">++++links.tpl<br />
</li></ul><br />
</div><br />
dans le thème<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+Nom_Du_Theme
    </li><li class="formatter-li">++framework
    </li><li class="formatter-li">+++menus
    </li><li class="formatter-li">++++links.tpl<br />
</li></ul><br />
</div><br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-les-fichiers-des-modules">Les fichiers des modules</h2><br />

<h3 class="formatter-title wiki-paragraph-3" id="paragraph-les-modules-classiques">les modules "classiques"</h3><br />

Par défaut, les fichiers de templates des modules sont appelés dans le dossier <pre style="display:inline;">templates</pre> de leur répertoire respectif . Pour les personnaliser, il suffit de les surcharger dans le thème, dans un dossier au nom du module, lui-même placé dans un dossier <pre style="display:inline;">modules</pre> que l'on aura créé à la racine du thème.<br />
<br />
Nous avons, dans la mesure du possible, harmonisé les noms de fichiers tpl des modules. Ainsi les fichiers <pre style="display:inline;">{NomDuModule}SeveralItemsController.tpl</pre> représentent les pages qui affichent plusieurs items (catégories, tag, items d'un membre, items en attente), alors que les fichiers <pre style="display:inline;">{NomDuModule}ItemController.tpl</pre> représentent les pages d'un item du module.<br />
<br />
Par exemple pour modifier la page d'un item du module Téléchargement<br />
On surcharge le fichier<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">download
    </li><li class="formatter-li">+templates
    </li><li class="formatter-li">++DownloadItemController.tpl<br />
</li></ul><br />
</div><br />
dans le thème<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+Nom_du_theme
    </li><li class="formatter-li">++...
    </li><li class="formatter-li">++modules
    </li><li class="formatter-li">+++download
    </li><li class="formatter-li">++++DownloadItemController.tpl<br />
</li></ul><br />
</div><br />
<br />
Il en va de même pour le/les fichiers images, css et js du module.<br />
<br />
Ainsi en suivant l'exemple, si on veut modifier la totalité des fichiers du module Téléchargement, le thème contiendra donc<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+Nom_du_theme
    </li><li class="formatter-li">++...
    </li><li class="formatter-li">++modules
    </li><li class="formatter-li">+++download
    </li><li class="formatter-li">++++download.css
    </li><li class="formatter-li">++++download_mini.css
    </li><li class="formatter-li">++++DownloadItemController.tpl
    </li><li class="formatter-li">++++DownloadModuleMiniController.tpl
    </li><li class="formatter-li">++++DownloadSeveralItemsController.tpl<br />
</li></ul><br />
</div><br />
<br />
Si le module contient des fichiers images et/ou js et qu'ils sont surchargés dans le thème, on n'oubliera pas de changer leur adresse dans les fichiers tpl(js) ou css.<br />
<br />
<h3 class="formatter-title wiki-paragraph-3" id="paragraph-les-modules-noyau">Les modules "noyau"</h3><br />

Les modules noyau utilisent une nouvelle méthode de développement dans PHPBoost et sont gérés directement par le noyau du cms.<br />
Sont concernés pour l'instant les modules :<br />
<ul class="formatter-ul">
    <li class="formatter-li">Articles
    </li><li class="formatter-li">Actualités
    </li><li class="formatter-li">Pages
    </li><li class="formatter-li">Sondages<br />
</li></ul><br />
Cette nouvelle structure des modules permet de centraliser l'affichage de tous les modules convertis en module  noyau vers un seul fichier placé dans le dossier<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+__default__
    </li><li class="formatter-li">++framework
    </li><li class="formatter-li">+++content
    </li><li class="formatter-li">++++items<br />
</li></ul><br />
</div><br />
<br />
où l'on retrouve 3 fichiers :<br />
<ul class="formatter-ul">
    <li class="formatter-li"><pre style="display:inline;">ModuleItemController.tpl</pre> : gère l'affichage de la page d'un item du module
    </li><li class="formatter-li"><pre style="display:inline;">ModuleMessagesController.tpl</pre> : gère l'affichage d'une page de type messages (fonctionnalité à venir, non utilisée en version 6.0.0)
    </li><li class="formatter-li"><pre style="display:inline;">ModuleSeveralItemsController.tpl</pre> : gère l'affichage d'une page avec plusieurs items du module (catégorie, tags, etc)<br />
</li></ul><br />
<br />
<h4 class="formatter-title wiki-paragraph-4" id="paragraph-personnalisation-de-tous-les-modules-noyau">Personnalisation de tous les modules noyau</h4><br />

On souhaite modifier l'ensemble des modules noyau, auquel cas on surcharge ces fichiers dans le thème en respectant l'arborescence du dossier __default__<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+Nom_du_theme
    </li><li class="formatter-li">++...
    </li><li class="formatter-li">++framework
    </li><li class="formatter-li">+++content
    </li><li class="formatter-li">++++items
    </li><li class="formatter-li">+++++ModuleSeveralItemsController.tpl<br />
</li></ul><br />
</div><br />
<br />
<h4 class="formatter-title wiki-paragraph-4" id="paragraph-personnalisation-de-chaque-module-noyau">Personnalisation de chaque module noyau</h4><br />

On souhaite modifier chaque module noyau indépendamment, auquel cas on surcharge ces fichiers dans le thème en les plaçant dans chaque module et en les renommant au nom du module<br />
Par exemple pour les modules Articles et Actualités, le fichier ModuleSeveralItemsController.tpl est surchargé 2 fois et chaque version est renommée avant d'être modifiée<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+Nom_du_theme
    </li><li class="formatter-li">++...
    </li><li class="formatter-li">++modules
    </li><li class="formatter-li">+++articles
    </li><li class="formatter-li">++++ArticlesSeveralItemsController.tpl
    </li><li class="formatter-li">+++news
    </li><li class="formatter-li">++++NewsSeveralItemsController.tpl<br />
</li></ul><br />
</div><br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-les-fichiers-css">Les fichiers CSS</h2><br />

Le framework CSS utilise un système d'import : tous les fichiers css nécessaires sont listés dans un fichier <pre style="display:inline;">@import.css</pre>. Les plus aguerris et les curieux trouveront nombre de sites qui déconseillent cette pratique notamment pour des problèmes de performances de cache.<br />
<br />
Mais PHPBoost se démarque en n'utilisant pas "directement" le fichier.<br />
En effet, lorsque le cache est activé, @import.css ne sert que de listing qui indique au script php où se trouvent les fichiers css utilisés afin de les compresser en un seul. Ainsi, la mise en cache est directe et assurée par php, et le framework ne nécessite pas de fichier css compressé.<br />
<br />
En contrepartie, lors du développement d'un thème avec le cache désactivé, l'actualisation d'une modification devra se faire par un ctrl+F5 au lieu d'un simple F5.<br />
<br />
Comme pour les fichiers tpl, l'ensemble des fichiers CSS nécessaires au framework sont regroupés dans un dossier commun :<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+__default__
    </li><li class="formatter-li">++theme<br />
</li></ul><br />
</div><br />
<br />
Pour une modification en profondeur, on surchargera les fichiers CSS voulus dans le thème.<br />
Par exemple, pour modifier l'agencement des cellules<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+Nom_du_theme
    </li><li class="formatter-li">++...
    </li><li class="formatter-li">++theme
    </li><li class="formatter-li">+++...
    </li><li class="formatter-li">+++cell_layout.css
    </li><li class="formatter-li">+++cell.css<br />
</li></ul><br />
</div><br />
en n'oubliant pas de modifier l'appel des fichiers dans le @import.css du thème<br />
<div class="formatter-container formatter-code code-CSS"><span class="formatter-title">Code CSS : </span><div class="formatter-content"><pre style="display:inline;"><pre class="css" style="font-family:monospace;">...
<span style="color: #a1a100;">@import url('../../__default__/theme/cell.css') screen;</span>
<span style="color: #a1a100;">@import url('../../__default__/theme/cell_layout.css') screen;</span>
...</pre></pre></div></div><br />
devient<br />
<div class="formatter-container formatter-code code-CSS"><span class="formatter-title">Code CSS : </span><div class="formatter-content"><pre style="display:inline;"><pre class="css" style="font-family:monospace;">...
<span style="color: #a1a100;">@import url('../../Nom_Du_Theme/theme/cell.css') screen;</span>
<span style="color: #a1a100;">@import url('../../Nom_Du_Theme/theme/cell_layout.css') screen;</span>
...</pre></pre></div></div><br />
<br />
De même, tout fichier CSS créé spécifiquement pour le thème devra être placé dans le dossier thème et être déclaré dans le fichier @import.css<br />
<pre style="display:inline;"><span style="color: #a1a100;">@import url('../../Nom_Du_Theme/theme/fichier.css') screen;</span></pre><br />
<br />
Respecter l'écriture <pre style="display:inline;"><span style="color: #a1a100;">@import url('../../Nom_Du_Theme/theme/fichier.css') screen;</span></pre> alors que <pre style="display:inline;"><span style="color: #a1a100;">@import url('fichier.css') screen;</span></pre> peut fonctionner puisque le fichier.css est au même niveau que @import.css, permet de rendre éligible votre thème à la parentalité (cf l'article <a href="https://www.phpboost.com/wiki/3-modifier-un-theme-phpboost-6">Modifier un thème</a>).<br />
<br />
<br />
<h3 class="formatter-title wiki-paragraph-3" id="paragraph-l-administration">L'administration</h3><br />

Le fichier @import.css et les fichiers css spécifiques à l'administration sont contenus dans le dossier<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+__default__
    </li><li class="formatter-li">++dashboard<br />
</li></ul><br />
</div><br />
<br />
Avant de surcharger les fichiers css de l'administration, il faut d'abord surcharger le frame.tpl de l'administration et y modifier l'adresse d'appel du fichier @import.css<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+Nom_du_theme
    </li><li class="formatter-li">++admin
    </li><li class="formatter-li">+++frame.tpl
    </li><li class="formatter-li">++dashboard
    </li><li class="formatter-li">+++@import.css<br />
</li></ul><br />
</div><br />
<div class="formatter-container formatter-code code-TPL"><span class="formatter-title">frame.tpl : </span><div class="formatter-content"><pre class="html" style="font-family:monospace;">        <span style="color: #808080; font-style: italic;"><!-- Theme CSS --></span>
    # IF C_CSS_CACHE_ENABLED #
        <span style="color: #009900;"><<a href="https://www.w3schools.com/tags/tag_link.asp"><span style="color: #000000; font-weight: bold;">link</span></a> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"stylesheet"</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"${CSSCacheManager::get_css_path('/templates/__default__/dashboard/@import.css')}"</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"text/css"</span> <span style="color: #000066;">media</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"screen, print"</span> <span style="color: #66cc66;">/</span>></span>
    <span style="color:#9915AF; font-weight: bold;">#</span> <span style="color:#000066; font-weight: bold;">ELSE</span> <span style="color:#9915AF; font-weight: bold;">#</span>
        <span style="color: #009900;"><<a href="https://www.w3schools.com/tags/tag_link.asp"><span style="color: #000000; font-weight: bold;">link</span></a> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"stylesheet"</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"<span style="color:#7F3300;">{</span><span style="color:#FF6600; font-weight: bold;">PATH_TO_ROOT</span><span style="color:#7F3300;">}</span>/templates/__default__/dashboard/@import.css"</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"text/css"</span> <span style="color: #000066;">media</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"screen, print"</span> <span style="color: #66cc66;">/</span>></span>
    <span style="color:#9915AF; font-weight: bold;">#</span> <span style="color:#000066; font-weight: bold;">ENDIF</span> <span style="color:#9915AF; font-weight: bold;">#</span></pre></div></div><br />
<br />
devient<br />
<div class="formatter-container formatter-code code-TPL"><span class="formatter-title">frame.tpl : </span><div class="formatter-content"><pre class="html" style="font-family:monospace;"><span style="color: #808080; font-style: italic;"><!-- Theme CSS --></span>
    # IF C_CSS_CACHE_ENABLED #
        <span style="color: #009900;"><<a href="https://www.w3schools.com/tags/tag_link.asp"><span style="color: #000000; font-weight: bold;">link</span></a> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"stylesheet"</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"${CSSCacheManager::get_css_path('/templates/Nom_Du_Theme/dashboard/@import.css')}"</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"text/css"</span> <span style="color: #000066;">media</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"screen, print"</span> <span style="color: #66cc66;">/</span>></span>
    <span style="color:#9915AF; font-weight: bold;">#</span> <span style="color:#000066; font-weight: bold;">ELSE</span> <span style="color:#9915AF; font-weight: bold;">#</span>
        <span style="color: #009900;"><<a href="https://www.w3schools.com/tags/tag_link.asp"><span style="color: #000000; font-weight: bold;">link</span></a> <span style="color: #000066;">rel</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"stylesheet"</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"<span style="color:#7F3300;">{</span><span style="color:#FF6600; font-weight: bold;">PATH_TO_ROOT</span><span style="color:#7F3300;">}</span>/templates/Nom_Du_Theme/dashboard/@import.css"</span> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"text/css"</span> <span style="color: #000066;">media</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"screen, print"</span> <span style="color: #66cc66;">/</span>></span>
    <span style="color:#9915AF; font-weight: bold;">#</span> <span style="color:#000066; font-weight: bold;">ENDIF</span> <span style="color:#9915AF; font-weight: bold;">#</span></pre></div></div><br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-les-fichiers-javascript">Les fichiers javascript</h2><br />

La notion de parentalité (cf l'article <a href="https://www.phpboost.com/wiki/3-modifier-un-theme-phpboost-6">Modifier un thème</a>) impose de déclarer l'adresse des fichiers js avec le nom du dossier du thème contrairement aux versions précédentes où le thème était défini par la variable de template {THEME}. Cette variable fonctionne toujours, mais le fichier ne serait pas pris en compte dans un thème enfant.<br />
<div class="formatter-container formatter-code code-HTML"><span class="formatter-title">Code HTML : </span><div class="formatter-content"><pre style="display:inline;"><pre class="html" style="font-family:monospace;">// PHPBoost version <span style="color: #009900;">< <span style="color: #cc66cc;">6</span></span>
<span style="color: #009900;"><<a href="https://www.w3schools.com/tags/tag_script.asp"><span style="color: #000000; font-weight: bold;">script</span></a> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"{PATH_TO_ROOT}/templates/{THEME}/chemin/vers/fichier.js"</span>><<span style="color: #66cc66;">/</span><a href="https://www.w3schools.com/tags/tag_script.asp"><span style="color: #000000; font-weight: bold;">script</span></a>></span>
//PHPBoost version > 6
<span style="color: #009900;"><<a href="https://www.w3schools.com/tags/tag_script.asp"><span style="color: #000000; font-weight: bold;">script</span></a> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"{PATH_TO_ROOT}/templates/Nom_Du_Theme/chemin/vers/fichier# IF C_CSS_CACHE_ENABLED #.min# ENDIF #.js"</span>><<span style="color: #66cc66;">/</span><a href="https://www.w3schools.com/tags/tag_script.asp"><span style="color: #000000; font-weight: bold;">script</span></a>></span></pre></pre></div></div><br />
<br />
Pour améliorer les performances, la variable C_CSS_CACHE_ENABLED a été portée dans tout le framework, ce qui permet d'utiliser la version non compressée du fichier js pendant le développement du script et la version compressée en production.<br />
<div class="formatter-container formatter-code code-HTML"><span class="formatter-title">Code HTML : </span><div class="formatter-content"><pre style="display:inline;"><pre class="html" style="font-family:monospace;"># IF C_CSS_CACHE_ENABLED #
    <span style="color: #009900;"><<a href="https://www.w3schools.com/tags/tag_script.asp"><span style="color: #000000; font-weight: bold;">script</span></a> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"{PATH_TO_ROOT}/templates/Nom_Du_Theme/chemin/vers/fichier.min.js"</span>><<span style="color: #66cc66;">/</span><a href="https://www.w3schools.com/tags/tag_script.asp"><span style="color: #000000; font-weight: bold;">script</span></a>></span>
# ELSE #
    <span style="color: #009900;"><<a href="https://www.w3schools.com/tags/tag_script.asp"><span style="color: #000000; font-weight: bold;">script</span></a> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"{PATH_TO_ROOT}/templates/Nom_Du_Theme/chemin/vers/fichier.js"</span>><<span style="color: #66cc66;">/</span><a href="https://www.w3schools.com/tags/tag_script.asp"><span style="color: #000000; font-weight: bold;">script</span></a>></span>
# ENDIF #
que l'on peut aussi déclarer 
<span style="color: #009900;"><<a href="https://www.w3schools.com/tags/tag_script.asp"><span style="color: #000000; font-weight: bold;">script</span></a> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">"{PATH_TO_ROOT}/templates/Nom_Du_Theme/chemin/vers/fichier# IF C_CSS_CACHE_ENABLED #.min# ENDIF #.js"</span>><<span style="color: #66cc66;">/</span><a href="https://www.w3schools.com/tags/tag_script.asp"><span style="color: #000000; font-weight: bold;">script</span></a>></span></pre></pre></div></div><br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-les-images">Les images</h2><br />

Certaines images ont été définies par défaut :<br />
<ul class="formatter-ul">
    <li class="formatter-li"><pre style="display:inline;">no_avatar.webp</pre> : l'avatar commun lorsqu'un utilisateur choisi de ne pas personnaliser le sien
    </li><li class="formatter-li"><pre style="display:inline;">default_category.webp</pre> : la miniature par défaut des catégories
    </li><li class="formatter-li"><pre style="display:inline;">default_item.webp</pre> : la miniature par défaut des items
    </li><li class="formatter-li"><pre style="display:inline;">error.webp</pre> : l'image commune aux pages 403 et 404<br />
</li></ul><br />
<br />
Elles sont déclarées dans le dossier<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+__default__
    </li><li class="formatter-li">++images<br />
</li></ul><br />
</div><br />
<br />
il suffit donc de les surcharger dans le thème en conservant le même nom<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+Nom_Du_Theme
    </li><li class="formatter-li">++images
    </li><li class="formatter-li">+++no_avatar.webp<br />
</li></ul><br />
</div><br />
<br />
À noter que pour pousser plus loin la personnalisation, il est possible de déclarer les images <pre style="display:inline;">default_category.webp</pre> et <pre style="display:inline;">default_item.webp</pre> indépendamment pour chaque module :<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+Nom_Du_Theme
    </li><li class="formatter-li">++modules
    </li><li class="formatter-li">+++articles
    </li><li class="formatter-li">++++images
    </li><li class="formatter-li">+++++default_category.webp
    </li><li class="formatter-li">+++++default_item.webp
    </li><li class="formatter-li">+++web
    </li><li class="formatter-li">++++images
    </li><li class="formatter-li">+++++default_category.webp
    </li><li class="formatter-li">+++++default_item.webp<br />
</li></ul><br />
</div><br />
<br />
Tous les modules qui utilisent les miniatures sont personnalisables, indépendamment de leur structure "classique" ou "noyau".<br />
<br />
L'extension webp est utilisée pour la quasi-totalité des images déclarées dans le cms, pour la légèreté des fichiers et la gestion de la transparence. Seules ces 4 images "défaut" devront être déclarées avec cette extension. Si votre éditeur d'image ne la gère pas ou si vous n'en utilisez pas, il existe des convertisseurs gratuits en ligne qui vous permettront de convertir vos images.<br />
Un parmi tant d'autre : <a class="offload" href="https://convertio.co/fr/">Convertio</a><br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-les-langues">Les langues</h2><br />

Il est possible, en version 6, d'ajouter des variables de langue dans un thème ce qui permet de rajouter du texte dans un fichier tpl tout en conservant la fonctionnalité multi langage.<br />
<br />
Tous les fichiers de langage du dossier /lang sont portés dans le framework, ainsi que ceux d'un module.<br />
Une variable de langue du dossier /lang est utilisable dans tout fichier tpl, alors qu'une variable de langue d'un module ne sera utilisable que dans les fichiers tpl du module. Ainsi, on n'est plus obligé de déclarer le dossier et le fichier dans lesquels se trouve la variable.<br />
<br />
Donc si une variable existe déjà, elle peut être ajoutée dans un tpl du thème : <pre style="display:inline;">{@nom.de.la.variable}</pre> ou si elle contient du html <pre style="display:inline;">{@H|nom.de.la.variable}.</pre><br />
<br />
Si une variable n'existe pas, il est possible de créer un fichier de langue dans le dossier /lang ou dans le thème pour pouvoir l'utiliser. Le fichier et la variable seront automatiquement pris en compte.<br />
<br />
La liste des variables existantes se trouve dans le module Bac à sable (sandbox) doté d'un outil de recherche.<br />
<br />
<strong>Ajouter un fichier de langue dans le thème</strong><br />
<br />
<div id="" class="file-path" style=""><br />
<ul class="formatter-ul">
    <li class="formatter-li">templates
    </li><li class="formatter-li">+Nom_Du_Theme
    </li><li class="formatter-li">++lang
    </li><li class="formatter-li">+++french
    </li><li class="formatter-li">++++desc.ini
    </li><li class="formatter-li">++++<pre style="display:inline;">file.php</pre><br />
</li></ul><br />
</div><br />
<br />
<div class="formatter-container formatter-code code-PHP"><span class="formatter-title">file.php : </span><div class="formatter-content"><pre style="display:inline;"><pre class="php" style="font-family:monospace;"><span style="color: #FF0000; font-weight: normal;"><?php</span>
<span style="color: #000080;">$lang</span><span style="color: #8000FF;">&#91;</span><span style="color: #808080;">'first.var'</span><span style="color: #8000FF;">&#93;</span> <span style="color: #8000FF;">=</span> <span style="color: #808080;">'Un premier texte'</span><span style="color: #8000FF;">;</span>
<span style="color: #000080;">$lang</span><span style="color: #8000FF;">&#91;</span><span style="color: #808080;">'other.var'</span><span style="color: #8000FF;">&#93;</span> <span style="color: #8000FF;">=</span> <span style="color: #808080;">'Un autre texte'</span><span style="color: #8000FF;">;</span>
<span style="color: #000080;">$lang</span><span style="color: #8000FF;">&#91;</span><span style="color: #808080;">'var.with.quote'</span><span style="color: #8000FF;">&#93;</span> <span style="color: #8000FF;">=</span> <span style="color: #808080;">'Attention à l\'apostrophe'</span><span style="color: #8000FF;">;</span>
<span style="color: #FF0000; font-weight: normal;">?></span></pre></pre></div></div><br />
<br />
Si le nom du fichier et le nom des variables importent peu, le langage php est très strict. On fera donc attention à bien finir une déclaration de variable par un <pre style="display:inline;">;</pre> ainsi qu'au backslash <pre style="display:inline;">\</pre> avant une apostrophe.<br />
<br />
Pour des raisons pratiques, les mots des variables sont séparés par des points (à quelques exceptions près) ce qui permet une recherche rapide dans un éditeur. Chaque variable commence par le nom du fichier qui la contient ce qui permet de savoir rapidement dans quel fichier la retrouver.<br />
ex: {@download.add.item} est une variable issue du fichier common.php du module Téléchargement.<br />
<br />
<h2 class="formatter-title wiki-paragraph-2" id="paragraph-les-variables-de-template">Les variables de template</h2><br />

Dans les fichiers tpl, les variables de template {VARIABLE} ou # IF C_VARIABLE_EXISTS # ... # ENDIF # sont la transcription html du script php, ce qui permet de récupérer le contenu dynamique (le titre d'un item, son contenu, sa miniature, etc).<br />
Elles sont en majeure partie issues des modules qui les contiennent.<br />
<br />
Il existe des variables communes utilisables dans tout fichier tpl<br />
<br />
<h3 class="formatter-title wiki-paragraph-3" id="paragraph-les-variables-de-condition">Les variables de condition</h3><br />

Elles définissent un état et peuvent être utilisées comme suit:<br />
<pre style="display:inline; font-color:courier new;"># IF C_VARIABLE_EXISTS #// code HTML<span style="color:#9915AF; font-weight: bold;">#</span> <span style="color:#000066; font-weight: bold;">ENDIF</span> <span style="color:#9915AF; font-weight: bold;">#</span><br />
# IF C_VARIABLE_EXISTS #// code HTML <span style="color:#9915AF; font-weight: bold;">#</span> <span style="color:#000066; font-weight: bold;">ELSE</span> <span style="color:#9915AF; font-weight: bold;">#</span>// autre code HTML<span style="color:#9915AF; font-weight: bold;">#</span> <span style="color:#000066; font-weight: bold;">ENDIF</span> <span style="color:#9915AF; font-weight: bold;">#</span></pre><br />
<br />
on peut aussi imbriquer 2 conditions ou plus<br />
<pre style="display:inline; font-color:courier new;"># IF C_VARIABLE_EXISTS #// code HTML <span style="color:#9915AF; font-weight: bold;">#</span> <span style="color:#000066; font-weight: bold;">ELSE</span> <span style="color:#9915AF; font-weight: bold;">#</span># IF C_VARIABLE_EXISTS #// autre code HTML<span style="color:#9915AF; font-weight: bold;">#</span> <span style="color:#000066; font-weight: bold;">ENDIF</span> <span style="color:#9915AF; font-weight: bold;">#</span><span style="color:#9915AF; font-weight: bold;">#</span> <span style="color:#000066; font-weight: bold;">ENDIF</span> <span style="color:#9915AF; font-weight: bold;">#</span></pre><br />
On fera attention à bien mettre un espace après un <pre style="display:inline;">#</pre> de début et avant un <pre style="display:inline;">#</pre> de fin<br />
<br />
<strong>Les variables communes</strong><br />
<table class="table formatter-table">
    <tr class="formatter-table-row">
        <td class="formatter-table-head">Variable</td>
        <td class="formatter-table-head">Fonction</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">C_CSS_CACHE_ENABLED</td>
        <td class="formatter-table-col">Vérifie si le cache css est activé</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">IS_USER_CONNECTED</td>
        <td class="formatter-table-col">Vérifie si l'utilisateur est connecté</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">IS_MODERATOR</td>
        <td class="formatter-table-col">Vérifie si l'utilisateur est un modérateur</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">IS_ADMIN</td>
        <td class="formatter-table-col">Vérifie si l'utilisateur est un administrateur</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">IS_MOBILE_DEVICE</td>
        <td class="formatter-table-col">Vérifie si l'utilisateur utilise un appareil mobile</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-head" colspan="2">Emplacements des menus</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">C_HAS_TOP_HEADER_MENUS</td>
        <td class="formatter-table-col">Vérifie si l'emplacement "sur-entête" est activé</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">C_HAS_HEADER_MENUS</td>
        <td class="formatter-table-col">Vérifie si l'emplacement "Tête de page" est activé</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">C_HAS_SUB_HEADER_MENUS</td>
        <td class="formatter-table-col">Vérifie si l'emplacement "sous-entête" est activé</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">C_HAS_SOME_HEADER_MENUS</td>
        <td class="formatter-table-col">Vérifie si au moins un des emplacements d'entête est activé</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">C_HAS_ALL_HEADER_MENUS</td>
        <td class="formatter-table-col">Vérifie si tous les emplacements d'entête sont activés</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">C_HAS_LEFT_MENUS</td>
        <td class="formatter-table-col">Vérifie si l'emplacement "Menu gauche" est activé</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">C_HAS_RIGHT_HEADER_MENUS</td>
        <td class="formatter-table-col">Vérifie si l'emplacement "Menu droite" est activé</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">C_HAS_SOME_VERTICAL_MENUS</td>
        <td class="formatter-table-col">Vérifie si au moins un des emplacements verticaux est activé</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">C_HAS_ALL_VERTICAL_MENUS</td>
        <td class="formatter-table-col">Vérifie si tous les emplacements verticaux sont activés</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">C_HAS_TOP_CENTRAL_MENUS</td>
        <td class="formatter-table-col">Vérifie si l'emplacement "Menu central haut" est activé</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">C_HAS_BOTTOM_CENTRAL_HEADER_MENUS</td>
        <td class="formatter-table-col">Vérifie si l'emplacement "Menu central bas" est activé</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">C_HAS_SOME_CENTRAL_MENUS</td>
        <td class="formatter-table-col">Vérifie si au moins un des emplacements centraux est activé</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">C_HAS_ALL_CENTRAL_MENUS</td>
        <td class="formatter-table-col">Vérifie si tous les emplacements centraux sont activés</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">C_HAS_TOP_FOOTER_MENUS</td>
        <td class="formatter-table-col">Vérifie si l'emplacement "Sur-peid de page" est activé</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">C_HAS_FOOTER_MENUS</td>
        <td class="formatter-table-col">Vérifie si l'emplacement "Pied de page" est activé</td>
    </tr>
</table><br />
<br />
<h3 class="formatter-title wiki-paragraph-3" id="paragraph-les-variables-de-contenu">Les variables de contenu</h3><br />

Une variable de template représente du contenu généré par le script php et s'utilise avec des <pre style="display:inline;">{}</pre><br />
<pre style="display:inline;"><h1>{TITRE}</h1></pre><br />
<pre style="display:inline;"><div>{CONTENT}</div></pre><br />
<pre style="display:inline;"><a href="{PATH_TO_ROOT}/chemin/vers/un/fichier">Nom du fichier</a></pre><br />
<br />
<strong>Les variables communes</strong><br />
<table class="table formatter-table">
    <tr class="formatter-table-row">
        <td class="formatter-table-head">Variable</td>
        <td class="formatter-table-head">Utilisation</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">THEME</td>
        <td class="formatter-table-col">Le nom du thème utilisé</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">PARENT_THEME</td>
        <td class="formatter-table-col">Le nom du thème parent du thème utilisé par le visiteur</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">LANG</td>
        <td class="formatter-table-col">Le langage utilisé par le visiteur</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">TOKEN</td>
        <td class="formatter-table-col">Le cookie de session de l'utilisateur</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">REWRITED_SCRIPT</td>
        <td class="formatter-table-col">L'adresse complète de la page en cours</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">U_SITE</td>
        <td class="formatter-table-col">Url du site (ex: https://monsite.fr)</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">PATH_TO_ROOT</td>
        <td class="formatter-table-col">Le chemin complet de la racine du site <strong>après</strong> l'adresse du site, <strong>avec</strong> le dossier du module<br />
ex: https://monsite.ext<pre style="display:inline;">/sous/dossier/phpboost/Nom_du_module</pre></td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">TPL_PATH_TO_ROOT</td>
        <td class="formatter-table-col">Le chemin complet de la racine du site <strong>après</strong> l'adresse du site, <strong>sans</strong> le dossier du module<br />
ex: https://monsite.ext<pre style="display:inline;">/sous/dossier/phpboost/</pre></td>
    </tr>
</table><br />
<br />
<h3 class="formatter-title wiki-paragraph-3" id="paragraph-les-variables-de-date">les variables de date</h3><br />

Le formatage des dates peut être modifié en changeant la variable déclarée par cette variable suivie d'un suffixe. ex: {DATE} peut être modifié en {DATE_SHORT_TEXT}<br />
La plupart des dates sont déclarées sous la forme {DATE}, mais on peut les trouver sous un autre nom : {UPDATE_DATE} ou préfixées lorsque la variable est dans une boucle : {boucle.DATE} ou encore déjà affublées d'un suffixe : {DATE_SHORT}.<br />
On prendra soin de ne modifier <strong>que le suffixe</strong>.<br />
<br />
<table class="table formatter-table">
    <tr class="formatter-table-row">
        <td class="formatter-table-head">suffixe</td>
        <td class="formatter-table-head">affichage</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">aucun</td>
        <td class="formatter-table-col">11/04/2022</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_TIMESTAMP</td>
        <td class="formatter-table-col">1649688660<br />
(= Nombre de secondes entre la date et le 1er janvier 1970)</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_SHORT</td>
        <td class="formatter-table-col">11/04/2022</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_SHORT_TEXT</td>
        <td class="formatter-table-col">Lundi 11 Avril 2022</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_SHORT_MONTH_TEXT</td>
        <td class="formatter-table-col">11 Avril 2022</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_FULL</td>
        <td class="formatter-table-col">11/04/2022 à 16h51</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_DAY</td>
        <td class="formatter-table-col">11</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_DAY_TEXT</td>
        <td class="formatter-table-col">Lun</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_DAY_FULLTEXT</td>
        <td class="formatter-table-col">Lundi</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_DAY_MONTH</td>
        <td class="formatter-table-col">11/04</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_DAY_MONTH_TEXT</td>
        <td class="formatter-table-col">11 Avr</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_WEEK</td>
        <td class="formatter-table-col">15 (= N° de la semaine dans l'année civile)</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_MONTH </td>
        <td class="formatter-table-col">04</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_MONTH_TEXT</td>
        <td class="formatter-table-col">Avr</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_MONTH_FULLTEXT</td>
        <td class="formatter-table-col">Avril</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_YEAR</td>
        <td class="formatter-table-col">2022</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_HOUR</td>
        <td class="formatter-table-col">16</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_MINUTE</td>
        <td class="formatter-table-col">51</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_SECONDS</td>
        <td class="formatter-table-col">00</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_ISO8601</td>
        <td class="formatter-table-col">2022-04-11T16:51:00+02:00</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_AGO</td>
        <td class="formatter-table-col">Il y a 3 minutes / Il y a 3 jours / Il y a 3 mois / Il y a 3 ans<br />
(= temps qui sépare la lecture de la publication)</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_SINCE</td>
        <td class="formatter-table-col">Depuis 3 minutes / Depuis 3 jours / Depuis 3 mois / Depuis 3 ans<br />
(= temps qui sépare la lecture de la publication)</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_DELAY</td>
        <td class="formatter-table-col">11 Avr</td>
    </tr>
    <tr class="formatter-table-row">
        <td class="formatter-table-col">_RELATIVE</td>
        <td class="formatter-table-col">3 minutes / 3 jours / 3 mois / 3 ans<br />
(= temps qui sépare la lecture de la publication)</td>
    </tr>
</table><br />]]></description>
                <pubDate>Thu, 16 Feb 2023 18:00:31 +0100</pubDate>
                
            </item>
		
            <item>
                <title><![CDATA[Design et interface PHPBoost 6]]></title>
                <link>https://www.phpboost.com/wiki/design-et-interface-phpboost-6</link>
                <guid>https://www.phpboost.com/wiki/design-et-interface-phpboost-6</guid>
                <description><![CDATA[Documentation des thèmes pour PHPBoost 6]]></description>
                <pubDate>Thu, 17 Nov 2022 03:43:46 +0100</pubDate>
                
            </item>
		
	</channel>
</rss>
