Lecteur Markdown
Features Documentation
BeamReactor — Module features (Todo List) #
Version : 3.5.4
Auteur : Treveur Bretaudière
Depuis : 2002
Dernière mise � jour 2025.12.2-25
features (Todo List) #Version : 3.5.4
Auteur : Treveur Bretaudière
Depuis : 2002
Dernière mise � jour 2025.12.2-25
Le module features est le système de gestion des demandes de fonctionnalités et de rapports de bugs de BeamReactor. Il fonctionne comme une todo list interne avec suivi de priorité, modération, historique, et export.
Il repose sur trois fichiers :
| Fichier | Rôle |
|---|---|
| features.php | Logique principale : CRUD, affichage, recherche, export |
| features_conf_inc.php | Configuration du module (affichage, niveau d'accès, couleurs) |
| features_moderation.json | Déclaration pour le système de modération BeamReactor |
FEATURES_LEVEL_HIGHUSER minimum.Beamreactor\Database\SQL et Beamreactor\Sanitizer\Parser.getlocale('features').frameheader / framefooter) doit être actif.Table : feature_list
| Champ | Description |
|---|---|
| id | Identifiant unique (auto-increment) |
| nick | Auteur de la demande |
| feature | Texte descriptif de la demande / du bug |
| tstamp | Date de création |
| state | État (index numérique mappé via $dialstatelist) |
| type | Type (index numérique mappé via $dialtypelist) |
| severity | Sévérité / priorité (0–9, utilisé pour la barre visuelle) |
| mod_nick | Modérateur ayant modifié l'entrée (--- si aucun) |
| mod_tstamp | Date de la dernière modération |
Le routage des actions se fait via un match sur le paramètre feature (POST ou GET).
| Action | Méthode | Niveau requis | Description |
|---|---|---|---|
| (défaut) | GET | HIGHUSER | Affiche la liste paginée |
| add / locale | POST | HIGHUSER | Affiche le formulaire d'ajout |
| added | POST | HIGHUSER | Traite l'ajout d'une entrée |
| detail | GET | HIGHUSER | Affiche le détail d'une entrée |
| edit | POST | Niveau > 1 | Affiche le formulaire d'édition |
| edited | POST | Niveau > 1 | Traite la modification |
| done | POST | HIGHUSER | Marque comme fait, archive dans hist.txt, supprime l'entrée |
| remove | POST | Niveau > 2 | Supprime définitivement une entrée |
| search / locale | POST | HIGHUSER | Recherche dans les entrées |
| export | GET | HIGHUSER | Exporte toutes les entrées en fichier texte brut |
| stats | — | — | Non implémenté (die("Not ready yet")) |
page, sorting, tot$_REQUEST['tot'] ou est recalculé via COUNT(*).| Valeur sorting | Ordre |
|---|---|
| 0, 2 | Date décroissante |
| -2 | Date croissante |
| 1 | Auteur A→Z |
| -1 | Auteur Z→A |
| 4 | Sévérité décroissante |
| -4 | Sévérité croissante |
Les entrées affichent une barre de progression colorée (vert → orange → rouge) représentant la sévérité.
En liste : la sévérité est mappée sur 5 niveaux ($sev * 22.22%), avec un décalage de +1 sur la valeur brute.
En détail : la sévérité est mappée sur 9 niveaux ($sev * 11.11%), sans décalage.
La barre utilise un dégradé CSS linéaire (#22c55e → #f97316 → #ef4444) dans un conteneur arrondi avec ombre interne.
L'action export génère un fichier texte brut téléchargeable contenant toutes les entrées, formatées ainsi :
[2025.12.25 14:30] nick | état | type | !!! | mod: mod_nick (date)
→ description (retour � la ligne � 100 caractères)
Le fichier est nommé beamreactor-features-YYYY-MM-DD.txt.
Quand une entrée est marquée comme terminée (done), le système :
1. Lit le texte de la demande depuis la base.
2. Ajoute une ligne horodatée dans /var/hist.txt (si le fichier existe).
3. Supprime l'entrée de la base.
Le fichier features_moderation.json déclare le module auprès du système de modération centralisé de BeamReactor :
{
"enabled": true,
"table": "feature_list",
"user_fields": ["nick", "mod_nick"],
"content_fields": ["feature"],
"date_field": "tstamp",
"moddate_field": "mod_tstamp"
}
Cela permet au moteur de modération d'inspecter et d'agir sur les contenus de ce module de manière unifiée.
| Variable | Valeur | Rôle |
|---|---|---|
| $basedatadisplay | 'yes' | Active l'affichage des données de base |
| $basedisplevel | BASE_LEVEL_HIGHUSER | Niveau d'accès pour l'affichage |
| $ftype | 9 | Identifiant de type de module dans BeamReactor |
| $barcolor | Tableau de 6 couleurs hex | Palette de couleurs de sévérité (legacy, non utilisée dans le code actuel) |
secure(FEATURES_LEVEL_HIGHUSER).$_SESSION['user_level'] > 1.$_SESSION['user_level'] > 2.Parser::sanitize() avec une longueur maximale de 500 caractères et un minimum de 6 caractères.SQL::query() et SQL::queryFirst().$_SESSION['last_name'], pas via un input client.Le module charge ses chaînes de traduction via getlocale('features'). Les variables globales suivantes sont utilisées :
$dialfeatures — Labels de l'interface (boutons, titres, messages)$dialstatelist — Libellés des états$dialtypelist — Libellés des types$dialseveritylist — Libellés des niveaux de sévérité$dial — Labels de pagination (précédent/suivant)Les clés d'action (addfeat, search) sont localisées, ce qui permet au routage de fonctionner quelle que soit la langue active.