Cet article explique comment obtenir une liste de page récemment modifiées comme celle de ce site ; c’est-à-dire avec la date de la modification et le fil d’Ariane jusqu’à la page. Le nom de la page n’est à mon goût pas suffisant, le contexte est primordial.
Pour commencer, il faut ajouter le plugin Menu/Sitemap à la page de votre site :

Choisir ensuite le type de menu Recently updated pages et définir le Starting point à la racine de votre site.
Nous allons maintenant modifier le comportement de génération du menu pour que les pages soient préfixées par la date et « suffixées » par le fil d’Ariane. Ajouter le code suivant à votre templateTS :
## Customize the list of page recently updated page.includeLibs.menustuff = fileadmin/menuFunc.inc tt_content.menu.20.5 { excludeUidList = current # number of items to show + number of uid in excludeUidList special.limit = 11 # pages must have been updated within the last three days (3600*24*3) special.maxAge = 3600*24*3 wrap = <ul id="recentlyUpdated">|</ul> 1.noBlur = 1 1.NO { stdWrap.field = subtitle // title ATagTitle.field = description // subtitle // title ## Prepend the date before.field = SYS_LASTCHANGED before.strftime = %d.%m.%Y before.wrap = <div class="date">| :</div> after.cObject = USER after.cObject { userFunc = user_menuFunc->rootline range = 1 | -2 field = nav_title // title wrap = <div class="breadcrumb">Localisation : |</div> } } }
Créer maintenant le fichier fileadmin/menuFunc.inc :
<?php class user_menuFunc { // The backReference to the mother cObj object set at call time var $cObj; /** * Call it from a USER cObject with 'userFunc = user_menuFunc->rootline' */ function rootline($content, $conf) { // Debug informations //t3lib_div::debug($this->cObj->data); //t3lib_div::debug($conf); // Retrieve the UID of the updated page and the language $data = $this->cObj->data; $uid = $data['uid']; $language = $data['_PAGES_OVERLAY'] ? $data['_PAGES_OVERLAY'] : 0; // Get its rootline $GLOBALS['TSFE']->sys_page = t3lib_div::makeInstance('t3lib_pageSelect'); $rootline = $GLOBALS['TSFE']->sys_page->getRootLine($uid,''); //t3lib_div::debug($rootline); $begin_end = explode('|', $conf['range']); if (!t3lib_div::testInt($begin_end[0])) {intval($begin_end[0]);} if (!t3lib_div::testInt($begin_end[1])) {$begin_end[1]=-1;} $field = $conf['field']; $field = $field ? $field : 'title'; $content = ''; $upper_limit = min(count($rootline), count($rootline) + $begin_end[1]); for ($i = $begin_end[0]; $i < $upper_limit; $i++) { $rootline_item = $rootline[$i]; $page_uid = $rootline_item['uid']; // Is there a translation to be found? if ($language) { $item = $GLOBALS['TSFE']->sys_page->getPageOverlay($page_uid, $language); if ($item) $rootline_item = $item; } $title_fields = explode('//', $field); // Find the title field to be used foreach ($title_fields as $f) { $f = trim($f); if ($rootline_item[$f]) break; } if ($content) $content .= ' / '; $link = tslib_pibase::pi_linkToPage($rootline_item[$f], $page_uid); $content .= $link; } // Return the wrapped rootline $wrap = $conf['wrap']; return str_replace('|', $content, $wrap); } } ?>
Il ne vous reste plus qu’à adapter votre feuille de styles CSS pour changer la taille des différents éléments !
