Thèmes — Personnalisation visuelle
NGZ Ads intègre un système de thèmes qui vous permet de changer entièrement l'apparence du site depuis le panneau d'administration, sans toucher au code. Vous pouvez également créer vos propres thèmes.
Vous cherchez à réorganiser le contenu de la page d'accueil (ordre des sections, annonces vedettes, catégories...) plutôt que son apparence ? Voir le chapitre Page d'accueil — Widgets.
Changer de thème
Depuis l'administration
- Connectez-vous en tant qu'administrateur.
- Rendez-vous dans Administration → Paramètres → onglet Thèmes.
- Les thèmes disponibles s'affichent sous forme de cartes avec un aperçu des couleurs, le nom, la description et la version.
- Cliquez sur Activer pour basculer vers un thème.
- Le changement prend effet immédiatement à la prochaine page chargée.
Le thème actif est indiqué par un badge Actif et une bordure bleue sur sa carte.
Thèmes inclus
| Thème | Couleur principale | Style |
|---|---|---|
| Core | #0d6efd Bleu Bootstrap | Thème par défaut, fond blanc, navbar claire |
| Orange | #F56B2A Orange | Fond chaud #F7F4F0, navbar noire, inspiré de leboncoin |
Structure d'un thème
Chaque thème est un dossier dans themes/ contenant au minimum un fichier de métadonnées et une feuille de style :
themes/
└── mon-theme/
├── theme.json ← Obligatoire : métadonnées
└── css/
├── style.css ← Obligatoire : styles principaux
└── custom-style.css ← Optionnel : surcharges personnalisées
└── templates/ ← Optionnel : templates HTML
├── layout/
│ ├── header.php
│ └── footer.php
├── partials/
│ └── ad-card.php
├── home.php
├── ads.php
├── ad.php
└── ...
Mécanisme de fallback
Si votre thème ne contient pas un template, NGZ Ads le cherche automatiquement dans le thème core :
themes/{votre-theme}/templates/home.php → introuvable ?
themes/core/templates/home.php → utilisé automatiquement
Cela signifie qu'un thème CSS uniquement (sans aucun template) fonctionne parfaitement : il hérite de toute la structure HTML du thème core.
Créer un thème CSS-only (recommandé pour débuter)
C'est l'approche la plus simple : vous ne changez que les couleurs et le style, sans modifier les templates HTML.
Étape 1 — Créer le dossier
Dans themes/, créez un nouveau dossier avec le nom de votre thème (minuscules, sans espaces) :
themes/mon-theme/
Étape 2 — Créer theme.json
{
"name": "Mon Thème",
"description": "Un thème personnalisé avec mes couleurs.",
"version": "1.0.0",
"author": "Votre Nom",
"colors": {
"primary": "#7c3aed",
"secondary": "#4b5563",
"accent": "#f59e0b"
}
}
| Champ | Obligatoire | Description |
|---|---|---|
name | Oui | Nom affiché dans l'administration |
description | Non | Courte description |
version | Non | Numéro de version |
author | Non | Auteur du thème |
colors | Non | Dictionnaire de couleurs (aperçu dans l'admin) |
Étape 3 — Créer css/style.css
Copiez le fichier themes/core/css/style.css dans themes/mon-theme/css/style.css, puis modifiez les variables CSS au début du fichier :
:root {
--ngz-primary: #7c3aed; /* Couleur principale (violet) */
--ngz-secondary: #4b5563; /* Couleur secondaire */
--ngz-warning: #f59e0b; /* Couleur d'alerte */
--ngz-bg-light: #f5f3ff; /* Fond clair */
--ngz-border: #ddd6fe; /* Couleur des bordures */
--ngz-shadow: 0 2px 12px rgba(0,0,0,.08);
--ngz-radius: .5rem;
--ngz-transition: .2s ease;
}
Pour que Bootstrap 5 utilise aussi vos couleurs (boutons, focus rings, liens…), ajoutez les surcharges Bootstrap :
:root {
/* ... vos variables NGZ ... */
/* Surcharges Bootstrap 5 */
--bs-primary: #7c3aed;
--bs-primary-rgb: 124,58,237;
--bs-link-color: #7c3aed;
--bs-link-hover-color: #6d28d9;
--bs-body-bg: #f5f3ff;
}
Étape 4 — css/custom-style.css (optionnel)
Ce fichier est chargé après style.css. Utilisez-le pour des ajustements fins sans modifier le fichier principal :
/* Exemple : navbar personnalisée */
.navbar {
background-color: #1e1b4b !important;
}
.navbar .navbar-brand,
.navbar .nav-link {
color: #fff !important;
}
Étape 5 — Activer le thème
Rendez-vous dans Administration → Paramètres → Thèmes et cliquez sur Activer sur votre nouveau thème.
Créer un thème avec templates personnalisés
Si vous souhaitez modifier la structure HTML (pas seulement le style), vous pouvez surcharger tout ou partie des templates.
Templates disponibles
| Template | Rôle |
|---|---|
layout/header.php | <head>, barre de navigation |
layout/footer.php | Pied de page |
partials/ad-card.php | Carte d'annonce (liste et recherche) |
home.php | Page d'accueil |
ads.php | Liste des annonces / recherche |
ad.php | Détail d'une annonce |
user.php | Profil public d'un utilisateur |
users.php | Annuaire des utilisateurs |
post-ad.php | Formulaire de dépôt d'annonce |
login.php | Connexion |
register.php | Inscription |
contact.php | Page de contact |
chat.php | Messagerie |
forgot-password.php | Mot de passe oublié |
reset-password.php | Réinitialisation du mot de passe |
static-page.php | Pages statiques (CGU, etc.) |
404.php | Page d'erreur 404 |
Bonne pratique
Ne copiez que les templates que vous souhaitez modifier. Les autres seront automatiquement résolus depuis le thème core. Ainsi, votre thème reste léger et les mises à jour futures du core s'appliquent sans intervention.
themes/mon-theme/
├── theme.json
├── css/
│ ├── style.css
│ └── custom-style.css
└── templates/
├── layout/
│ └── header.php ← Navbar personnalisée
└── partials/
└── ad-card.php ← Carte d'annonce redesignée
(tous les autres templates viennent du core automatiquement)
Variables CSS de référence
Ces variables sont utilisées dans tous les composants du site. Les définir dans votre :root suffit à adapter l'ensemble de l'interface :
| Variable | Rôle | Valeur par défaut (core) |
|---|---|---|
--ngz-primary | Couleur principale (boutons, liens actifs) | #0d6efd |
--ngz-secondary | Couleur secondaire | #6c757d |
--ngz-warning | Alertes, badges d'avertissement | #ffc107 |
--ngz-bg-light | Fonds clairs, cartes | #f8f9fa |
--ngz-border | Couleur des bordures | #dee2e6 |
--ngz-shadow | Ombre des cartes | 0 2px 12px rgba(0,0,0,.08) |
--ngz-radius | Arrondi des éléments | .5rem |
--ngz-transition | Durée des animations | .2s ease |
Constantes PHP disponibles dans les templates
Si vous créez des templates personnalisés, ces constantes sont disponibles partout :
| Constante | Valeur |
|---|---|
ACTIVE_THEME | Nom du thème actif (ex : orange) |
THEME_PATH | Chemin absolu vers le dossier du thème actif |
THEME_URL | URL web vers le dossier du thème actif |
ASSET_VERSION | Version pour le cache-busting des assets |
Exemple d'utilisation dans un template :
<!-- Charger un fichier du thème actif -->
<link rel="stylesheet" href="<?= THEME_URL ?>/css/style.css?v=<?= ASSET_VERSION ?>">
<img src="<?= THEME_URL ?>/img/logo.png" alt="Logo">
Récapitulatif
| Objectif | Action |
|---|---|
| Changer de thème | Admin → Paramètres → Thèmes → Activer |
| Thème couleurs uniquement | theme.json + css/style.css (variables CSS) |
| Thème avec layout | Ajouter templates/ avec les fichiers à surcharger |
| Ajustements fins | css/custom-style.css (chargé en dernier) |
| Revenir au thème par défaut | Activer le thème Core depuis l'admin |
Conseil : commencez par dupliquer le thème
orange(le plus minimal) et modifiez uniquement ses variables CSS. C'est le moyen le plus rapide d'obtenir un résultat professionnel.