PTCMS : Projet tuteuré - Module
Je n’ai pas pu me retenir d’enchainer sur ce billet. Comme écrit dans le billet précédent, je suis chargé de réaliser ce qui concerne les modules et leur intégration.
Je vais peut-être présenté les modules que nous avons prévus.
Le premier intitulé “contenu statique” qui permet d’écrire basiquement du texte (pour ceux qui veulent faire un site statique). Le second est intitulé “contenu dynamique”; il permet de créer du contenu commenté. Le type de contenu peut être à peu près tout…au développeur de créer les types de contenu qu’il veut. Avec le système en place, on peut très facilement faire des articles, des news, des évènements, des albums photos, des vidéos, etc.
Il y avait deux contraintes à la réalisation de cette partie.
- un système permettant de futurs développements sans trop de difficulté
- un système permettant une intégration simple dans l’administration du cms
Le premier point a amené son lot de problème:
J’ai résolu le premier problème en mettant en place un super contrôleur (comme dit dans le précédent billet, nous développons avec CodeIgniter qui utilise le modèle MVC) dans lequel j’ai placé des méthodes pour gérer les permissions etc. Je compte compléter ces outils par la suite et faire une sorte de “mini framework” pour développeur.
Le second problème m’a donné plus de fil à retordre et je ne suis pas sûr de l’avoir réglé son problème complètement. Il fallait que chaque développeur puisse choisir la façon qu’il voulait de stocker les données dans la base. J’ai donc ajouté une couche d’abstraction au niveau base de données ce qui permet au développeur du module de choisir la façon de stocker ses données. J’espère que ça sera suffisant, on modifiera la façon de faire dans le pire des cas.
Le second point n’est pas tout à fait clair encore (dans ma tête):
Il y a le comment et le quoi. Le comment c’est l’affichage du quoi. Je pense faire simple, dans l’interface d’administration du contenu d’une page, on affiche les widgets comme sur la page normale, mais au lieu d’y charger le contenu, on affiche un formulaire qui permettrait de configurer le module à afficher, et la “vue” de ce module (par exemple pour le module de contenu commenté: titre de news seulement, ordonné de telle façon, etc.); Les vues sont aussi conditionnées par la taille du widget.
Il faudrait prévoir une preview de la page pour que l’utilisateur puisse avoir un rendu de ses choix avant validation.
J’espère agrémenter le billet de schéma ou captures d’écran, ou alors ça se fera dans un autre billet.