223 lines
24 KiB
Markdown
223 lines
24 KiB
Markdown
# AGENTS.md — CAHIER DES CHARGES COMPLET : THÈME WORDPRESS `cgt-wp-theme`
|
|
|
|
**Projet :** Site officiel de l'Union Locale CGT Foix Haute-Ariège (`https://cgt-fha.fr/`)
|
|
**Dépôt Gitea officiel :** `https://git.cgt-fha.fr/Union_Locale_CGT_Foix_Haute-Ariege/cgt-wp-theme.git`
|
|
**Chemin de déploiement VPS :** `/var/www/fastuser/data/www/cgt-fha.fr/wp-content/themes/cgt-fha/`
|
|
**Ressource Skills locale :** `../skills/` (`../skills/wp-performance/SKILL.md` et `../skills/wp-block-themes/SKILL.md`)
|
|
**Ressources graphiques locales :** `../ressources/banniere union locale noir.png` (`assets/img/banniere-ul-noir.png` pour l'en-tête), `../ressources/banniere union locale blanc.png` (`assets/img/banniere-ul-blanc.png` pour le pied de page), logos officiels du réseau CGT (`logo-cgt-09.jpg`, `logo-cgt.png`, `logo-nvo.png`, `logo-ihs.jpg`, `logo-indecosa.png`) et `screenshot.png` (`1200x900`).
|
|
**Maquette de référence visuelle :** L'utilisateur fournit l'image de maquette validée en pièce jointe. Respecte fidèlement sa hiérarchie visuelle, ses proportions, ses espacements et son style graphique.
|
|
|
|
---
|
|
|
|
## 1. PHILOSOPHIE TECHNIQUE, SKILLS & RÈGLES D'ARCHITECTURE
|
|
Tu es l'unique développeur de ce thème WordPress sur mesure. Ce thème remplace un thème généraliste bridé (*Neve*) pour offrir une souveraineté totale, une vitesse de chargement maximale et une ergonomie pensée pour les salariés et militants de Haute-Ariège[cite: 6].
|
|
|
|
- **Utilisation des Skills (`../skills/`) :**
|
|
- Lis et applique les bonnes pratiques définies dans `../skills/wp-performance/SKILL.md` (optimisation des requêtes, cache Transients, WP-Cron) et `../skills/wp-block-themes/SKILL.md` (uniquement pour la structure propre de `theme.json`)[cite: 6].
|
|
- **Restriction stricte :** Ne génère **jamais** de blocs Gutenberg personnalisés en React (`@wordpress/scripts`, `block.json` compilés) ni de Full Site Editing complet[cite: 6].
|
|
- **Architecture : Thème PHP Classique / Hybride Moderne :**
|
|
- Utilise des gabarits PHP 8.x propres, typés et sécurisés (`header.php`, `footer.php`, `front-page.php`, `home.php`, `single.php`, `page.php`, `archive.php`, `404.php`)[cite: 6].
|
|
- Utilise `theme.json` uniquement pour déclarer la palette de couleurs CGT et les typographies dans l'éditeur d'articles[cite: 6].
|
|
- **Zéro dépendance externe lourde (RGPD & Performance) :**
|
|
- CSS moderne natif (`CSS Custom Properties`, `CSS Grid`, `Flexbox`, mobile-first). Aucune bibliothèque CSS externe (pas de Bootstrap ni Tailwind CDN)[cite: 6].
|
|
- JavaScript *Vanilla* ES6 minimaliste uniquement pour le menu mobile accessible et les onglets de l'admin (pas de jQuery)[cite: 6].
|
|
- Aucune police Google Fonts chargée via CDN tiers : utilise des polices système modernes (`system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif`) ou des fichiers hébergés localement[cite: 6].
|
|
- **100 % Modifiable sans toucher au code & Préservation stricte des réglages :**
|
|
- En dehors des articles locaux (publiés dans WordPress) et des actualités confédérales extraites automatiquement depuis `cgt.fr`, **tous les textes, images, icônes, liens, boutons et coordonnées du thème doivent être modifiables depuis l'administration WordPress** (*Apparence > Réglages UL CGT* + *Apparence > Menus* + *Médiathèque*).
|
|
- **Pré-remplissage par défaut & Non-écrasement strict :** Toutes les options possèdent des valeurs par défaut complètes lues dynamiquement via `wp_parse_args( get_option( 'cgt_fha_options', array() ), $defaults )`. Aucun hook (`after_switch_theme`, `upgrader_process_complete`, `init`) ne doit écraser les options enregistrées en base (`wp_options`), les menus ou les médias lors des mises à jour ; d'éventuelles évolutions de structure passent uniquement par la fonction versionnée non destructive `cgt_fha_maybe_migrate_options()`.
|
|
- **Identité territoriale Foix & Haute-Ariège + Syndicat Multipros :**
|
|
- L'Union Locale CGT de Foix et de la Haute-Ariège fédère l'ensemble des syndicats CGT de son périmètre et assure le rattachement direct des salarié·e·s isolé·e·s (TPE/PME sans section syndicale) via son syndicat multiprofessionnel (*Multipros*).
|
|
- **Intégration propre avec les extensions sœurs (Gitea) :**
|
|
- Le thème gère le visuel, le SEO/OpenGraph de base, le bandeau de mobilisation et l'encart d'actualités confédérales[cite: 6].
|
|
- Il prévoit des hooks/emplacements propres (`do_action(...)` / support de shortcodes) pour accueillir les sorties des extensions `cgt-wp-calendar` (Agenda) et `cgt-wp-forms` (Formulaires Défense, Adhésion, Formation), tout en affichant un rendu cohérent même si ces extensions ne sont pas encore activées[cite: 6].
|
|
|
|
---
|
|
|
|
## 2. IDENTITÉ VISUELLE & CHARTE GRAPHIQUE
|
|
- **Couleur primaire (Rouge CGT) :** `--cgt-red: #d20012;` (hover : `--cgt-red-dark: #a8000e;`)[cite: 7]
|
|
- **Couleurs neutres & surfaces :**
|
|
- Fond principal : `--bg-main: #ffffff;`
|
|
- Fond alterné (section Confédérale / Formation / Footer) : `--bg-soft: #f1f3f5;`
|
|
- Barre supérieure contact : `--bg-topbar: #1c1e21;`
|
|
- Texte principal : `--text-main: #1a1a1a;`
|
|
- Texte secondaire : `--text-muted: #4a5568;`
|
|
- Bordures des cartes : `--border-card: #cbd5e1;`
|
|
- Rayons d'arrondi : `--radius-card: 12px;` à `14px`, boutons pilules `--radius-pill: 999px;`.
|
|
|
|
---
|
|
|
|
## 3. EN-TÊTE (`header.php`) & NAVIGATION
|
|
Respecte exactement le haut de la maquette de référence :
|
|
1. **Barre supérieure (`topbar`) :**
|
|
- Fond sombre (`#1c1e21`), texte blanc fin (`13px`).
|
|
- À gauche : icône téléphone + lien `tel:` (`07 60 49 64 69` par défaut) et icône enveloppe + lien `mailto:` (`union-locale@cgt-fha.fr` par défaut)[cite: 7].
|
|
- À droite : icônes réseaux sociaux (Facebook officiel de l'UL `https://www.facebook.com/profile.php?id=61552410568856`, etc., éditables dans les réglages)[cite: 7].
|
|
2. **Bandeau d'Alerte Mobilisation Auto-Expirant :**
|
|
- Bandeau pleine largeur sur fond rouge CGT (`#d20012`), texte blanc centré en gras (ex. : `MOBILISATION : Grève et manifestation à Foix - Allées de Villote`), cliquable si une URL est renseignée[cite: 6].
|
|
- **Condition stricte d'affichage :** S'affiche uniquement si la case *Activer le bandeau* est cochée **ET** que l'horodatage actuel (`current_time('timestamp')`) est strictement inférieur à la *Date et heure d'expiration* configurée dans l'admin[cite: 6]. Passé ce délai, le bandeau disparaît automatiquement[cite: 6].
|
|
3. **Barre de Navigation Principale (`<header>`) :**
|
|
- Fond blanc, hauteur confortable, ombre légère au défilement.
|
|
- À gauche : Logo officiel de l'Union Locale CGT Foix Haute-Ariège (modifiable via `custom_logo` dans WordPress, avec fallback SVG/PNG local propre).
|
|
- À droite : Menu principal horizontal (`wp_nav_menu` : **Accueil**, **Actualités**, **Calendrier**, **Contact**), avec soulignement rouge sur l'élément actif.
|
|
- **IMPORTANT :** Ne mets **PAS** de bouton rouge « Syndiquez-vous » dans cette barre de navigation (pour éviter la répétition avec le Hero juste en dessous).
|
|
- Sur mobile (`< 768px`) : bouton menu hamburger accessible (`aria-expanded="false"`, contrôle clavier `Escape`).
|
|
|
|
---
|
|
|
|
## 4. PAGE D'ACCUEIL (`front-page.php`) — STRUCTURE COMPLÈTE
|
|
|
|
La page d'accueil s'articule en **7 sections verticales** dans cet ordre exact :
|
|
|
|
### Section 1 : Bannière Hero Plein Écran (Ancrage Territorial & Action)
|
|
- **Visuel de fond :** Image panoramique des montagnes d'Ariège / territoire (configurable dans l'admin avec une image par défaut intégrée dans `assets/img/hero-ariege.jpg`), recouverte d'un voile sombre dégradé (`rgba(15, 18, 22, 0.62)`) assurant une lisibilité parfaite du texte blanc.
|
|
- **Contenu centré verticalement et horizontalement :**
|
|
- Titre principal (`<h1>`, blanc, grand, gras, 2 lignes) :
|
|
`Union Locale CGT Foix Haute-Ariège`
|
|
`Votre syndicat de proximité !`
|
|
- Citation centrée en dessous (blanc doux, italique, éditable dans l'admin) :
|
|
`« La régression sociale ne se négocie pas, elle se combat ! » — Henri Krasucki, Secrétaire Général de la CGT de 1982 à 1992`
|
|
- **Deux boutons d'action centrés côte à côte** (`display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap;`) :
|
|
1. Bouton gauche (fond blanc `#ffffff`, texte noir `#1a1a1a`, coins arrondis `8px`, gras) : **« J'ai besoin d'aide »** (lien configurable, par défaut vers la page Contact / Urgence salarié)[cite: 6].
|
|
2. Bouton droit (fond sombre translucide ou rouge foncé, bordure blanche/rouge, texte blanc, coins arrondis `8px`, gras) : **« Rejoindre la CGT »** (lien configurable, par défaut vers la page Syndiquez-vous)[cite: 6].
|
|
|
|
### Section 2 : Module « À QUOI NOUS SERVONS ? » (3 Cartes de Mission)
|
|
Placé **immédiatement sous le Hero et avant les actualités** (fond blanc `#ffffff`) :
|
|
- **Titre de section :** `À QUOI NOUS SERVONS ?` centré en majuscules (`<h2>`).
|
|
- **Grille 3 colonnes** (`grid-template-columns: repeat(3, 1fr); gap: 1.5rem;`, 1 colonne sur mobile) :
|
|
- Chaque carte possède un fond blanc, une bordure fine (`1px solid #cbd5e1`), des coins arrondis (`border-radius: 12px`), un padding généreux (`1.75rem`) et un contenu centré :
|
|
1. **Carte 1 :** Icône poing levé / collectif (SVG propre) • Titre `S'ORGANISER` • Texte par défaut : *« Construire le syndicat dans votre entreprise, préparer les élections CSE et ne plus rester isolé face à l'employeur. »*
|
|
2. **Carte 2 :** Icône bouclier (SVG propre) • Titre `SE DÉFENDRE` • Texte par défaut : *« Faire respecter vos droits, vos salaires et vos conditions de travail, avec l'appui de nos conseillers du salarié et juristes. »*
|
|
3. **Carte 3 :** Icône bulles d'échange / livre (SVG propre) • Titre `S'INFORMER & SE FORMER` • Texte par défaut : *« Connaître les actualités des luttes en Haute-Ariège et bénéficier de vos droits à la formation syndicale (CFESES). »*
|
|
- *Note :* Les icônes (sélecteur parmi une bibliothèque SVG intégrée), titres et textes de ces 3 cartes sont modifiables dans l'admin WordPress.
|
|
|
|
### Section 3 : Vitrine 1 — « SUR LE TERRAIN À FOIX ET EN HAUTE-ARIÈGE » (Actualités Locales)
|
|
- **Priorité éditoriale locale :** Affiche automatiquement les **3 derniers articles publiés** dans le WordPress de l'UL (`WP_Query` sur `post_type => 'post'`, `posts_per_page => 3`)[cite: 6].
|
|
- **Titre de section :** `SUR LE TERRAIN À FOIX ET EN HAUTE-ARIÈGE` centré en majuscules (`<h2>`), personnalisable dans l'admin.
|
|
- **Mise en page des 3 cartes** (fidèle à la maquette) :
|
|
- Grille 3 colonnes (`gap: 1.5rem`).
|
|
- Image à la une en haut avec coins arrondis (`border-radius: 12px; height: 190px; object-fit: cover; width: 100%;`), avec fallback SVG propre si un article n'a pas d'image.
|
|
- Juste sous l'image : une pilule rouge CGT (`background: #d20012; color: #fff; border-radius: 999px; font-size: 12px; padding: 2px 10px;`) affichant la catégorie principale (ex. *Mobilisation*, *Vie syndicale*) suivie de la date de publication (`d.m.Y`).
|
|
- Titre de l'article en gras (`18px`) cliquable vers `single.php`.
|
|
- Extrait nettoyé (`wp_trim_words`, ~20 mots).
|
|
- **Pied de section :** Bouton lien discret centré *« Voir toutes les actualités locales → »* vers la page des articles (`get_permalink(get_option('page_for_posts'))`), suivi du hook `do_action('cgt_fha_after_local_news');` permettant d'injecter les prochains rendez-vous de `cgt-wp-calendar`[cite: 6].
|
|
|
|
### Section 4 : Vitrine 2 — « ACTUALITÉ CONFÉDÉRALE » (Récupération automatique `cgt.fr`)
|
|
- **Fond de section :** Gris très doux (`#f1f3f5`) pour bien la distinguer des actualités locales.
|
|
- **Titre de section :** `ACTUALITÉ CONFÉDÉRALE` centré en majuscules (`<h2>`).
|
|
- **Moteur PHP (`inc/class-cgt-confederal-feed.php`) :**
|
|
- Interroge `https://www.cgt.fr/` via `wp_remote_get()` (timeout 10s, User-Agent propre) et parse le HTML avec `DOMDocument` + `DOMXPath` (sans polluer `wp_posts`) :
|
|
- **1 article `featured` (« À la une ») :** extrait depuis la section *"à la une de la cgt"* (`title`, `summary`, `image_url` convertie en URL absolue `https://www.cgt.fr/...`, `category`, `url`).
|
|
- **3 articles `latest` (`ARTICLE 1`, `ARTICLE 2`, `ARTICLE 3`) :** extraits depuis les 3 premiers articles de la section suivante *"mais aussi..."* (complétés via `https://www.cgt.fr/actualites` si un résumé est manquant).
|
|
- **Fallback de sécurité :** Si la page d'accueil `cgt.fr` échoue ou change de structure DOM, bascule automatiquement sur les 4 premiers articles de `https://www.cgt.fr/actualites` (le 1er devient `featured`, les 3 suivants deviennent `latest`).
|
|
- **Cache & WP-Cron :** Stockage dans le transient `cgt_fha_confederal_feed` (expiration 3h) + sauvegarde de secours `cgt_fha_confederal_feed_backup` conservée en cas d'indisponibilité réseau. Événement `WP-Cron` toutes les 2 heures + bouton *"Actualiser les actus confédérales"* dans la barre d'admin WordPress (`admin_bar_menu`).
|
|
- **Rendu HTML/CSS fidèle à la maquette :**
|
|
- **Bloc supérieur « À LA UNE » :**
|
|
- Conteneur centré aligné sur la largeur de la grille des 3 cartes ci-dessous (`max-width: 1040px; margin: 0 auto 2.5rem auto;`), disposition horizontale Flexbox (`align-items: center`).
|
|
- À gauche (`flex: 0 0 58%`) : Image de l'article (`border-radius: 14px; height: 290px; object-fit: cover;`) avec un badge overlay discret en bas à droite `À LA UNE` (`right: 56px;` pour ne jamais être masqué par le chevauchement).
|
|
- À droite (`flex: 1; margin-left: -40px; position: relative; z-index: 2;`) : **Boîte blanche arrondie chevauchant le bord droit de l'image** (`background: #fff; border: 1px solid #cbd5e1; border-radius: 14px; padding: 1.75rem; box-shadow: 0 10px 25px rgba(0,0,0,0.06); text-align: center;`) contenant :
|
|
- Le titre de l'article (ou surtitre `À LA UNE` + titre).
|
|
- La description / chapô nettoyé.
|
|
- Le bouton pilule encadré (`border: 1.5px solid #1a1a1a; border-radius: 999px; padding: 6px 28px; font-weight: 700;`) : **« LIRE SUR CGT.FR ↗ »** (`target="_blank" rel="noopener noreferrer"`).
|
|
- *Responsive mobile (`< 768px`) :* `flex-direction: column`, `margin-left: 0`, `margin-top: -24px`.
|
|
- **Grille inférieure (3 colonnes : ARTICLE 1, ARTICLE 2, ARTICLE 3) :**
|
|
- Grille CSS `grid-template-columns: repeat(3, 1fr); gap: 1.5rem; max-width: 1040px; margin: 0 auto;` (1 colonne sous `768px`).
|
|
- Chaque carte affiche l'image en haut (`height: 190px; width: 100%; object-fit: cover; border-radius: 14px;`), puis une **boîte blanche arrondie qui remonte par-dessus le bas de l'image** (`margin-top: -24px; position: relative; z-index: 2; background: #fff; border: 1px solid #cbd5e1; border-radius: 14px; padding: 1.25rem; box-shadow: 0 6px 18px rgba(0,0,0,0.05); display: flex; flex-direction: column; text-align: center; flex: 1;`) contenant :
|
|
- Le titre de l'article en gras.
|
|
- La description courte (~120 caractères).
|
|
- En bas (`margin-top: auto; padding-top: 1rem;`), le bouton pilule encadré **« Lire la suite → »** (`target="_blank" rel="noopener noreferrer"`).
|
|
|
|
### Section 5 : Parcours « SALARIÉS ISOLÉS & TPE : VOUS N'ÊTES PAS SEULS »
|
|
- **Fond :** Blanc (`#ffffff`).
|
|
- **Contenu (entièrement éditable dans l'admin) :**
|
|
- Bloc pédagogique destiné aux salariés des petites entreprises (< 11 salariés), commerces, artisanat ou chantiers sans CSE[cite: 6].
|
|
- Met en avant la **confidentialité absolue** de toute démarche vis-à-vis de l'employeur, le rattachement direct au syndicat **Multipros** de l'Union Locale, et l'accompagnement par les **Conseillers du Salarié** lors des entretiens préalables[cite: 6].
|
|
- Bouton d'action rouge CGT : *« Contacter l'UL en toute confidentialité »*[cite: 6].
|
|
|
|
### Section 6 : Vie Militante, Formation Syndicale (CFESES) & Appli Mobile
|
|
- **Fond :** Gris doux (`#f1f3f5`).
|
|
- **Grille adaptative (2 colonnes si l'Appli Mobile est activée, 1 colonne centrée sinon) :**
|
|
1. **Colonne gauche — Formation Syndicale (CFESES) :** Rappelle le droit légal de chaque salarié au **Congé de Formation Économique, Sociale, Environnementale et Syndicale** (maintien de salaire, demande à remettre à l'employeur 30 jours avant) et l'aide à la vie syndicale[cite: 6, 8].
|
|
2. **Colonne droite — L'Application Mobile UL CGT Foix Haute-Ariège (désactivable et désactivée par défaut) :** Présente l'application Android/KMP (actualités locales, alertes mobilisation Push, carte de syndiqué virtuelle & 13 timbres 100 % hors-ligne) avec emplacement pour le lien de téléchargement direct (`.apk` / Play Store) et l'image QR Code (configurables et activables dans l'admin)[cite: 8].
|
|
|
|
### Section 7 : Réseau Syndical CGT
|
|
- **Fond :** Blanc (`#ffffff`).
|
|
- Grille de **5 cartes verticales** (logo officiel circulaire/encadré en haut, titre, description courte, bouton *« Visiter le site ↗ »*) vers l'écosystème confédéral et départemental : **UD CGT 09**, **Confédération CGT (`cgt.fr`)**, **La NVO (`nvo.fr`)**, **IHS CGT**, **INDECOSA-CGT**[cite: 6].
|
|
|
|
---
|
|
|
|
## 5. PIED DE PAGE (`footer.php`) — SOUVERAIN & PRATIQUE
|
|
- **Aucune mention** *"Propulsé par WordPress"* ou *"Thème..."*[cite: 6].
|
|
- **Fond sombre (`#1c1e21`), texte blanc/gris clair, grille 3 colonnes :**
|
|
1. **Union Locale CGT Foix Haute-Ariège :** Logo version blanche (`assets/img/banniere-ul-blanc.png`, modifiable dans l'admin), courte présentation (union de tous les syndicats du périmètre & syndicat Multipros pour les isolé·e·s), et appel militant : *« Une lutte dans votre entreprise, une info à partager ? Contactez l'UL »*.
|
|
2. **Nos Locaux & Permanences (visible sur 100 % des pages) :**[cite: 6]
|
|
- Adresse : `Espace Sabart, 10 Av. de l'Ayroule, 09400 Tarascon-sur-Ariège` (modifiable dans l'admin)[cite: 7].
|
|
- Téléphone cliquable : `07 60 49 64 69`[cite: 7]
|
|
- Email cliquable : `union-locale@cgt-fha.fr`[cite: 7]
|
|
- Horaires des permanences d'accueil et juridiques (éditables)[cite: 6].
|
|
- Lien vers la page Facebook officielle de l'UL[cite: 7].
|
|
3. **Accès rapides & Mentions :** Liens vers *Actualités*, *Calendrier*, *Se syndiquer*, *Urgence salarié*, *Mentions légales & Confidentialité*.
|
|
|
|
---
|
|
|
|
## 6. PANNEAU D'ADMINISTRATION WORDPRESS (`inc/theme-options.php`)
|
|
Crée une page de réglages complète et intuitive dans **Apparence > Réglages UL CGT** (organisée en onglets propres sans dépendance JS externe) permettant de modifier sans coder :
|
|
1. **Onglet 1 — Identité & Coordonnées :** Téléphone, E-mail, Adresse des locaux, Horaires des permanences, URL Facebook, URL page *Syndiquez-vous*, URL page *Besoin d'aide / Contact*.
|
|
2. **Onglet 2 — Bandeau Mobilisation :** Case *Activer*, Texte du mot d'ordre & lieu, Lien URL optionnel, Champ `datetime-local` d'expiration automatique[cite: 6].
|
|
3. **Onglet 3 — Page d'accueil (Hero & Blocs statiques) :**
|
|
- Sélecteur d'image de fond du Hero (via la Médiathèque WP `wp_enqueue_media()`), Titre H1, Citation, Libellés et liens des 2 boutons du Hero.
|
|
- Champs pour les 3 cartes *« À quoi nous servons ? »* (choix d'icône SVG, titre, description pour chaque carte).
|
|
- Champs pour les blocs *Salariés isolés / TPE*, *Formation CFESES* et *Application Mobile* (URL APK/Store + sélecteur image QR Code + cases pour afficher/masquer chaque bloc)[cite: 6, 8].
|
|
4. **Onglet 4 — Flux Confédéral (`cgt.fr`) :** État du cache actuel (date de dernière synchronisation, aperçu de l'article *À la une* en cache) et bouton de rafraîchissement manuel immédiat.
|
|
|
|
---
|
|
|
|
## 7. SEO LOCAL, OPENGRAPH & PERFORMANCE (`inc/seo-performance.php`)
|
|
1. **Balises `<title>` et `<meta name="description">` :**
|
|
- Sur la page d'accueil : `Union Locale CGT Foix Haute-Ariège | Défense des salariés et action syndicale`[cite: 6].
|
|
- Sur les articles et pages : `[Titre] | Union Locale CGT Foix Haute-Ariège` + meta description extraite automatiquement du contenu nettoyé[cite: 6].
|
|
2. **Balises OpenGraph :** Injection automatique de `og:title`, `og:description`, `og:url`, `og:type`, `og:locale` (`fr_FR`) et `og:image` (image à la une ou image Hero par défaut) pour des aperçus propres sur Facebook, WhatsApp et SMS[cite: 6].
|
|
3. **Alerte Indexation Admin :** Si `get_option('blog_public') == '0'`, affiche une alerte rouge dans le tableau de bord WordPress invitant à autoriser l'indexation dans *Réglages > Lecture*[cite: 6].
|
|
4. **Optimisation & Nettoyage :** Suppression de `wp-emoji` et `wp-embed`, ajout de `loading="lazy"` sur les images hors ligne de flottaison, échappement systématique (`esc_html`, `esc_url`, `esc_attr`, `wp_kses_post`)[cite: 6].
|
|
|
|
---
|
|
|
|
## 8. GESTION DE VERSIONS, MISE À JOUR GITEA & PUBLICATION
|
|
- **Dépôt distant public :** `https://git.cgt-fha.fr/Union_Locale_CGT_Foix_Haute-Ariege/cgt-wp-theme.git` (branche principale : `main`).
|
|
- **Mise à jour en un clic depuis WordPress (`inc/class-cgt-gitea-updater.php`) :**
|
|
- Vérification directe sans jeton d'authentification sur `https://git.cgt-fha.fr/Union_Locale_CGT_Foix_Haute-Ariege/cgt-wp-theme/raw/branch/main/style.css` (cache Transient 6 h).
|
|
- Téléchargement via `https://git.cgt-fha.fr/Union_Locale_CGT_Foix_Haute-Ariege/cgt-wp-theme/archive/main.zip` et renommage automatique du dossier extrait vers `get_stylesheet()` (`upgrader_source_selection`, compatible mises à jour unitaires et groupées).
|
|
- Préservation stricte de `wp_options` (`cgt_fha_options`), des menus et des médias lors de chaque mise à jour.
|
|
- **Documentation & Aperçu :** `README.md` (documentation d'utilisation et de mise à jour en français) et `screenshot.png` (`1200x900px` pour *Apparence > Thèmes*).
|
|
- **Fichier `.gitignore` :** Exclut les fichiers système (`.DS_Store`, `Thumbs.db`), les éditeurs (`.vscode/`, `.idea/`), et d'éventuels dossiers temporaires, tout en conservant le code source du thème, `README.md` et `AGENTS.md`.
|
|
- **Compatibilité déploiement VPS :** Tous les chemins dans le thème utilisent exclusivement les fonctions natives WordPress (`get_template_directory()`, `get_template_directory_uri()`, `get_stylesheet()`) afin que le déploiement automatisé vers `/var/www/fastuser/data/www/cgt-fha.fr/wp-content/themes/cgt-fha/` fonctionne sans aucune dépendance de chemin en dur[cite: 6].
|
|
|
|
---
|
|
|
|
## 9. ARBORESCENCE DES FICHIERS À GÉNÉRER
|
|
```text
|
|
/
|
|
├── AGENTS.md # Ce cahier des charges
|
|
├── README.md # Documentation du thème & procédure de mise à jour Gitea
|
|
├── screenshot.png # Aperçu visuel 1200x900px dans Apparence > Thèmes
|
|
├── .gitignore # Exclusions propres pour Gitea
|
|
├── style.css # En-tête thème WP + Variables CSS + Design System complet
|
|
├── theme.json # Palette couleurs CGT (#d20012) & réglages éditeur
|
|
├── functions.php # Chargement des modules, supports WP, menus, enqueues
|
|
├── header.php # Topbar, Bandeau Mobilisation auto-expirant, Nav responsive
|
|
├── footer.php # Footer 3 colonnes avec coordonnées Espace Sabart & liens CGT
|
|
├── front-page.php # Page d'accueil complète (7 sections fidèles à la maquette)
|
|
├── home.php # Liste paginée des actualités locales de l'UL
|
|
├── single.php # Gabarit d'article local (partage social, catégorie, navigation)
|
|
├── page.php # Gabarit de page standard (Contact, Calendrier, Syndiquez-vous...)
|
|
├── archive.php # Archives par catégorie/étiquette locale
|
|
├── 404.php # Page d'erreur 404 utile avec recherche et liens vers l'UL
|
|
├── index.php # Gabarit de secours WordPress requis
|
|
├── inc/
|
|
│ ├── class-cgt-confederal-feed.php # Scraper cgt.fr + cache Transients + WP-Cron + rendu wireframe
|
|
│ ├── class-cgt-gitea-updater.php # Mise à jour WordPress en un clic depuis le dépôt public Gitea
|
|
│ ├── theme-options.php # Page d'admin WP : Réglages UL CGT + migration non destructive
|
|
│ └── seo-performance.php # Titres SEO locaux, OpenGraph, alerte indexation, nettoyage WP
|
|
└── assets/
|
|
├── js/main.js # Menu mobile accessible & onglets admin (Vanilla JS)
|
|
└── img/ # Bannières UL (noir/blanc), hero-ariege.jpg, logos réseau CGT, SVG
|
|
``` |