61 lines
3.1 KiB
Plaintext
61 lines
3.1 KiB
Plaintext
---
|
||
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é à l’utilisateur (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 d’invite — **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 d’exé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.
|