En fait je travaille dur

Plus de trois mois depuis mon dernier message, vous deviez certainement vous inquiéter et peut-être penser que je m'étais reconverti dans la confection de bijoux fantaisie et que je n'avais pas eu le courage d'en parler. Si cela demeure sans doute un passion secrète, les bijoux fantaisie n'ont hélas pas grand chose à voir à mon absence si longue des pages de mon blog chéri. La raison est pourtant simple et sans appel : je travaille dur.

Au mois d'octobre dernier j'ai choisi de changer d'agence, faisant le pari d'aventures, de défis et – pourquoi pas – de gloire éternelle.

Vous savez peut-être que je travaille à mon propre CMS depuis maintenant quelques années (depuis 2007 en fait), et qu'il se trouve au sommet de tous mes projets. Ce CMS, que j'ai appelé « WdPublisher », a pris tout mon temps et toute ma vie sociale ces trois derniers mois parce qu'il a été adopté avec confiance et espoir par ma nouvelle agence. Il est les petits bras musclés qui animent les sites que nous faisons, et nous n'avons pas chaumé. Voici quelques uns d'entre eux :

Atalian

« ATALIAN est un acteur majeur du service global aux entreprises et collectivités. Créé en 1944, son offre s’articule aujourd’hui autour de 7 pôles d’activités qui apportent, individuellement ou en synergie, les savoir-faire supports de l’entreprise : Multitechnique, Propreté, Sécurité, Hygiène 3D, Bâtiment, Espace vert, Accueil. »

Premier projet d'envergure pour le WdPublisher, il s'agissait de mettre en pratique de nombreuses fonctionnalités toutes fraiches de mon CMS et surtout faire la preuve que malgré sa jeunesse il peut être une alternative sérieuse à Drupal, Wordpress ou Typo3. Parmi ces fonctionnalités on retrouve :

  • les pages, l'arborescence, les menus.
  • la génération d'URL dynamiques des objets selon la page associée.
  • le nouvel éditeur multiple qui permet de choisir entre : brut, TextMark, Patron (le moteur de gabarit utilisé pour WdPublisher) et WYSIWYG.
  • le nouveau moteur qui accompagne la nouvelle interface d'administration.

Voici quelques captures d'écran :

EDF-UPSO

J'imagine que tout le monde connait EDF et bien voici leur blog dédié aux territoires et au développement hydroélectrique.

Rien de bien compliqué ici pour le WdPublisher, qui a déjà fait ses preuves en matière de blogs, il s'agissait surtout de mettre en pratique les nouvelles fonctionnalités de liaison entre objets et de se servir enfin du module dédié à la gestion des vidéos. Voici quelques captures d'écran :

Le Grand Vatel

« Le restaurant le Grand Vatel ouvre ses portes à Auzeville Tolosane et propose un concept novateur qui allie la simplicité de la cuisine brasserie à la qualité d’un restaurant gastronomique. »

Au moment du projet, je n'avançais pas sur grand chose. En parallèle, je travaillais d'arrache pied sur Europa-Organisation – faisant par-ci par-là des nocturnes – je n'avais pas vraiment envie de programme en rentrant chez moi :-) Cela dit les options de configuration du module « Actualités » étaient déjà plus complètes, notamment les limites d'affichage pour les listes et la gestion des miniatures. L'éditeur « Gadgets » faisait quand même son apparition, permettant de choisir quels gadgets utiliser dans une zone de contenu, ainsi que l'ordre des gadgets :

Europa-Organisation

« Chaque année, Europa Organisation réalise des congrès majeurs où se rencontrent plusieurs dizaines de milliers de personnes. »

Europa, c'est LE gros projet de ces derniers mois. Je n'ai pas beaucoup dormis parce que non content de bien m'occuper la journée (et parfois la nuit) pour développer les modules spécifiques au projet, je bossais durant tout mon temps libre pour ajouter des fonctionnalités manquantes, et bien entendu indispensables, que je repoussais depuis longtemps, comme la gestion multilingue et l'administration des formulaires.

C'est là que je me suis félicité d'avoir choisis une approche totalement objet pour la gestion des données. Alors bien sûr parfois ça fait beaucoup plus de requêtes SQL, mais simplement taper $node->translation pour avoir la traduction de n'importe quel objet m'a fait gagner un temps fou, que j'ai pu investir dans d'autres choses comme l'espace de sondage protégé qui m'a fait revoir ma copie sur les formulaires.

Voici quelques captures d'écran relatives à la gestion multilingue :

Concernant les formulaires donc, auparavant je devais écrire l'interface de configuration et récupérer comme un grand les valeurs sauvées dans le registre pour chaque formulaire, et tout cela se passait sur la page « Configuration » du module « Réactions ». Autant dire que c'était complètement nul parce qu'on se retrouvait avec une page interminable, surtout pour un site multilingue où les formulaires étaient d'autant plus nombreux.

Pas de regrets, on efface tout et on recommence, voici maintenant comment ça marche :

  • D'abord on a des modèles de formulaire, qui sont une description en PHP des éléments qui constituent le formulaire, des éléments qui configurent le formulaire et ce que l'on doit faire une fois le formulaire validé (comme l'envoyer par email, l'enregistrer en base de données, appeler un callback…)
  • Ensuite, on crée des objets depuis ces modèles. On peut par exemple avoir plusieurs formulaires de contact tous issus du même modèle, mais qui peuvent être configurés indépendamment pour envoyer un message à des personnes différentes ou avoir un message de remerciement différent, par exemple, dans une langue différente (multilingue, quand je te tiens).
  • Enfin, on utilise la balise wdp:feedback:form pour incruster notre joli formulaire au milieu de nos patrons. Par exemple : <wdp:feedback:form select="contact" /> pour incruster le formulaire de contact, qui par magie sera dans la langue du site (ou en natif si rien de mieux n'est disponible).

Nous sommes maintenant le Mercredi 10 février, je rentre de mon cours de Pilates et je mets enfin à jour mon blog. En espérant vous retrouver très bientôt pour de nouvelles aventures et un développement sur tout ce que j'ai présenté ici en catastrophe, je vous souhaite une bonne nuit.

Laisser un commentaire

Pas de commentaire