Aide:Structure du wiki
Documentation technique : comment le site est construit, comment il fonctionne, et comment le faire évoluer. Pour la liste détaillée des modèles, voir Aide:Modèles.
Principe général
Le site repose sur MediaWiki et trois extensions principales :
- Cargo stocke les informations des fiches dans des tables, comme une base de données.
- Page Forms fournit le formulaire de saisie.
- ParserFunctions permet les conditions et calculs dans les modèles.
Chaque fiche appelle le modèle Modèle:Affaire, qui enregistre ses champs dans une table. Toutes les listes, compteurs, frises et classements du site sont des requêtes sur ces tables : ils se mettent à jour seuls, sans jamais être écrits à la main.
Types de pages
| Type | Modèle | Rôle |
|---|---|---|
| Fiche | Affaire (+ Victime, Blessé) | Un fait précis, avec un statut. Créée via Formulaire:Affaire. |
| Analyse | Analyse | Mise en relation de faits et de chiffres, avec une conclusion de la rédaction. |
| Dossier | Dossier | Regroupe des fiches de plusieurs catégories autour d'un événement. |
| Catégorie | Catégorie du site | Liste automatique des fiches d'une catégorie. |
| Personne | Personne | Liste automatique des fiches qui citent la personne. |
| Institution | Institution | Liste automatique des fiches qui concernent l'institution. |
Tables Cargo
| Table | Déclarée par | Champs |
|---|---|---|
| Affaires | Modèle:Affaire | Categorie, Dossier (liste), DateFaits, Lieu, Departement, Institution (liste), Personnes (liste), Citation, Montant, Decision, Statut, Resume, Sources (liste, séparateur ;), Verifie |
| Victimes | Modèle:Victime | Nom, Age, DateDeces, Cause |
| Blesses | Modèle:Blessé | Nom, Age, DateBlessure, Blessure, Arme |
| Categories | Modèle:Catégorie du site | Description, Couleur, Ordre |
| Dossiers | Modèle:Dossier | Description, Periode, Couleur |
| Analyses | Modèle:Analyse | Theme, MiseAJour, Resume |
Les tables et leur contenu sont visibles sur Spécial:CargoTables. Victimes et Blesses sont reliées aux fiches par le nom de la page (_pageName).
Accueil · Catégories · Dossiers · Analyses · Toutes les fiches · Frise chronologique · Personnes · Institutions · Aide:Statuts · Lexique · Sources et ressources · À propos
Circuit d'une fiche
- Un contributeur crée la fiche avec le formulaire. Elle est marquée « non vérifiée ».
- Si Approved Revs est installé, la modification reste invisible au public jusqu'à son approbation par un relecteur ou un administrateur (page Spécial:Révisions_approuvées).
- Un relecteur vérifie chaque information contre ses sources, puis passe « Fiche vérifiée » à Oui.
Les relecteurs sont nommés sur Spécial:Droits_des_utilisateurs (groupe « relecteur »).
Faire évoluer le site
Ajouter une catégorie
- Créer une page portant le nom de la catégorie, contenant :
{{Catégorie du site|Ordre=15|Couleur=#123456|Description=...}} - Elle apparaît automatiquement sur l'accueil, la page Catégories et dans le formulaire.
- Ajouter à la main un lien dans MediaWiki:Sidebar.
Ajouter un dossier
- Créer une page portant le nom du dossier, contenant :
{{Dossier|Periode=...|Couleur=#...|Description=...}} - Indiquer ce nom dans le champ « Dossier » des fiches concernées.
Ajouter un statut
- Ajouter sa ligne dans Modèle:Statut, avant
|#default=. - L'ajouter à la liste
allowed valuesdu champ Statut dans Modèle:Affaire, puis reconstruire la table Affaires. - L'ajouter à la liste
values=du champ Statut dans Formulaire:Affaire. - L'expliquer dans Aide:Statuts.
Ajouter un champ aux fiches
- L'ajouter dans
cargo_declareetcargo_storede Modèle:Affaire, et dans l'encadré si on veut l'afficher. - L'ajouter dans Formulaire:Affaire.
- Reconstruire la table Affaires.
Maintenance
Commandes à lancer sur le serveur, depuis le dossier du docker-compose. L'ordre compte lorsque Approved Revs est installé : approuver, puis recalculer les liens, puis reconstruire les tables.
# 1. Approuver toutes les pages (Approved Revs) sudo docker compose exec wiki php extensions/ApprovedRevs/maintenance/approveAllPages.php # 2. Recalculer les liens entre pages et modèles sudo docker compose exec wiki php maintenance/run.php refreshLinks # 3. Reconstruire une table Cargo (remplacer Affaires par le nom de la table) sudo docker compose exec wiki php maintenance/run.php ./extensions/Cargo/maintenance/cargoRecreateData.php --table Affaires # 4. Mettre à jour la base après l'ajout d'une extension sudo docker compose exec wiki php maintenance/run.php update --quick
Une page qui affiche des données anciennes se rafraîchit en ajoutant ?action=purge à son adresse.
Problèmes fréquents
- « Erreur
- table X non trouvée »
- La table n'existe pas encore. Réenregistrer le modèle qui la déclare (avec une petite modification), puis reconstruire la table.
- Une fiche n'apparaît pas dans les listes
- Elle n'est pas approuvée, ou ses liens n'ont pas été calculés. Approuver, lancer
refreshLinks, reconstruire la table. - La reconstruction affiche « pages 1 to 0 »
- MediaWiki ne sait pas quelles pages utilisent le modèle. Lancer
refreshLinkspuis recommencer. - « fonction SQL non autorisée »
- Cargo n'autorise qu'une liste limitée de fonctions SQL (par exemple pas
RAND()).
Configuration
Extensions utilisées, déclarées dans LocalSettings.php :
| Extension | Rôle | Obligatoire |
|---|---|---|
| Cargo | Tables de données et requêtes | Oui |
| Page Forms | Formulaire de saisie | Oui |
| ParserFunctions | Conditions et calculs dans les modèles | Oui |
| Cite | Notes et références (<ref>) |
Oui |
| Approved Revs | Relecture avant publication | Recommandée |
| ConfirmEdit (QuestyCaptcha) | Anti-spam à la création de compte | Recommandée |
| AbuseFilter | Filtres automatiques contre le vandalisme | Recommandée |
| VisualEditor, WikiEditor, CodeMirror | Édition visuelle et coloration du code | Confort |
| EmbedVideo | Vidéos intégrées | Optionnelle |
Réglages importants :
// Approved Revs : les modèles et formulaires ne passent pas par la relecture $egApprovedRevsEnabledNamespaces[NS_TEMPLATE] = false; $egApprovedRevsEnabledNamespaces[106] = false; // espace Formulaire // Seuls les administrateurs modifient modèles et formulaires $wgNamespaceProtection[NS_TEMPLATE] = [ 'editinterface' ]; $wgNamespaceProtection[106] = [ 'editinterface' ];
Utiliser le numéro 106 et non la constante PF_NS_FORM, qui n'est pas encore définie quand LocalSettings.php est lu.
Réinstaller la structure
Le script installer-structure.sh recrée tous les modèles, le formulaire, les pages de catégorie, de navigation et d'aide, l'accueil et la barre latérale, sans toucher aux fiches. Les coordonnées de contact et l'adresse de don se renseignent en haut du script.