(utilisant la classe "bodytext") – ceci est intéressant puisque le contenu dynamique généré par TYPO3 utilise également ces balises pour le formatage! (Raphael doit déjà avoir une expérience sous TYPO3, n'est-ce pas?) **Défi:** Nous devons remplacer le contenu de la page par du contenu dynamique issu de TYPO3. Maintenant que les fichiers du tutorial sont en place, nous passons à l'étape suivante – l'installation des extensions nécessaires. .. _Installation-de-Static-info-tables-TemplaVoila-et-de-CSS-Styled-Content: Installation de “Static info tables ”, “TemplaVoila” et de “CSS Styled Content” ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nous devons maintenant installer TemplaVoila qui est notre moteur de gabarit et de génération de contenu. “CSS Styled Content” est également nécessaire pour le rendu des contenus standards de n'importe quel site classique sous TYPO3. Si vous ne l'avez pas encore fait, importez “ *static\_info\_tables* ”, “ *TemplaVoila* ” et “css\_styled\_content“depuis le TER (TYPO3 Extension Repository) en utilisant le gestionnaire d'extensions EM. Lorsque cela est fait, installez les trois extensions : |img-7| |img-8| Lors de l'installation de TemplaVoila vous devriez activer le sélecteur de gabarit Enable Page Template Selector dans l'écran de mis à jour : |img-9| Appuyez sur “Update” et toutes les tables et champs de la base de données seront créés automatiquement ! Après avoir installé TemplaVoila, il faut réactualiser recharger votre backend puisque l'extension contient de nouveaux modules. .. _css-styled-content: “css\_styled\_content” """""""""""""""""""""" Il faut maintenant installer l'extension CSS Styled Content : |img-10| .. _The-Storage-Folder: The Storage Folder ^^^^^^^^^^^^^^^^^^ Nous allons créer un autre élément essentiel de notre site le “Storage Folder”. Normalement les éléments relatifs à une page sont stockés dans la page elle-même comme par exemple les éléments de contenu ou les utilisateur du frontend. Néanmoins il est souvent nécessaire de disposer d'un point central de stockage des éléments relatifs à l'ensemble du site et pas seulement à une seule page – c'est ce que nous appelons le Storage Folder (Dossier de stockage); Il s'agit d'une page définie comme “SysFolder” (dossier système) qui sera utilisée pour stocker ces éléments relatifs à toute une branche de l'arborescence des pages. Les étapes pour réaliser ce dossier système sont : - Créer une page de type “SysFolder” (dossier système) dans l'arborescence des pages. En général cette page est la dernière page du premier niveau dans l'arborescence des pages. - Puis il faut créer une relation dans “General Storage Folder” vers ce dossier dans l'entête de la page racine (root page) du site. |img-11| La copie d'écran précédente montre le dossier système créé. Mais pour le configurer comme “storage folder” du site il faut éditer l'entête de page de “Root page” : |img-12| Et c'est tout. .. _Cration-du-gabarit-TypoScript: Création du gabarit TypoScript ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Puis, il faut créer un gabarit pour la page “Root page”. Pour plus de détails vous pouvez vous référer au “MTB/1” où cette méthode est décrite de manière plus détaillée. Le but est d'obtenir un gabarit avec le contenu suivant : |img-13| |img-14| Le code visible dans “Setup” est appelé “Template TypoScript” - c'est du code de configuration que le moteur de rendu de TYPO3s (frontend engine) (de l'extension “cms”) interprète afin d'afficher la page du site. Dans l'exemple précédent le texte “HELLO WORLD” est affiché. Si vous avez une certaine expérience du TypoScript vous savez que a) le champ Setup peut finir par représenter plusieurs centaines de lignes, b) qu'après un certain temps il devient plus difficile à gérer et c) il faut de bonnes connaissances en TypoScript, généralement le contenu de `TSref `_ . Si vous connaissez la méthode employée avec le tutorial MTB/1 vous savez que la quantité de Typoscript utilisée n'était pas aussi conséquente. En fait nous avions seulement configuré l'extension “automaketemplate” afin de lire le contenu d'un fichier externe en HTML et ensuite nous insérions du contenu dynamique à certains endroits. Cette configuration ne nécessitait qu'une centaines de lignes, les menus mis à part. Ce qui représente beaucoup moins que par le passé. Si vous poursuivez ce document vous verrez que nous n'allons pas ajouter d'autres lignes, nous ne faisons que remplacer les deux dernières : |img-15| Ainsi, la seule chose nécessaire à l'utilisation de TemplaVoila, en ce qui concerne le TypoScript, est le code suivant : :: # Default PAGE object: page = PAGE page.typeNum = 0 page.10 = USER page.10.userFunc = tx_templavoila_pi1->main_page (Il faudra néanmoins par la suite rajouter du TypoScript puisque nous devrons définir/construire le menu ...) Enregistrez le code. Si vous consultez le site vous verrez une page avec un message d'erreur indiquant que la configuration n'est pas terminée: |img-16| Il faut maintenant créer un objet gabarit pour TemplaVoila (TO) et l'associer au site. .. _Cration-de-l-objet-gabarit-pour-le-gabarit-du-site-premire-mthode: Création de l'objet gabarit pour le gabarit du site (première méthode) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Allez dans le module File > Filelist, cliquez sur le dossier “templates/main/” et cliquez sur l'icône du fichier “template\_page.html”: |img-17| Ceci vous dirigera vers l'interface de mappage de TemplaVoila : |img-18| Avec cette interface nous allons créer une *Data Structure* *(DS - structure de données)* pour le gabarit de la page et mapper ce DS avec les éléments HTML du fichier de gabarit puis pour finir nous allons stocker les informations de mappage dans un *Template Object (TO)* créé à partir du DS. .. _Data-Structures-DS-et-Template-Objects-TO: Data Structures (DS) et Template Objects (TO) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ De plus amples informations techniques sont disponibles dans Data Structures du document “TYPO3 Core API” ainsi que dans la documentation de “TemplaVoila”. Néanmoins, pour résumer les différences entre DS et TO: - Une Data Structure (DS) liste les champs que l'on peut mapper vers un fichier HTML. - Un Template Object (TO) associe des champs du DS avec des éléments du fichier HTML. Avec cette définition nous voyons qu'un TO fait *toujours* lié à un DS qui indique au TO quels champs peuvent être mappés et avec quels règles et hiérarchie. Ceci implique également qu'il est possible d'avoir *plusieurs* TO faisant référence à une même DS – c à d plusieurs gabarits pour les mêmes données ! .. _Cration-de-la-Data-Structure-de-Main-Dish-son: Création de la Data Structure de “Main Dish & son” """""""""""""""""""""""""""""""""""""""""""""""""" Dans ce tutorial la structure de données DS nécessaire pour le fichier gabarit est : Définition de l'élément global contenant la page – ce qui correspond a la balise
! - Menu: Définition du conteneur du menu de gauche - Contenu: Définition du conteneur de la cellule de contenu. Un tel DS pourrait être créé à la main si on connaît la syntax XML du DS,