Rapport synthèse : TYPO3 - Blogs du Cégep de Sainte-Foy
Transcription
Rapport synthèse : TYPO3 - Blogs du Cégep de Sainte-Foy
Melanie Bilodeau Groupe 01 Rapport synthèse : TYPO3 Apprentissage autonome 582-FXA-06 Techniques d’intégration multimédia Cégep de Sainte-Foy Lundi 25 mars 2013 Table des matières TYPO3 - Bilan final! 3 Semaine 1! 3 Semaine 2! 4 Semaine 3! 4 Semaine 4! 5 Semaine 5! 6 Semaine 6! 6 Semaines 7 et 8! 7 Technologies employées! 7 Perspectives! 8 Médiagraphie! 10 2 TYPO3 - Bilan final L’idée de départ pour mon apprentissage autonome me venait principalement de mon premier stage en entreprise au Ministère de l’Éducation, du Loisir et du Sport. Nous avions alors eu l’occasion d’effleurer le domaine des SGC (systèmes de gestion de contenu ou CMS en anglais) à l’aide de TYPO3. Comme à ce moment, je m’étais fais conseillé, si je désirais tant continuer de travailler dans un des ministère du gouvernement, que ce serait une bonne idée de mieux connaître ce SGC. Sachant que ce n’était pas un système que l’on pouvait apprendre en quelques jours, je voulais tout de même en apprendre le plus possible. Je voulais donc mieux me familiariser avec l’interface, apprendre à me servir du TypoScript et du PHP à l’intérieur de TYPO3, à intégrer des feuilles de styles et me familiariser avec bases de l’utilisation du CMS. J’espérais ainsi arriver à un niveau intermédiaire dans son utilisation afin d’être suffisamment à l’aise pour m’en servir de façon autonome sur le marché du travail. Je savais déjà que ce SGC était utilisé au MELS et dans d’autres ministères, par contre, je n’avais aucune idée s’il était utilisé dans d’autres types de projets, ce que j’espérais découvrir tout au long de mes recherches. Au départ, ma crainte était de ne pas arriver à comprendre ce sur quoi j’allais travailler. Je ne savais pas non plus si dans une entreprise j’allais pouvoir me servir de ses nouvelles connaissances si jamais je ne voulais pas travailler dans un ministère. Par contre, comme j’avais eu l’occasion d’avoir un aperçu de ce qu’on pouvait accomplir à l’aide d’un CMS, je trouvais intéressant de voir son fonctionnement, comment les éléments pouvaient être interprétés et affichés. Semaine 1 Afin de mieux commencer mon apprentissage, j’avais pensé à débuter par les débuts, soit par l’installation de TYPO3 sur mon ordinateur afin de m’en servir en local. Après plusieurs jours de recherche sur le web et dans mes livres, j’ai fini par trouver les sources que je croyais avoir besoin. J’ai ensuite pu me familiariser avec le type d’erreurs affichées par le CMS, qui se rapportent beaucoup plus aux erreurs PHP qu’à ce que je m’attendais. J’ai ensuite appris ce qu’étaient les bases de la création d’une page web. J’arrivais à afficher des phrases simples dans mon navigateur (Google Chrome). Comme la plupart des étudiants à qui j’ai parlé, j’ai rencontré différents problème, surtout au cours de l’installation du CMS sur mon ordinateur. Celui-ci était trop plein, ce qui a nécessité de 3 transférer un maximum de données sur mon disque dur pour laisser plus d’espace de travail disponible. Semaine 2 La semaine suivante, j’avais l’intention de rattraper le retard que je savais avoir déjà cumulé sur ma liste d’apprentissage. Je voulais donc commencer rapidement à utiliser les gabarits comme j’en avais souvenir de ma courte formation à mon stage. J’ai donc voulu installer TemplaVoilà, une extension me permettant de créer rapidement des gabarits dans TYPO3. Jusqu’au moment où je me suis aperçue que la version que j’avais trouvée du CMS était trop récente et n’avait pas suffisamment de support pour que je puisse en retirer quoi que ce soit lorsque les erreurs nombreuses sont apparues. J’ai donc préféré tout recommencer et installer une version moins récente, mais mieux soutenue par la communauté TYPO3. J’avais ainsi plus de chance d’avoir du support lorsque je rencontrerais un problème qu’avec une version tout nouvellement mise en ligne. En terme de problèmes, une version trop récente de TYPO3 m’empêchait de comprendre et de trouver des solutions aux problèmes qui survenaient suite à son installation et à celles d’extensions. J’ai donc passé plus de temps à gérer ces conflits de versions qu’aux autres tâches que je voulais accomplir cette semainelà, entre-autre de commencer à me renseigner sur les gabarits. Semaine 3 Ce n’est qu’avec une semaine de retard que j’ai finalement pu me mettre réellement à l’apprentissage des gabarits dans TYPO3. Cette semaine a été l’une de mes semaines les plus productives en terme d’erreurs face à mes avancements. Je me suis concentrée un peu plus sur ce qui était plus nécessaire d’apprendre et sur ce qui me serait plus utile. Je suis donc retournée lire de la documentation sur les usages fréquents de TYPO3, mais aussi sur ce qu’était le rôle du développeur, ce que sont ses tâches à lui dans tout ça. Je me suis donc aperçu que la plupart des connaissances d’un développeur tournaient autour du TypoScript (TS), des extensions et du développement de celles-ci. J’ai pris le temps de relire les bases et les explications me permettant ainsi de mieux comprendre ce que j’allais entreprendre une nouvelle fois. J’avais encore quelques notions sur les gabarits qui m’intriguaient, entre-autre la différence entre un gabarit HTML et un gabarit TypoScript. J’ai fais quelques expériences tout au long de ma semaine d’apprentissage. J’ai donc exploré ce que l’on pouvait faire à l’aide du TS, les quelques bases à connaître pour les gabarits. Au final, à travers mes lectures et mes expérimentations, j’ai reconnu la ligne de TS qui permettait de configurer TemplaVoilà et que j’avais volontairement mis en commentaire puisque j’avais désinstallé l’extension. Par curiosité, j’ai réinstallé TemplaVoilà et remis la ligne de code. À mon plus grand étonnement, 4 l’extension s’est mise à fonctionner à merveille, sans aucun problème d’affichage ni de table de données manquantes. J’ose donc imaginer qu’avant d’installer TemplaVoilà, je devais avoir certaines autres bases en TypoScript pour que le tout fonctionnement convenablement. Mes apprentissages de la semaine se sont donc tournés vers la lecture et l’exploration sommaire du TypoScript, qui est, selon mes lectures, le principal avantage de TYPO3. Ce n’est pas un langage de programmation à proprement parler, toutefois, il a ses bases et ses propres règles à suivre. Entre-temps, j’ai cherché à appliquer du code PHP dans mes gabarits et mes pages, puisque c’est ce que nous avons appris à utiliser, mais aussi c’est ce qui permet de créer un site dynamique. Je n’ai par contre pas réussi à inscrire quoi que ce soit en PHP. En effet, TYPO3 est basé sur la programmation PHP, mais se sert principalement (pour ne pas dire exclusivement) du TS comme d’un intermédiaire entre le développeur et PHP. Le principal de mes problèmes, quoi que ça ne m’ait pas gêné dans mon temps d’apprentissage, fut de lire de la documentation que je croyais pertinente pour mon domaine, par exemple le «workflow», la gestion des groupes et utilisateurs, les statistiques et la gestion des fichiers numériques. Ayant déjà rencontré la plupart des erreurs qui pouvaient me ralentir, je connaissais déjà des solutions pour les régler rapidement. Semaine 4 Après une mise à jour de ma planification, de ce que je pourrais apprendre pour le reste de mon apprentissage, je me suis beaucoup plus attardée à la lecture de chapitres pouvant m’être utiles dans l’apprentissage du TypoScript. Je suis retournée aux sources, si l’on veut, afin de mieux comprendre des concepts que je n’avais pas vu lorsque j’ai exploré le TS durant mes premières semaines. J’ai revu les différents principes de base, qu’est-ce qu’est le Typoscript réellement. J’ai pris connaissance du TSRef, qui est en fait un document de référence lorsque l’on utilise le TS puisque toutes les informations nécessaires à son usage y sont inscrites. J’ai aussi revue comment créer un premier gabarit, simple, ainsi que le principe de gabarits en cascade, qui implique un premier gabarit qui se décline ensuite pour des sous-pages. Suite à cette première révision, j’ai vu les sections de l’interface utiles à la programmation en Typoscript, les champs Constants et Setup permettant d’entrer des constantes (ou variables globales) utiles pour le TS écrit dans le champ Setup. J’ai ensuite lu un peu plus de documentation sur les types de données et les fonctions utilisées. J’ai aussi revu les objets de contenu (aussi appelés cObjects) et les objets de premier niveau, qui permettent entreautre de créer des éléments pour différents gabarits. 5 Au final, j’ai révisé un peu mes connaissances de l’interface de TYPO3 puisqu’un chapitre entier est consacré aux outils de développement. Les sections, d’abord un peu nébuleuses, se sont éclaircies avec toutes les informations plus détaillées que j’ai pu lire. Le problème majeur de mon apprentissage de cette semaine-là fut de me consacrer uniquement à de la lecture très technique. J’ai rapidement perdu le goût d’en apprendre d’avantage rapidement sur le sujet. Malgré le fait que je prenne des notes tout au long de mes lectures de façon spontanée, ce n’était pas du tout une bonne méthode. J’ai appris sur moi que je retiens plus facilement l’information que je lis si je peux la mettre en pratique tout de suite que si je dois tout conserver pour plus tard. Semaine 5 Cette semaine-là, j’ai à nouveau tout remis en question. Je me suis renseignée de tous les côtés en terme d’amis, de connaissances de travail, d’enseignants, afin de savoir qu’est-ce qui serait pertinent pour moi dans mes apprentissages de TYPO3. La solution était alors de voir par quel moyen je pouvais effectuer des requêtes à une base de données à l’intérieur même du CMS. Je suis donc partie de cette idée et j’ai cherché à trouver le mécanisme, la structure qui me permettrait d’y arriver. J’ai fouillé dans les livres et les PDF de documentation que j’ai pu trouver et un peu partout sur la toile. Malgré ce que j’avais cru au départ, l’information sur ce sujet est plus complexe à trouver et à utiliser. Je me suis donc confrontée à un mur, mais pas infranchissable. J'ai pris connaissance des pistes qui ne me mènent à rien, comme quoi il faut oublier l'idée de vouloir inclure directement des balises PHP (<?php ?>) à l'intérieur du TypoScript ou de vouloir faire les requêtes habituelles qu'on effectue avec Savant3. Par contre, j'ai aussi trouvé des chemins qui pouvaient éventuellement me mener à un résultat tangible. Semaine 6 Mes apprentissages de cette semaine-là se sont limités à découvrir le fonctionnement des requêtes SQL avec TYPO3. J’ai alors passé beaucoup de temps à lire différentes documentations que j’avais pu trouver ainsi que plusieurs documentations que d’anciens collègues du MELS (Ministère de l’Éducation, du Loisir et du Sport) m’ont suggérés. Il y a plusieurs notions à connaître, pour le côté sécurité, avant de pouvoir vraiment écrire des requêtes. Dans l’ordre, il faut d’abord connaître la syntaxe de l’écriture des requêtes. TYPO3 nous donne la possibilité de reprendre quelques notions que nous avons vu avec Savant3. Par exemple, au même titre qu’on se servait de mysqli dans Savant3, TYPO3 nous fournis un objet pour effectuer nos requêtes : $GLOBALS‘TYPO3_DB’. À faire attention : TYPO3 est tout autant sensible à la case pour le nom des objets et de ses fonctions. Il y a ensuite l’appel de fonctions, permettant d’améliorer et de sécuriser les requêtes effectuées à la base de données. Par exemple, pour une requête de type SELECT : $GLOBALS‘TYPO3_DB’- 6 >exec_SELECTquery(‘nomdeschamps’,‘matable’,‘valeurwhere’,‘groupby’,‘orderby’,‘limit’); Cette fonction exécute alors la requête en échappant les champs une première fois. Ça réduit ainsi le nombre d’injections SQL possibles qui pourraient être générées par un visiteur. TYPO3 étant très complexe, il permet par contre plusieurs solutions afin de contrer les failles de sécurité. Différents objets (la liste étant tout de même très longue) sont alors offerts au développeur pour gérer chaque caractère qui est entré dans chaque champ de formulaire, chaque URL et redirection par JavaScript. Au final, il faut savoir qu’on ne peut faire de requêtes en TypoScript. Il faut donc, avec le TS, inclure des fichiers de scripts PHP suivant les notions (très fortement) suggérées par TYPO3. Le problèmes rencontrés furent les mêmes qu’à l’habitude : manque d’information cohérente avec le problème rencontré, manque d’explications pour résoudre le problème lorsque nécessaire et manque flagrant de tutoriels pour savoir comment se servir des requêtes et où les placer. Semaines 7 et 8 Pour les deux dernières semaines, j’admets avoir oublié totalement de mettre des heures sur le cours d’apprentissage autonome. La remise du projet TIM en Production et les débuts de mon stage ont évincé l’idée et le temps pour travailler sur TYPO3. Mon bilan s’en trouve, et je le sais, affecté par cette mauvaise gestion de mon temps qui me suit depuis le début de ce cours. Je n’ai donc pas grand chose à écrire sur les deux dernières semaines autre que le prolongement dont nous avions bénéficié ne m’a aucunement aidé. Technologies employées En ce qui concerne le choix du matériel dont j’ai usé tout au long du cours, je ne vois pas grand chose à dire. En fait, la lacune de mon apprentissage fut de devoir installer mon propre serveur local de TYPO3 pour travailler. Tout le temps que j’ai pu mettre sur cette installation ne m’a pas été utile si on veut puisque je ne me servirai sans doute pas de ses connaissances dans mes futurs emplois, à moins de me réorienter vers l’installation de serveurs web. Le fait aussi d’utiliser des PDF pour lire ne m’a pas vraiment aidé non plus. Je veux dire par là que si j’avais eu mon livre en format papier entre les mains, sans doute aurais-je été plus attirée à le lire que directement sur ma tablette, entre-autre parce que la lecture en devient difficile plus rapidement. En ce qui concerne les outils dont je me suis servie, soit le Web et mon livre numérique, je ne suis pas fière. Je croyais au départ qu’ils étaient des choix judicieux, puisque ce que j’apprenais était directement relié au Web. Pourtant, ceux qui m’ont le plus aidée sont mes anciens collègues du MELS qui ont su me guider à travers mes embûches plus que les ressources que j’avais payé pour obtenir. 7 Tant qu’à moi, si j’avais à recommencer cet apprentissage ou à guider quelqu’un à travers le même cheminement que moi, je ne conseillerais pas d’investir dans un livre PDF en premier. Je regarderais plutôt qui dans mon entourage pourrait me fournir de l’aide en cas de besoin puisque les ressources écrites (à moins de n’être écrites en allemand) ne sont pas complètes en général. Perspectives Personnellement, je considère mon cours d’apprentissage autonome comme étant un cours de «débrousallage» pour les étudiants à venir. Je veux dire par là que je n’avais aucune piste à suivre et qu’une idée très vague de ce que je devais et pouvais apprendre pour mon cours. Je ne crois pas avoir atteint l’objectif de départ que je m’étais fixée. Par contre, je considère avoir fait une aussi grande partie du chemin en terme d’expérimentations qui tombent à l’eau. J’ai pu évaluer toutes les pistes à ne pas suivre (sinon plus) pour poursuivre mon apprentissage. Je prends exemple de l’installation de TYPO3 qu’il faut toujours se renseigner avant d’installer une version quelconque. Ou même des gabarits, où il faut s’assurer de bien comprendre la base en HTML pur avant de s’attaquer aux gabarits en TypoScript puis à l’extension TemplaVoilà. À mon avis, comme je n’ai pu approfondir comme je l’aurais souhaité mes apprentissages, j’aurais pu (ou tout simplement dû) me centraliser sur un ou deux éléments de TYPO3. D’abord, je n’ai qu’effleuré ce que l’on peut accomplir à l’aide de gabarits. Que peut-on monter en insérant simplement une feuille HTML? Je n’ai vu que le fonctionnement et comment en afficher une, mais sans plus. Il serait bien de savoir quelles sont les limites de ce type de gabarit tout en faisant un lien vers les gabarits TypoScript. Il faut aussi laisser tomber les extensions complexes comme TemplaVoilà, ce n’est définitivement pas une bonne idée de s’embarquer là-dedans. Tant qu’à apprendre quelque chose sur un sujet, autant prendre le temps nécessaire à sa compréhension. En ce qui concerne mon métier, je ne crois plus que ça me soit nécessaire. Non pas que je me sois découragée de l’apprentissage de CMS, mais je me suis aperçue que le développement poussé en PHP à l’aide de CMS, ce n’était tout simplement pas pour moi, qui suis plus conceptrice que développeur. Par contre, pour quelqu’un ayant un intérêt particulièrement prononcé en programmation, c’est un sujet convenable à envisager. Les défis sont présents, la patience et la persévérance sont mis à rude épreuve et les problèmes survenant en cours de route sont nombreux. C’est donc, à mon avis, un défi suffisant pour un nouveau programmeur «backend», mais c’est largement trop pour un esprit plus créatif comme le mien. Personnellement, je considère avoir structuré mon apprentissage autonome de façon maladroite et peu efficace. Chaque semaine, je prenais du retard, je déviais de mon plan d’apprentissage initial, je me désintéressais de mon sujet que j’ai d’ailleurs bien mal choisi. J’avais des idées de grandeur, comme quoi 8 j’allais être en mesure d’apprendre suffisamment de chose sur ce CMS que j’aurais pu travailler seule dessus dès mon entrée sur le marché du travail. J’ai tout eu faux, bien entendu. Je n’ai pas réussi à apprendre le dixième des choses que je m’attendais à connaître en TypoScript. Je voudrais utiliser un gabarit HTML, une chose de base que j’ai testé et re-testé, que je devrais à nouveau relire mes notes afin de savoir comment faire. Je croyais aussi arriver à apprendre si je lisais seulement la documentation fournie, mais je me suis rapidement aperçue qu’il m’aurait fallu plusieurs, voir même uniquement des tutoriels pour comprendre ce que je faisais et où j’allais avec tout ce bagage technique qu’est TYPO3. Je crois qu’en fait, mon problème principal aura été de prendre un sujet qui ne m’intéressait pas particulièrement en tant que conceptrice, mais aussi de prendre un sujet trop large et trop vaste sans moimême me restreindre à certaines fonctionnalités. J’ai préféré explorer en largeur ce CMS alors que j’aurais plutôt dû le voir en profondeur, comment réellement accomplir une connexion à une base de données. J’aurais aimé faire des requêtes SQL, afficher un gabarit HTML, mais avec des informations dynamiques comme on le fait toujours pour nos en-têtes et pieds de page lors de nos projet. 9 Médiagraphie D'abord, un petit lien à visiter si quelqu'un désir, un jour ou l'autre, installer TYPO3 sur son ordinateur de table. Il m'est très utile pour l'installation sur mon propre Mac : http://typo3-fr.org/utiliser-typo3/deployer-typo3/installer-typo3/a-partir-des-sources-et-de-l-outil-dinstallation-254.html C'est le site de la communauté francophone officielle de TYPO3. C'est, jusqu'à maintenant, le seul endroit à jour pour l'installation détaillée du CMS que j'ai pu trouver. Plusieurs autres, ailleurs sur le site officiel anglophone, ne sont même pas tenus à jour ou sont utiles pour l'installation sous Windows. Une seconde source intéressante sur laquelle je me base est le livre (format numérique aussi disponible) "TYPO3" par Werner Altmann, René Fritz et Daniel Hinderink des éditions Eyrolles. Il est disponible chez Renaud-Bray à cette adresse : http://www.renaud-bray.com/Recherche.aspx?langue=fr&words=TYPO3&wbgc_iNo=&type=1&root= Il me permet, autre que d'apprendre, de connaître l'ordre prioritaire des éléments que je dois apprendre. Ayant ainsi un ordre de référence, c'est d'abord ma première source d'apprentissage. Si un concept n'est pas très clair ou que j'ai besoin d'un second exemple pour mieux comprendre, je me tourne ensuite vers mon ami Google pour vérifier en entrant les mots-clés que je saisi moins bien. J'en suis maintenant à explorer le CMS. J'ai découvert un petit outils de demonstration sur le site de TYPO3 et j'en suis à l'explorer afin de voir s'il peut m'aider lors de mes apprentissages (il est encore à vérifier) : http://demo.typo3.org/ Comme j'en suis à l'utilisation de gabarit, je trouvais intéressant (même nécessaire) d'avoir une marche à suivre pour l'installation, mais aussi pour l'utilisation des extentions. Je suis donc tombée sur ce site (en anglais) : http://typo3buddy.reijkman.nl/templavoila/the-templavoila-extension/ Je n'ai par contre pas eu le temps de tout lire , mais comme il y a de l'information aussi sur les bases du SGC et sur le TypoScript, je crois que je vais m'y référer assez souvent pour la suite. J'ai aussi trouvé, alors que je fouillais le web pour trouver une solution à mes problèmes avec TemplaVoilà (extension de gabarits), ce petit site (en allemand seulement). Avec l'outils de traduction de Google, j'ai toutefois réussi à en traduire suffisamment pour comprendre que c'est aussi un pas à pas pour utiliser TemplaVoilà, mais aussi qu'il permettrait de résoudre les problèmes qui me sont apparus : http://it-republik.de/php/artikel/TYPO3-Templates-mit-TemplaVoil%E0-erstellen-1828.html Si jamais quelqu'un ayant une meilleure connaissance de l'allemand que moi saurait comprendre, ce serait apprécié! J'avais aussi trouvé cette section, directement sur le site de TYPO3, permettant aussi de comprendre le fonctionnement de TemplaVoilà et des gabarits HTML : 10 http://typo3.org/extension-manuals/templavoila/1.8.0/view/toc/0/ Je me méfie un peu par contre, puisque, jusqu'à maintenant, l'information que j'ai pu trouver me cause toujours le même problème d'affichage ou ne concerne pas la version que j'avais de TYPO3. Vérifier sa version avant de consulter. Jusqu'à maintenant, je m'étais attardée sur les gabarits peut-être un peu trop longtemps à mon avis (je croyais avoir tellement d'autres sujets à apprendre!). Par contre, les gabarits HTML, les gabarits TypoScript et les extensions de gabarits (dont TemplaVoila que j'ai mentionné plus haut) font parti des tâches demandées à un développeur. Ça, le développement et la mise à jour d'extensions et les connaissances en TypoScript. S'il y a une chose qu'il aurait donc fallu que je lise au départ, avant de commencer quoi que ce soit, c'est bien la documentation d'Infoglobe (http://www.infoglobe.ca/) avec qui nous avons eu l'occasion de travailler durant mon stage d'été : http://blogue.infoglobe.ca/2010/02/14/le-typoscript-cest-quoi-exactement/ Ensuite, comme je cherchais à régler mes soucis sur les gabarits, je me suis tournée vers des tutoriels. Attention, pas n'importe quel tutoriel. Nous avons appris ce qu'était le Responsive Web Design lors de nos cours, j'en ai donc profité pour trouver un tutoriel de gabarit fluide, permettant de gérer une grille selon la dimension de notre navigateur : http://thomas.deuling.org/2011/06/create-a-complete-typo3-website-by-using-the-fluid-template-engine/ Comme mes apprentissages ne peuvent se faire sans un peu de documentation provenant directement du site officiel de TYPO3, j'en ai profité pour rechercher la documentation concernant le TypoScript et les bases à connaître avant de débuter : http://typo3.org/documentation/document-library/tutorials/doc_core_tsbyex_fr/0.0.1/view/1/2/ ** L'information du lien peut aussi être lu dans Open Office. Je m'en suis alors servi pour me créer un fichier PDF, puisque c'est plus facile selon moi d'y trouver de l'information rapidement. ** 11