[ Index ] |
|
Code source de WikiNi 0.4.4 |
1 <?php 2 3 /* 4 trail.php : Permet d'afficher des liens "Page Suivante" "Sommaire" "Page Precedente" dans une page 5 6 Copyright 2003 Eric FELDSTEIN 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 2 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program; if not, write to the Free Software 19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 */ 21 22 /* 23 * Cette action permet de lier des pages entre elle via une page contenant la liste 24 * ordonnées de ces pages. L'action affiche des liens de navigation permettant de 25 * passer à la page suivante ou précédente ou de revenir au sommaire. 26 * 27 * @param toc string nom de la page contenant la liste ordonnée des pages à liées entre elles 28 */ 29 30 /* La page sommaire doit contenir une liste de pages. Le premier mot de chaque élément 31 de la liste doit être le nom d'une page du wiki, donc un mot wiki ou un lien force 32 exemple de page sommaire: 33 34 ===Sommaire=== 35 36 IntroductionAuProjet : présentation du projet. 37 [[AnalyseProjet Analyse]] : analyse des besoins 38 -BesoinDesUtilisateurs 39 -ContraintesTechniques 40 OutilsEtNormes 41 42 Texte texte texte texte texte texte texte texte texte texte 43 texte texte texte texte texte texte texte texte texte texte texte 44 texte texte texte texte texte texte texte texte texte texte texte texte 45 46 */ 47 48 //echo $this->Format("===Action Trail==="); 49 $sommaire = $this->GetParameter("toc"); 50 if (!$sommaire) { 51 echo $this->Format("//Indiquez le nom de la page sommaire, paramètre 'toc'//."); 52 }else{ 53 //chargement de la page sommaire 54 $tocPage = $this->LoadPage($sommaire); 55 //analyse de la page sommaire pour récupérer la liste des pages 56 //recuperation de la liste 57 if (preg_match_all("/\n[\t ]+(.*)/",$tocPage["body"],$tocListe)){ 58 //analyse de chaque ligne de la liste pour recupérer la page cible 59 $currentPageIndex = NULL; 60 foreach ($tocListe[1] as $line){ 61 //suppression d'un signe de liste eventuel 62 $line = trim(preg_replace("/^([A-Za-z0-9]+\)|-)/","",$line)); 63 //recuperation du 1er mot 64 $line = preg_replace("/^(\[\[.*\]\]|[A-Za-z0-9]+)\s*(.*)$/","$1",$line); 65 //ajout a la liste des pages si le 1er mot est un lien force ou un mot wiki 66 if (preg_match("/\[\[.*\]\]/",$line,$match)|$this->IsWikiName($line)){ 67 $pages[] = $line; 68 //regarde si la page ajoute a la liste est la page courante 69 if (strcasecmp($this->GetPageTag(),$line)==0){ 70 $currentPageIndex = count($pages)-1; 71 }else { //traite le cas des lien force 72 if (preg_match("/\[\[(.*:)?".$this->GetPageTag()."(\s.*)?\]\]$/",$line)) { 73 $currentPageIndex = count($pages)-1; 74 } 75 } 76 77 } 78 }//foreach 79 } 80 //ecriture des liens Page Précedente/sommaire/page suivante 81 if ($currentPageIndex>0) { 82 $PrevPage = $pages[$currentPageIndex-1]; 83 $btnPrev = "<span class=\"trail_button\">".$this->Format("<< $PrevPage")."</span>"; 84 }else{ 85 $btnPrev = " "; 86 } 87 $btnTOC = "<span class=\"trail_button\">".$this->ComposeLinkToPage($sommaire)."</span>"; 88 if ($currentPageIndex < (count($pages)-1)){ 89 $NextPage = $pages[$currentPageIndex+1]; 90 $btnNext = "<span class=\"trail_button\">".$this->Format("$NextPage >>")."</span>"; 91 }else{ 92 $btnNext = " "; 93 } 94 echo "<table class=\"trail_table\" width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"5\">\n"; 95 echo " <tr>\n"; 96 echo " <td align=\"left\" width=\"35%\">$btnPrev</td>\n"; 97 echo " <td align=\"center\">$btnTOC</td>\n"; 98 echo " <td align=\"right\" width=\"35%\">$btnNext</td>\n"; 99 echo " </tr>\n"; 100 echo "</table>\n"; 101 } 102 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Mon Nov 26 12:05:46 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |