[ Index ]
 

Code source de WikiNi 0.4.4

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/actions/ -> trail.php (source)

   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("&lt;&lt; $PrevPage")."</span>";
  84     }else{
  85        $btnPrev = "&nbsp;";
  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 &gt;&gt;")."</span>";
  91     }else{
  92        $btnNext = "&nbsp;";
  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  ?>


Généré le : Mon Nov 26 12:05:46 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics