Réaliser une cvthèque avec Flexicontent et joomla! partie 1
Voilà, depuis un certain temps on parle avec Simon d’une série d’articles sur les CCK et particulièrement mon chouchou FLEXIcontent. N’ayant pas envie de faire un tutoriel classique sur la question, et écrivant comme un pied, j’ai toujours botté en touche...
Mais une dernière expérience m’a donné envie de me lancer.
Je vais essayer de vous raconter une histoire, pas avec des princesses ou des princes (quoi que...), mais avec beaucoup de pièges et de sorcières.
Un beau matin (avec du recul pas sûr qu’il soit si beau), on me demande de faire une proposition pour un site vitrine classique en Joomla! (jusque là, je dois pouvoir y arriver) mais avec une partie recrutement. Intéressant, mais d’habitude le cahier des charges est aussi maigre que la cigale au milieu de l’hiver. “On veut une CVthèque, un formulaire et on affichera des offres”*
Malgré mon insistance à avoir plus d’informations, je pars à la quête du composant ou de la solution qui pourra rendre mon Joomla! parfait pour ce projet. Au fil de mes recherches, j’arrive à un embranchement, trois chemins s'offrent à moi...
Un sage à la barbe blanche m’y attend et me pose une question, “What is your favorite color ?”** Il va sûrement falloir que je trouve la réponse pour trouver le bon chemin. Mais la question me laisse perplexe :
Dois-je :
- Utiliser un composant tout fait et dédié
OU - Utiliser un CCK que je connais
OU - Développer un composant moi-même ?
Le doute m’assaille, les questions s'entrechoquent, les collègues refusent de m’aider à trancher (sympa).
Je commence le classique Pour ou Contre
Développer son propre composant
Pour | Contre |
C’est du sur-mesure donc parfait | Je suis débutant |
C’est gratifiant à faire | Marc me dirait que je suis fou |
Je n’ai pas 6 mois pour le faire... |
Utiliser un composant dédié
Pour | Contre |
C’est fait pour, je ne devrais pas avoir de soucis | Je ne connais pas la bête, je ne suis pas à l'abri d’un souci |
Ça fait tout, voire plus | Voire ça fait trop de choses ou le client va me demander une fonction en plus |
Je n’ai plus qu’à le modifier légèrement donc cela devrait être rentable | J’espère que le support suivra |
Utiliser un CCK
Pour | Contre |
Je peux tout maîtriser | Je ne pourrais sûrement pas faire toutes les fonctions du composant dédié |
C’est plus simple que le développer “from scratch” | Cela représente plus de temps pour le faire que le composant dédié |
Je peux proposer une expérience unifiée entre contenu et cvthèque | je n’aurais pas de support spécifique à ce projet |
Après quelques hésitations, je donne ma réponse au vieux barbu : “blue” (surtout pas d’hésitation hein ?!).
Et je pars à la découverte de ce composant de CVthèque***.
Je me lance donc dans l’achat, XXX€ (c’est quand même pas mal), d’un composant qui a 97% de satisfaction sur le JED (Joomla! Extensions Directory).
Je fais l’installation, oups premier souci, un truc avec des fichiers externes, pas une installation Joomla! classique… et ça plante, premier ticket ! Et oui, quand j’achète un composant avec un support premium, je l’utilise, je ne vais pas me battre tout seul.
Et là, je découvre l’interface du composant, sympa, la première impression est bonne. Puis j’installe la traduction (composant théoriquement traduit en français) et là c’est le drame... Même Google Translate fait mieux, des trucs complètement aberrants du genre
“Vous cliquez sur ce bouton s’il vous plaît pour que l’envoi d’email ce fasse”…
Même moi j’y ai perdu un oeil. Bon, ils ont un projet de traduction Transifex, on va y participer, juste 2 000 strings toutes dans un seul fichier, pas de séparation front et back. Aie !!!
Puis je découvre des fichiers de langue de Joomla! avec des espaces, ce qui le rend incompatible avec la substitution de langue RHHHOOOOO. Je vous passe les détails car j’en ai eu des déboires avec seulement ce fichier langue (j’ai découvert que l’utilisation des strings YES, NO, ALL faisait planter toute la traduction…). Là j’en suis à mon second ticket, en tout humilité, je ne suis pas développeur mais j'essaie de leur expliquer tout ça.
Maintenant youpi, attaquons la configuration, au delà que d’avoir du mal à comprendre le jargon utilisé, j’arrive tant bien que mal à faire un concept global de mon application CVthèque mais je retombe sur un os, 2 modules sur 3 ne sont pas responsives, il manque un module dans le package etc. Avec beaucoup de patience et de diplomatie, j’explique au support (qui est réactif) que tout n’y est pas, que c’est pas une incompatibilité du template (ça ils aiment bien car ce n’est pas de leur faute). On commence à arriver au 10ème ticket.
Avec tous mes retours, ils m’annoncent une nouvelle version vachement mieux, toute responsive etc. Super c’est Noël !
Mais le grinch n’était pas loin (le salaud), sur le papier, un truc super du jQuery et de l’Ajax partout, une expérience utilisateur géniale. Sauf qu’à trop vouloir mettre du jQuery, on se tape des conflits en veux-tu en voilà. En plus, ces gentils dev, qui ignorent le français (je ne suis pas meilleur qu’eux lol), oublient vite que l’on aime les APOSTROPHES, nous... Une catastrophe à déboguer quand ça passe dans le JavaScript, refaire des surcharges etc.
Bon, nous arrivons à un système fonctionnel qui couvre 80% de la demande (les clients ont enfin compris ce qu’était une CVthèque) mais certaines demandes ont du être rejetées car le composant n’était pas adapté.
3 semaines de travail, 28 tickets, un accès direct pour les dev ont été nécessaires pour qu’ils déboguent en live.
Vous vous en doutez, j’ai eu l’impression de m’être fait enfumer par le vieux à la barbe blanche. Et je me suis reposé la question, n’aurais-je pas mieux fait d'utiliser un CCK ou de faire un dev ??
Pour le dev, je n’ai toujours pas les compétences ni le temps…
C’est de ce constat qu’est né cette chronique : comment maximiser ses compétences et connaissances au sein d’un outil CCK pour palier à 70-80% des demandes clients (Cvthèques, annuaires, intranets, gestion documentaires, agenda, etc.). Je peste souvent quand il me manque un petit truc dans un composant. On aimerait bien qu’il soit plus adapté à MA demande.
Je vais donc vous décrire, sous format de livre blanc (il parait que c’est ça qu’il faut dire...), la conception d’un composant Cvthèque via un CCK (dans mon cas FLEXIcontent). Je ne vais pas faire un tuto exhaustif mais un proof of concept qui pourrait être appliqué à un autre CCK de bon niveau.
Dans les prochains articles, je vais aborder (attention teaser… TADA) :
- le concept de CVthèque choisi,
- la mise en place du type de contenu Offre,
- la mise en place du type de contenu Candidat,
- la mise en place des templates,
- la conception d’un moteur de recherche candidat/recruteur,
- la mise en place d’un espace candidat.
Et voilà, en espérant que vous aurez du plaisir à découvrir mon histoire.
*Toute ressemblance avec un projet web quelconque est totalement fortuite.
**Toute ressemblance avec un film des Monty Python est totalement préméditée.
***Pour des soucis de droits, le nom du composant sera masqué, même si l’histoire se finit bien… peut-être.