[TypoScript] Ajouter automatiquement un lien ancre #top sous chaque contenu d’une page TYPO3
Le 20 septembre 2011, par François | Catégorie(s) : Astuces diverses, Non classé, TYPO3, Typoscript
Imprimer ce post
Pour améliorer la navigation à l’intérieur d’une page contenant des contenus en grand nombre (et donc une page assez longue), vous pouvez avoir besoin d’ajouter automatiquement un lien « Remonter en haut de page » (ou un autre type de contenu) sous chacun des contenus de la page.
Le code TypoScript ci-dessous présume que vous avez fait une configuration de base pour que typo3 aille chercher votre template, dans lequel vous avez placé un marqueur ###monmarqueur### et un <a name= »#top »></a> à ce qui correspond à votre haut de page (ou haut de contenu).
La particularité de ce code est qu’il va tester le nombre de contenus dans la page.
- Si il n’y aucun contenu ou un seul contenu, le lien « Remonter en haut de page » ne s’affichera pas (car pas vraiment utile et pas très esthétique dans ce cas).
- Si il y a deux contenus ou plus, le lien « Remonter en haut de page » sera affiché sous chacun des contenus de la page.
Code TypoScript
//le marqueur "monmarqueur" va aller chercher le contenu de la colonne de contenu "normal"
marks.monmarqueur = CONTENT
marks.monmarqueur < styles.content.get
marks.monmarqueur{
stdWrap.required = 1
//on prepare un tableau d objet (au cas ou ca n est pas deja cree ailleurs)
renderObj.stdWrap.append=COA
//on cree un objet qui sera ajoute apres le contenu normal
renderObj.stdWrap.append.30=TEXT
//on y met le code HTML qui sera utilise
renderObj.stdWrap.append.30.value= <a href="#top" title="Revenir en haut de page">Revenir en haut de page</a>
//on parametre le .stdWrap.if qui va du coup agir uniquement sur l objet .append.30
//on met en place la valeur maximal pour le if
renderObj.stdWrap.append.30.stdWrap.if.value = 1
//on met en place le isGreaterThan qui teste si il y a + d'un contenu dans la page
renderObj.stdWrap.append.30.stdWrap.if{
isGreaterThan.numRows.table = tt_content
isGreaterThan.numRows.select.pidInList = this
isGreaterThan.numRows.select.where = colPos = 0
}
}
Exemple
Remerciements
Tout le mérite de ce script TS revient à « OlivierSC », développeur/intégrateur TYPO3 certifié, et membre fidèle du Forum FR Typo3.

2 réponses à l'article "[TypoScript] Ajouter automatiquement un lien ancre #top sous chaque contenu d’une page TYPO3"
OlivierSC
21 septembre 2011 at 14 h 09 min
Bonjour,
Il ne faut pas hésiter à proposer un lien vers le forum quand il a été utile
http://forum.typo3-fr.org/topic/17798-condition-renderobj/
A bientôt pour d’autres aventures avec le typoscript
OlivierSC
François
21 septembre 2011 at 15 h 12 min
Oups… oui pardon. A la base, j’avais prévu de remercier un certain « OlivierSC » en rédigeant mon article (sans pour autant mettre un lien vers le forum), mais j’ai zappé ensuite. Je corrige l’article et y ajoute un lien vers la discussion que l’on a eu. C’est vrai qu’en plus le forum me permet de répondre à pas mal de mes questions donc faire un lien vers celui-ci est la moindre des choses. Encore merci « OlivierSC » et comme tu le dis… « A bientôt pour de nouvelles aventures TypoScript ! ».