12
nov.2007
Rendu différent en fonction d'un paramètre
Par David Salaün
Catégorie : Développement
Lien permanent
Ou comment obtenir pour une même page, une mise en page différente. Utile pour créer des versions imprimables, texte seule,... pour le même contenu de page. Nécessite l'utilisation de templaVoila.
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 :
TCEFORM.table.field.addItems { 12345 = String to display 1 67890 = String to display 2 }
Le sélecteur de type de rendu est situé dans la colonne rendertype de la table tx_templavoila_tmplobj. Ajoutons donc ce nouveau rendu :
TCEFORM.tx_templavoila_tmplobj.rendertype.addItems { text = Text-only }
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 :
page = PAGE page.10 = USER page.10.userFunc = tx_templavoila_pi1->main_page [globalVar = GP:text > 0] page.10.childTemplate = text [global]
Pour le faire, sous forme de condition :
[globalVar = GP:text > 0] plugin.tx_templavoila_pi1.childTemplate = text [global]
En les combinant :
[globalVar = GP:text > 0] plugin.tx_templavoila_pi1.childTemplate = text [global] page = PAGE page.10 < plugin.tx_templavoila_pi1 page.10.userFunc = tx_templavoila_pi1->main_page
Ce billet est une traduction d'un article trouvé sur internet : ce site
Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire