Structure des thèmes
Les thèmes XOOPS contrôlent la présentation visuelle de votre site. Comprendre la structure du thème est essentiel pour la personnalisation et la création de nouveaux thèmes.
Disposition du répertoire
Section intitulée « Disposition du répertoire »themes/mytheme/├── theme.html # Main layout template├── theme.ini # Theme configuration├── theme_blockleft.html # Left sidebar block template├── theme_blockright.html # Right sidebar block template├── theme_blockcenter_c.html # Center block (centered)├── theme_blockcenter_l.html # Center block (left-aligned)├── theme_blockcenter_r.html # Center block (right-aligned)├── css/│ ├── style.css # Main stylesheet│ ├── admin.css # Admin customizations (optional)│ └── print.css # Print stylesheet (optional)├── js/│ └── theme.js # Theme JavaScript├── images/│ ├── logo.png # Site logo│ └── icons/ # Theme icons├── language/│ └── english/│ └── main.php # Theme translations├── modules/ # Module template overrides│ └── news/│ └── news_index.tpl└── screenshot.png # Theme preview imageFichiers essentiels
Section intitulée « Fichiers essentiels »theme.html
Section intitulée « theme.html »Le modèle de mise en page principal qui enveloppe tout le contenu:
<!DOCTYPE html><html lang="<{$xoops_langcode}>"><head> <meta charset="<{$xoops_charset}>"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title><{$xoops_sitename}> - <{$xoops_pagetitle}></title> <meta name="description" content="<{$xoops_meta_description}>"> <meta name="keywords" content="<{$xoops_meta_keywords}>">
{* Module-specific headers *} <{$xoops_module_header}>
{* Theme stylesheets *} <link rel="stylesheet" href="<{$xoops_url}>/themes/<{$xoops_theme}>/css/style.css"></head><body class="<{$xoops_dirname}>"> <header class="site-header"> <a href="<{$xoops_url}>" class="logo"> <img src="<{$xoops_url}>/themes/<{$xoops_theme}>/images/logo.png" alt="<{$xoops_sitename}>"> </a> <nav class="main-nav"> <{$xoops_mainmenu}> </nav> </header>
<div class="page-container"> {* Left sidebar *} <{if $xoops_showlblock == 1}> <aside class="sidebar-left"> <{foreach item=block from=$xoops_lblocks}> <{include file="theme:theme_blockleft.html"}> <{/foreach}> </aside> <{/if}>
{* Main content *} <main class="content"> <{$xoops_contents}> </main>
{* Right sidebar *} <{if $xoops_showrblock == 1}> <aside class="sidebar-right"> <{foreach item=block from=$xoops_rblocks}> <{include file="theme:theme_blockright.html"}> <{/foreach}> </aside> <{/if}> </div>
<footer class="site-footer"> <{$xoops_footer}> </footer>
{* Module-specific footers *} <{$xoops_module_footer}></body></html>theme.ini
Section intitulée « theme.ini »Fichier de configuration du thème:
[Theme]name = "My Theme"version = "1.0.0"author = "Your Name"license = "GPL-2.0"description = "A modern responsive theme"
[Screenshots]screenshot = "screenshot.png"
[Options]responsive = truebootstrap = false
[Settings]primary_color = "#3498db"secondary_color = "#2c3e50"Modèles de bloc
Section intitulée « Modèles de bloc »{* theme_blockleft.html *}<section class="block block-left" id="block-<{$block.id}>"> <{if $block.title}> <h3 class="block-title"><{$block.title}></h3> <{/if}> <div class="block-content"> <{$block.content}> </div></section>Variables de modèle
Section intitulée « Variables de modèle »Variables globales
Section intitulée « Variables globales »| Variable | Description |
|---|---|
$xoops_sitename | Nom du site |
$xoops_url | URL du site |
$xoops_theme | Nom du thème actuel |
$xoops_langcode | Code de langue |
$xoops_charset | Codage des caractères |
$xoops_pagetitle | Titre de la page |
$xoops_dirname | Nom du module actuel |
Variables d’utilisateur
Section intitulée « Variables d’utilisateur »| Variable | Description |
|---|---|
$xoops_isuser | Est connecté |
$xoops_isadmin | Est administrateur |
$xoops_userid | ID d’utilisateur |
$xoops_uname | Nom d’utilisateur |
Variables de mise en page
Section intitulée « Variables de mise en page »| Variable | Description |
|---|---|
$xoops_showlblock | Afficher les blocs de gauche |
$xoops_showrblock | Afficher les blocs de droite |
$xoops_showcblock | Afficher les blocs du centre |
$xoops_lblocks | Tableau des blocs de gauche |
$xoops_rblocks | Tableau des blocs de droite |
$xoops_contents | Contenu principal de la page |
Remplacements de modèles de module
Section intitulée « Remplacements de modèles de module »Remplacez les modèles de module en les plaçant dans votre thème:
themes/mytheme/modules/└── news/ ├── news_index.tpl # Overrides news module's index └── news_article.tpl # Overrides article displayOrganisation CSS
Section intitulée « Organisation CSS »/* === Variables === */:root { --primary-color: #3498db; --text-color: #333; --bg-color: #fff;}
/* === Base === */body { font-family: system-ui, sans-serif; color: var(--text-color); background: var(--bg-color);}
/* === Layout === */.page-container { display: grid; grid-template-columns: 250px 1fr 250px; gap: 20px; max-width: 1200px; margin: 0 auto;}
/* === Components === */.block { margin-bottom: 20px; padding: 15px; background: #f5f5f5; border-radius: 4px;}
.block-title { margin: 0 0 10px; font-size: 1.1em;}
/* === Responsive === */@media (max-width: 768px) { .page-container { grid-template-columns: 1fr; }
.sidebar-left, .sidebar-right { order: 2; }}Documentation connexe
Section intitulée « Documentation connexe »- ../Templates/Smarty-Templating - Syntaxe des modèles
- Theme-Development - Guide complet des thèmes
- CSS-Best-Practices - Directives de style
- ../../03-Module-Development/Block-Development - Création de blocs