Les types de rendu avec TemplaVoila
TemplaVoila introduit un concept de type de rendu. Différent rendu d'une même page en fonction d'une cible. Par défaut, 2 types :

  • Normal - pour les page/contenu affiché
  • Print - pour la version imprimable d'une page

Dans certain cas, nous avons besoin d'autres types de rendu. Par exemple, une version text seulement.

Ajouter un autre type de rendu
Ajouter un autre type de rendu est très simple. Nous utilisons le TSConfig de la page, nommé TCEFORM TLO (top level object). TCEFORM TLO vous permet d'ajouter d'autres éléments dans les champs défini par le TCA. Pour ajouter de nouvelles entrées nous utilisons la syntaxe suivante :

  1. TCEFORM.table.field.addItems {
  2. 12345 = String to display 1
  3. 67890 = String to display 2
  4. }

Le sélecteur de type de rendu est situé dans la colonne rendertype de la table tx_templavoila_tmplobj. Ajoutons donc ce nouveau rendu :

  1. TCEFORM.tx_templavoila_tmplobj.rendertype.addItems {
  2. text = Text-only
  3. }

Attention, ce nom est limité à 10 caractère (sinon risque d'erreur SQL). Après avoir configurer ceci, vous allez pouvoir créer des subtemplates à votre template principal. Utilisez le nouveau type de rendu en FE. Pour ceci, utilisez le par exemple cette syntaxe :

  1. page = PAGE
  2. page.10 = USER
  3. page.10.userFunc = tx_templavoila_pi1->main_page
  4. [globalVar = GP:text > 0]
  5. page.10.childTemplate = text
  6. [global]

Pour le faire, sous forme de condition :

  1. [globalVar = GP:text > 0]
  2. plugin.tx_templavoila_pi1.childTemplate = text
  3. [global]

En les combinant :

  1. [globalVar = GP:text > 0]
  2. plugin.tx_templavoila_pi1.childTemplate = text
  3. [global]
  4. page = PAGE
  5. page.10 < plugin.tx_templavoila_pi1
  6. page.10.userFunc = tx_templavoila_pi1->main_page

Ce billet est une traduction d'un article trouvé sur internet : ce site