[épisode 1] réflexion sur un projet

  • warning: array_map(): Argument #2 should be an array in /var/www/titouille.ch/www/modules/system/system.module on line 1050.
  • warning: array_keys() expects parameter 1 to be array, null given in /var/www/titouille.ch/www/includes/theme.inc on line 1845.
  • warning: Invalid argument supplied for foreach() in /var/www/titouille.ch/www/includes/theme.inc on line 1845.
Portrait de titouille

Drupal a beau être un CMS excellent, sa prise en main n'en reste pas moins laborieuse. De par sa flexibilité, le panel d'administration est assez atypique et abstrait.

J'ai plusieurs projets en attente. Chacun pourrait être implémenté par Drupal, et je trouve intéressant de pouvoir démontrer les possibilités de Drupal sous forme d'une suite de billets. Malheureusement, ces projets à mettre en place sont relativement complexes, et j'ai un doute sur le suivi de tout le projet, car ils impliquent une certaine quantité de modules et je n'aurai peut-être pas le courage de tout expliquer en détail...

Malgré tout, voici un des projets que je dois mettre en place :

le cahier des charges est fictif et orienté, mais rentre dans les grandes lignes d'un projet réel

Créer un site de gestion "d'évènements" pour différent groupes de personnes (une association). Chaque groupe à un "professionnel" qui va gérer ces évènements, et les autres membres (clients) du groupe vont s'abonner à un ou plusieurs évènements.

Pour s'abonner à un groupe, soit le professionnel crée un profil pour le client, soit le client crée son profil et insère une "clé" qui va lui permettre d'être affecté à un groupe particulier.

Ni les clients ni le professionnel d'un groupe ne voient ce qui se passe dans les autres groupes.

En parallèle, l'association possède des "secrétaires" qui auront un droit de regard et de modification sur tous les évènements, dans tous les groupes. Il est même possible d'imaginer un système qui octroie des droits spécifiques sur certains groupes seulement, pour partager le travail des secrétaires.

Voici les différentes contraintes de base que me dicte mon cahier des charges :

  • J'ai différents types d'utilisateurs : des clients, des professionnels, des secrétaires
  • Je dois faire des "groupes" de personnes qui auront accès aux données de leur groupe uniquement
  • Je dois mettre en place un "calendrier" pour gérer les évènements
  • Les évènements peuvent être de différentes natures, et contenir plus ou moins de données selon les cas
  • Lorsqu'une secrétaire modifie un évènement pour un professionnel, ce dernier doit être averti de la modification au plus vite afin de la prendre en considération, et inversément, si un professionnel fait une modification sur un évènement, la secrétaire doit être avertie pour communiquer le changement aux clients abonnés
  • Une gestion de "tickets" doit être mise en place pour que les clients puissent s'abonner à des groupes particuliers

Dans cette optique, la première chose à faire est de rechercher des modules qui pourraient être utilisés pour mes besoins.
Et dans ce cas précis de gestion d'évènements par groupes, Drupal propose tout ce qu'il faut, ou presque.

Il existe tout d'abord un module "Events" qui gère les évènements. Puis toute une batterie de modules "OG". Les modules "organic groups" permettent de gérer des groupes ainsi que leurs utilisateurs, dans différents modes.

Parmi les modules OG intéressants, il faut tout d'abord citer "OG Calendar" qui, lié au module "Events", mets en place un calendrier par groupe pour la gestion des évènements.

Ensuite "OG Forums" qui autorise la création de forums de discussions internes aux groupes. Ce petit + permettra d'ouvrir une partie "communication".

Et enfin, pas des moindres, "OG Registration Codes" qui va me donner la possibilité de mettre en place l'abonnement des clients aux groupes via des codes.

Voilà pour le commencement. La suite au prochain épisode (installation, configuration, super-administrateur et gestion des rôles)