Format("===Action Trail==="); $sommaire = $this->GetParameter("toc"); if (!$sommaire) { echo $this->Format("//Indiquez le nom de la page sommaire, paramètre 'toc'//."); }else{ //chargement de la page sommaire $tocPage = $this->LoadPage($sommaire); //analyse de la page sommaire pour récupérer la liste des pages //recuperation de la liste if (preg_match_all("/\n[\t ]+(.*)/",$tocPage["body"],$tocListe)){ //analyse de chaque ligne de la liste pour recupérer la page cible $currentPageIndex = NULL; foreach ($tocListe[1] as $line){ //suppression d'un signe de liste eventuel $line = trim(preg_replace("/^([A-Za-z0-9]+\)|-)/","",$line)); //recuperation du 1er mot $line = preg_replace("/^(\[\[.*\]\]|[A-Za-z0-9]+)\s*(.*)$/","$1",$line); //ajout a la liste des pages si le 1er mot est un lien force ou un mot wiki if (preg_match("/\[\[.*\]\]/",$line,$match)|$this->IsWikiName($line)){ $pages[] = $line; //regarde si la page ajoute a la liste est la page courante if (strcasecmp($this->GetPageTag(),$line)==0){ $currentPageIndex = count($pages)-1; }else { //traite le cas des lien force if (preg_match("/\[\[(.*:)?".$this->GetPageTag()."(\s.*)?\]\]$/",$line)) { $currentPageIndex = count($pages)-1; } } } }//foreach } //ecriture des liens Page Précedente/sommaire/page suivante if ($currentPageIndex>0) { $PrevPage = $pages[$currentPageIndex-1]; $btnPrev = "".$this->Format("<< $PrevPage").""; }else{ $btnPrev = " "; } $btnTOC = "".$this->Format($sommaire).""; if ($currentPageIndex < (count($pages)-1)){ $NextPage = $pages[$currentPageIndex+1]; $btnNext = "".$this->Format("$NextPage >>").""; }else{ $btnNext = " "; } echo "\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "
$btnPrev$btnTOC$btnNext
\n"; } ?>