[TypoScript] Ajouter automatiquement un sommaire ancré en haut de page

Le 20 septembre 2011, par François | Catégorie(s) : Astuces diverses, TYPO3, Typoscript

Imprimer ce post Imprimer ce post

Lorsqu’une page TYPO3 contient énormément de contenus, il peut être utile de générer automatiquement un sommaire ancré en haut de 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 ###monsommaire### et que le champ « Titre » de chacun des contenus de votre page TYPO3 est rempli

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 sommaire 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 sommaire sera affiché à l’endroit où vous avez placé votre marqueur dans votre template.

Code TypoScript

marks.monsommaire = CONTENT
marks.monsommaire {
   //je récupère le titre et l'id de chacun des contenus de la colonne "normal" de ma page TYPO3
   table = tt_content
   select {
      pidInList = this
      orderBy = sorting
      selectFields = header,uid
      where = colPos = 0
      languageField=sys_language_uid
   }

   //je teste le nombre de contenus de ma colonne normal
   stdWrap.if.value = 1
   stdWrap.if.isGreaterThan.numRows.table = tt_content
   stdWrap.if.isGreaterThan.numRows.select {
      pidInList = this
      where = colPos = 0
      languageField=sys_language_uid
   }
   //si le nombre de contenus de ma page est supérieur à 1, j'affiche le sommaire ancré sous forme de listes à puces
   stdWrap.wrap = <ul class="ss_menu_page"><a name="sommaire_page"></a>|</ul>
   stdWrap.required = 1
   renderObj = TEXT
   renderObj {
      field = header
      required = 1
      dataWrap= <li><a href="#c{field:uid}" title="#c{field:uid}" target="_self">|</a></li>
   }
}

Exemple

http://eduscol.education.fr/histoire-geographie/enseigner/ressources-par-niveau-et-programmes/college/sixieme/histoire.html

Et aussi…

Toujours dans le cas d’une page longue, il peut être utile de rajouter un lien ancré « Retour en haut de page » sous chacun des contenus typo3 de la page.
Pour ce faire, voir l’article [TypoScript] Ajouter automatiquement un lien ancre #top sous chaque contenu d’une page TYPO3

Bookmark and Share

Laissez un commentaire...