Bon comme je le disais dans un précédant post le plus simple et le plus puissant c’est d’utiliser les TVs.
La seule contraintes (psychologique) c’est le fait qu’il ne faut pas avoir peur d’avoir une arborescence (dans le manager) importante dés que l’on a beaucoup de d’infos car dans ton cas un club ou une école sera un document MODx.
De mon côté c’est la seule question que je pose.
Si cela te convient voici comment faire :
1) Crée un répertoire "Annuaire"
2) Crée les TVs (Variables de modèles) suivantes :
- nom= dirTech , Légende = Directeur technique, Type = RichText ou Textaera
- nom= tel , Légende = Téléphone, Type = RichText ou Textaera
- nom= email , Légende = Email, Type = text
- nom= site , Légende = Site, Type = text ou URL
- nom= type , Légende =Structure, Type = dropdown list (j’aime bien les listes) , valeurs optionnelles d’entrée = "Choisissez une valeur==#||Ecole==1||Club==2"
- nom= dep , Légende = Département, Type = dropdown list .... ici dans "valeurs optionnelles d’entrée" tu mets @CHUNK listDepartements
Tu associes toutes ces Tvs à un template, dans ton cas peu importe le contenu de ce template car il ne sera pas affiché mais sert juste à associer toutes les TVs à tes docs, le mieux c’est quand même d’en créer un particulier style "modèle annuaire".
3) Tu crée un chunk listDepartements avec "Choisissez une valeur==#||ARIEGE - 09==09||AVEYRON - 12==12" tc..
4) Voila ton BO est fini

Pour ajouter une structure, tu crée un document dans le rep Annuaire et tu lui associes le template "modèle annuaire"... tous les champs (Dirtech, tel, email, type, etc.) apparaissent et il ne te reste plus qu’à remplir avec les bonnes valeurs et à enregistrer ton travail !!
Pour le front c’est un peut plus compliqué ... faut jouer avec les filtres ditto pour retrouver les listing Ecoles/Clubs/départements... mais c’est largement faisable.
Sinon tu peux développer des snippets qui récupèrent (table site_content) et mettent en forme les infos que tu souhaites