Extension phpBB 3.3+ — Suivi de chasteté complet : calendrier, sorties/activités en cage, catalogue de cages communautaire, relations Keyholder ↔ Encagé, badges publics et statistiques
Chastity Tracker est une extension phpBB permettant aux membres d'un forum de suivre leurs périodes de chasteté avec calendrier visuel, statistiques détaillées, sorties et activités en cage, catalogue communautaire de cages, relations encadrées Keyholder ↔ Encagé, badges publics et préférences de confidentialité.
- Calendrier mensuel avec navigation — jours verrouillés, sorties et activités mis en évidence
- Vue annuelle — 12 mois sur une page, couleurs dynamiques, responsive mobile
- Démarrage/fin de période avec date et heure personnalisables
- Ajout de périodes passées (dates historiques)
- Mode permanent — port de cage sans date de fin prévue
- 5 règles configurables par période
- Statistiques personnelles — total, périodes, meilleure année, répartition mensuelle et annuelle avec compteurs sorties/activités
- Préférences de confidentialité — contrôle fin sur chaque information visible
- Token API personnel
- Actualisation manuelle du cache
- Enregistrement avec date/heure, motif, durée et notes
- Seuil configurable (défaut 8h) — au-delà, confirmation et clôture automatique de la période
- Vérification stricte : la date doit être couverte par une période de verrouillage
- Message d'erreur inline avec formulaire pré-rempli (pas de perte de données)
- Motifs personnels avec validation admin et notification MP automatique
- Couleur
#FFF3CD(personnalisable) sur tous les calendriers
- Enregistrement avec date/heure, type, intensité (légère/moyenne/forte) et notes
- Mêmes vérifications de date que les sorties
- Motifs personnels avec validation admin et notification MP automatique
- Couleur
#EDE0F7(personnalisable) sur tous les calendriers
Même jour sortie + activité → couleur #F5E6D3 (personnalisable)
- Catalogue communautaire filtrable par marque/matériau, photos en lightbox
- Notation sur 5 étoiles + commentaires (validation admin)
- Proposition de nouvelles cages par les membres avec photo
- Collection personnelle avec archivage et suivi par cage sur les périodes
- Désignation Keyholder via liste déroulante (encagé → KH)
- Invitation multi-encagés par une KH (sélection multiple Ctrl+clic)
- Workflow MP automatique : demande → accept/refuse → MP de confirmation
- Affichage badges : 🔒 encagé, 🔑 KH, 🔒🔑 double rôle. Cadenas teinté doré pour un encagé sous contrôle
- Pastille K (dorée/argentée) sur les badges PNG selon le rôle
- Section profil : « Encagé(e) par : X » et « Keyholder de : [liste] »
- Historique complet conservé (refus, ruptures, dates)
- Anneaux de progression style Apple Watch (cage / messages / connexions), objectifs jour/mois/année configurables en ACP
- Locktober — badges Réussi/Participé, images distinctes par année
- Journées spéciales et badges anniversaire (membre ou Keyholder active)
- Paliers jours consécutifs (record) et jours totaux (cumul), seuils configurables, badges figés une fois acquis
- Félicitations automatiques par MP lors d'un nouveau record personnel
- Contrat symbolique entre encagé et Keyholder, composé d'articles par catégories (base, cadre, dispositif, communication, discipline...), catégories gérables en ACP
- Keyholder inscrite sur le forum ou Keyholder externe (pseudo + email, aucun compte requis) — aperçu et code de validation envoyés par email
- Proposition et validation mutuelle article par article, avec validation groupée (« Tout valider / Tout refuser »)
- Mot de sécurité — suspension immédiate du contrat par l'une ou l'autre partie
- Soumission avec code de validation (MP + email pour une KH inscrite, page publique dédiée pour une KH externe, avec option de refus)
- Export PDF/imprimable — pagination fiable via Paged.js, pied de page avec signataires et date
- Historique et reprise d'un contrat archivé comme modèle
- Pastille C sur les badges PNG, juste à côté de la pastille K
- Gestion ACP complète — liste filtrable par statut, aperçu de tout contrat, fin forcée
- Leaderboard sur la page d'accueil (dépliable) — 3 colonnes : année en cours, meilleure année, all-time
- Badge dans les posts — cadenas 🔒 (verrouillé) et clé 🔑 (Keyholder actif) à côté du pseudo
- Mini-calendriers profil — 4 derniers mois avec légende
- Tooltips au survol — détail sortie/activité (compatibles mobile)
- Icône cadenas dans la barre de navigation (permission
u_chastity_view)
- Paramètres — activer/désactiver, règles, Locktober, couleurs personnalisables, notification MP admin
- Statistiques — Top 50 utilisateurs avec calcul temps réel des périodes actives, rang et statut
- Sorties de cage — gestion des motifs globaux/personnels, approbation
- Activités en cage — gestion des motifs globaux/personnels, approbation
- Sauvegarde/restauration — export JSON complet des données
- Reconstruction — recalcul cache, historique, crons configurables
- Endpoint JSON
/chastity/api?token=xxx - Statut, jours, période active, statistiques
Voir INSTALL.md pour le guide complet.
Voir CHANGELOG.md pour l'historique des versions.
chastitytracker/
├── acp/ # Modules ACP (paramètres, statistiques, motifs)
├── adm/style/ # Templates ACP (Twig)
├── config/ # routing.yml, services.yml
├── controller/ # Contrôleur principal (API)
├── cron/task/ # Tâches cron (cache, historique)
├── event/ # Listener événements phpBB
├── language/ # Traductions FR + EN
├── migrations/ # Migrations BDD
├── service/ # Services (cache_updater, history_updater)
├── styles/all/
│ ├── template/ # Templates UCP (Twig)
│ │ └── event/ # Templates événements (profil, posts, leaderboard)
│ └── theme/
│ ├── chastity.css # CSS externalisé
│ └── images/ # SVG cadenas
├── ucp/ # Modules UCP
├── composer.json
└── ext.php
GPL-2.0-only