rendered paste body<?/* * +----------------------------------+ * Nom du Filtre : Sommaire de l'article * +----------------------------------+ * Date : Vendredi 6 juin 2003 * Auteur : Noplay (noplay@altern.org) * Aurélien PIERARD : aurelien.pierard@sig.premier-ministre.gouv.fr * +-------------------------------------+ * Fonctions de ce filtre : * Cette modification permet d'afficher le sommaire de l'article * généré dynamiquement à partir du texte de l'article. Vous pouvez naviguer * dans l'article en cliquant sur les titres du sommaires. * * Tous ce qui ce trouve entre {{{ et }}} est considéré comme un titre à ajouter au sommaire de l'article. * +-------------------------------------+ * * Pour toute suggestion, remarque, proposition d'ajout * reportez-vous au forum de l'article : * http://www.uzine.net/spip_contrib/article.php3?id_article=76*///SOMMAIREfunction sommaire_article($texte){ $artsuite = 0; $page = split('-----', $texte); $uri_art = generer_url_article($GLOBALS['id_article']); $uri_art .= strpos($uri_art, '?') ? '&' : '?'; $i=0; $texte="<ul id=\"navlist\">"; while($page[$i]){ // On ajoute une ancre aux intertitres "{{{ }}}" que l'on utilise pour créer le sommaire preg_match_all("|\{\{\{(.*)\}\}\}|U",$page[$i], $regs); $nb=1; for($j=0;$j<count($regs[1]);$j++){ $p=$i+1; $texte=$texte."<li><a href=\"". $uri_art . "artsuite=" .$i. "#sommaire_".$nb."\" title=\"".$regs[1][$j]."\">page $p: ".$regs[1][$j]."</a></li>"; $nb++; } $i++; } $texte = $texte."</ul>"; return $texte;}// Fin du filtre sommaire/* * +----------------------------------+ * Nom du Filtre : decouper_en_page * +----------------------------------+ * Date : Vendredi 6 juin 2003 * Auteur : "gpl" : gpl@macplus.org * Aurélien PIERARD : aurelien.pierard@sig.premier-ministre.gouv.fr * +-------------------------------------+ * Fonctions de ce filtre : * Il sert a présenter un article sur plusieurs pages * +-------------------------------------+ * * Pour toute suggestion, remarque, proposition d'ajout * reportez-vous au forum de l'article : * http://www.uzine.net/spip_contrib/article.php3?id_article=62*/function decouper_en_page($texte) { global $artsuite, $var_recherche, $num_pages; if (empty($artsuite)) $artsuite = 0; // on divise la page (séparateur : "-----") $page = split('-----', $texte); // Nombre total de pages $num_pages = count($page); // Si une seule page ou numéro illégal, alors retourner tout le texte. // Cas spécial : si var_recherche positionné, tout renvoyer pour permettre à la surbrillance de fonctionner correctement. if ($num_pages == 1 || !empty($var_recherche) || $artsuite < 0 || $artsuite > $num_pages) { // On place les ancres sur les intertitres $texte = preg_replace("|\{\{\{(.*)\}\}\}|U","<a name=\"sommaire_#NB_TITRE_DE_MON_ARTICLE#\">$0</a>", $texte); $array = explode("#NB_TITRE_DE_MON_ARTICLE#" , $texte); $res =count($array); $i =1; $texte=$array[0]; while($i<$res){ $texte=$texte.$i.$array[$i]; $i++; } return $texte; } $p_prec = $artsuite - 1; $p_suiv = $artsuite + 1; $uri_art = generer_url_article($GLOBALS['id_article']); $uri_art .= strpos($uri_art, '?') ? '&' : '?'; // On place les ancres sur les intertitres $page[$artsuite] = preg_replace("|\{\{\{(.*)\}\}\}|U","<a name=\"sommaire_#NB_TITRE_DE_MON_ARTICLE#\">$0</a>", $page[$artsuite]); $array = explode("#NB_TITRE_DE_MON_ARTICLE#" , $page[$artsuite]); $res =count($array); $i =1; $page[$artsuite]=$array[0]; while($i<$res){ $page[$artsuite]=$page[$artsuite].$i.$array[$i]; $i++; } // Pagination switch (TRUE) { case ($artsuite == 0): $precedent = ""; $suivant = "<a href='" . $uri_art . "artsuite=" . $p_suiv . "'>>></a>"; break; case ($artsuite == ($num_pages-1)): $precedent = "<a href='" . $uri_art . "artsuite=" . $p_prec . "'><<</a>"; $suivant = ""; break; default: $precedent = "<a href='" . $uri_art . "artsuite=" . $p_prec . "'><<</a>"; $suivant = "<a href='" . $uri_art . "artsuite=" . $p_suiv . "'>>></a>"; break; } for ($i = 0; $i < $num_pages; $i++) { $j = $i; if ($i == $artsuite) { $milieu .= " <strong>" . ++$j . "</strong> "; } else { $milieu .= " <a href='" . $uri_art . "artsuite=$i'>" . ++$j . "</a> "; } } // Ici, on peut personnaliser la présentation $resultat .= $page[$artsuite]; $resultat .= "<p class='pagination'><div class='pagination' align='center'>pages : $precedent $milieu $suivant</div></p>"; return $resultat;}// FIN du Filtre decouper_en_page?>