source: trunk/spip/esqueleto-redcta/themes/redcta/mes_fonctions.php @ 34

Last change on this file since 34 was 34, checked in by guille, 17 years ago

Se Modifico el Pie de paginacion de articulo

File size: 5.8 KB
Line 
1<?php
2
3/*
4 *   +----------------------------------+
5 *    Nom de la balise : Afficher version SPIP                                             
6 *   +----------------------------------+
7 *    Fonctions de cette balise :
8 *      Afficher le numero de version de SPIP.
9 *
10 *    Utilisation
11 *      Inserer #VERSION_SPIP dans votre squelette
12 *   +-------------------------------------+
13 *   REMARQUE
14 *      #SPIP_VERSION = $spip_version_affichee = 1.9.1
15 *              #CONFIG{version_installee} = $version_installee = 1.916
16*/
17
18function balise_SPIP_VERSION($p) {
19        global $spip_version_affichee;
20        $p->code = "'$spip_version_affichee'";
21        $p->interdire_scripts = false;
22        return $p;
23}
24
25
26
27/*
28 *   +----------------------------------+
29 *    Nom du Filtre : Sommaire de l'article                                               
30 *   +----------------------------------+
31 *    Date : Vendredi 6 juin 2003
32 *    Auteur :  Noplay (noplay@altern.org)
33 *              Aurélien PIERARD : aurelien.pierard@sig.premier-ministre.gouv.fr                                     
34 *   +-------------------------------------+
35 *    Fonctions de ce filtre :
36 *      Cette modification permet d'afficher le sommaire de l'article
37 *      généré dynamiquement à partir des intertitres du texte de l'article.
38 *              Vous pouvez naviguer dans l'article en cliquant sur les intitres
39 *      du sommaire de l'article.
40 *
41 *      Tout ce qui ce trouve entre {{{ et }}} est considéré comme un titre
42 *      à ajouter au sommaire de l'article.
43 *   +-------------------------------------+
44 * 
45 *              Pour toute suggestion, remarque, proposition d'ajout
46 *              reportez-vous au forum de l'article :
47 *              http://spip_contrib.net/article.php3?id_article=76
48*/
49//SOMMAIRE
50function sommaire_article($texte)
51{
52                $artsuite = 0;
53        $page = split('-----', $texte);
54        $uri_art = generer_url_article($GLOBALS['id_article']);
55        $uri_art .= strpos($uri_art, '?') ? '&' : '?';
56
57        $i=0;
58        $texte="";
59        while($page[$i]){
60                // On ajoute une ancre aux intertitres "{{{ }}}" que l'on utilise pour créer le sommaire
61                preg_match_all("|\{\{\{(.*)\}\}\}|U",$page[$i], $regs);
62                $nb=1;
63                for($j=0;$j<count($regs[1]);$j++){
64                        $p=$i+1;
65                $texte=$texte."<li><a href=\"". $uri_art . "artsuite=" .$i. "#sommaire_".$nb."\" title=\"".$regs[1][$j]."\">".$regs[1][$j]."</a>,&nbsp;p$p</li>\n";
66                        $nb++;
67            }
68                $i++;
69        }
70                if (empty($texte)) $texte="";
71                else $texte="<ul>\n".$texte."</ul>\n";
72                return $texte;
73}
74// Fin du filtre sommaire
75
76/*
77 *   +----------------------------------+
78 *    Nom du Filtre : decouper_en_page                                               
79 *   +----------------------------------+
80 *    Date : Vendredi 6 juin 2003
81 *    Auteur :  "gpl"  : gpl@macplus.org 
82 *              Aurélien PIERARD : aurelien.pierard@sig.premier-ministre.gouv.fr
83 *   +-------------------------------------+
84 *    Fonctions de ce filtre :
85 *              Il sert a présenter un article sur plusieurs pages 
86 *   +-------------------------------------+
87 * 
88 * Pour toute suggestion, remarque, proposition d'ajout
89 * reportez-vous au forum de l'article :
90 * http://www.uzine.net/spip_contrib/article.php3?id_article=62
91*/
92
93
94function decouper_en_page($texte,$id_article) {
95        global $artsuite, $var_recherche, $num_pages;
96               
97        if (empty($artsuite)) $artsuite = 0;
98       
99                // on divise la page (séparateur : "-----")       
100        $page = split('-----', $texte);
101        // Nombre total de pages
102        $num_pages = count($page);
103
104        // Si une seule page ou numéro illégal, alors retourner tout le texte.
105        // Cas spécial : si var_recherche positionné, tout renvoyer pour permettre à la surbrillance de fonctionner correctement.
106        if ($num_pages == 1 || !empty($var_recherche) || $artsuite < 0 || $artsuite > $num_pages) {
107                        // On place les ancres sur les intertitres
108                        $texte = preg_replace("|\{\{\{(.*)\}\}\}|U","<a id=\"sommaire_#NB_TITRE_DE_MON_ARTICLE#\"></a>$0", $texte);
109                        $array = explode("#NB_TITRE_DE_MON_ARTICLE#" , $texte);
110                        $res =count($array);
111                        $i =1;
112                        $texte=$array[0];
113                        while($i<$res){
114                                $texte=$texte.$i.$array[$i];
115                                $i++;
116                        }
117                        return $texte;
118        } 
119
120        $p_prec = $artsuite - 1;
121        $p_suiv = $artsuite + 1;
122        $uri_art = generer_url_article($id_article);
123        $uri_art .= strpos($uri_art, '?') ? '&' : '?';
124
125                // On place les ancres sur les intertitres
126                $page[$artsuite] = preg_replace("|\{\{\{(.*)\}\}\}|U","<a id=\"sommaire_#NB_TITRE_DE_MON_ARTICLE#\"></a>$0", $page[$artsuite]);
127                $array = explode("#NB_TITRE_DE_MON_ARTICLE#" , $page[$artsuite]);
128                $res =count($array);
129                $i =1;
130                $page[$artsuite]=$array[0];
131                while($i<$res){
132                        $page[$artsuite]=$page[$artsuite].$i.$array[$i];
133                        $i++;
134                }
135                // Pagination
136            switch (TRUE) {
137                        case ($artsuite == 0):
138                                $precedent = "";
139                                $suivant = "<a href='" . $uri_art . "artsuite=" . $p_suiv . "'>&gt;&gt;</a>";
140                                break;
141                        case ($artsuite == ($num_pages-1)):
142                                $precedent = "<a href='" . $uri_art . "artsuite=" . $p_prec . "'>&lt;&lt;</a>";
143                                $suivant = "";
144                                break;
145                        default:
146                                $precedent = "<a href='" . $uri_art . "artsuite=" . $p_prec . "'>&lt;&lt;</a>";
147                                $suivant = "<a href='" . $uri_art . "artsuite=" . $p_suiv . "'>&gt;&gt;</a>";
148                                break;
149        }
150   
151        for ($i = 0; $i < $num_pages; $i++) {
152                        $j = $i;
153                        if ($i == $artsuite) {
154                                $milieu .= " <strong>" . ++$j . "</strong> ";
155            } 
156                        else {
157                                $milieu .= " <a href='" . $uri_art . "artsuite=$i'>" . ++$j . "</a> ";
158                        }
159        }
160
161        // Ici, on peut personnaliser la présentation
162        $resultat .= $page[$artsuite];
163        $resultat .= "<div class='pagination' style='text-align:center'><b>Comtinua en :</b> $precedent $milieu $suivant</div>";
164        return $resultat;
165}
166// FIN du Filtre decouper_en_page
167
168
169
170?>
Note: See TracBrowser for help on using the repository browser.