Files
ms1inscription-v5/.cursor/rules/projet/10-documentation.mdc

61 lines
3.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
description: Documentation du code et des changements MS1
alwaysApply: true
---
# Documentation MS1
## Commentaires dans le code
- Documenter la **logique métier non évidente** (règles d'inscription, paiement, permissions, états annulés, etc.).
- Pour une nouvelle fonction ou un bloc important : courte description du **pourquoi**, pas seulement du quoi.
- Référencer le ticket : `// MSIN-4405` ou bloc PHPDoc `* MSIN-4405 — …`.
- Langue : **français** pour les commentaires métier (comme le reste du projet), sauf si le fichier est entièrement en anglais.
## Libellés UI (table `info`)
- Tout texte affiché à lutilisateur (FR/EN) passe par **Info** (`afficheTexte` / `fxInscrGestionT` / clés `info_clef`), **jamais** codé en dur dans le PHP/JS.
- Ça inclut aussi : en-têtes de colonnes, compteurs (« 12 inscriptions »), pastilles, `title`/`aria-label`, messages dinvite — **même si `aria-hidden`**.
- Interdit : `if ($strLangue === 'fr') { echo '…'; } else { echo '…'; }`, ternaires FR/EN, chaînes collées dans un `echo` HTML.
- Nouvelle clé = script SQL `sql/MSIN-xxxx-….sql` (INSERT dans `info`, fr + en) **dans le même lot** que le PHP.
- Les fallbacks PHP FR/EN (`fxInscrGestionFallbackTexte`, etc.) = filet de secours uniquement ; **pas** la source de vérité, et ne remplacent **pas** le script SQL.
Avant de terminer une tâche UI : rechercher dans les fichiers touchés les motifs `=== 'fr'`, `=== 'en'`, `$blnFr ?`, et les libellés français littéraux hors commentaires.
## AJAX multi-pages (Info)
Tout endpoint AJAX qui lit/écrit des libellés Info et peut être appelé depuis plusieurs pages (compte, hub, `/mobile`) doit **forcer le contexte `compte.php`** avant les includes utiles :
```php
define('MS1_…_AJAX', true); // optionnel, pattern existant
$_SERVER['PHP_SELF'] = '/compte.php';
$_SERVER['SCRIPT_NAME'] = '/compte.php';
$vPage = 'compte.php';
$vtexte_page = obtenirTextepage($vPage, $strLangue, 2);
```
Objectif : éviter les clés créées sous `info_prg=ajax_….php` et les libellés manquants selon la page appelante. Références : `ajax_promoteur_hub.php`, `ajax_bib_range.php`, `ajax_inscr_gestion.php`.
## Scripts SQL
En-tête obligatoire en tête de fichier :
```sql
-- MSIN-xxxx — Titre court
-- Contexte / prérequis (scripts à exécuter avant)
-- Notes : exécution UNIQUEMENT sur dev préprod ; autres env = Navicat structure + sync_static_db
```
- Indiquer l'ordre d'exécution si plusieurs scripts forment une migration.
- Préférer les scripts **idempotents** quand c'est possible (pattern déjà utilisé dans `sql/`).
- **Ne jamais** documenter / conseiller dexécuter ces scripts hors **dev préprod** (voir `projet/10-workflow.mdc` — Promotion BD).
## Résumé des changements (agent)
À la fin d'une implémentation, fournir :
1. **Quoi** — comportement ajouté ou corrigé.
2. **Où** — fichiers principaux touchés.
3. **Déploiement** — SQL **dev préprod seulement**, puis Navicat structure + outil sync pour les autres env ; `_VERSION_CODE` / config / étapes manuelles.
Ne pas créer de fichiers README ou docs hors demande explicite.