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

Last change on this file since 30 was 30, checked in by sebas, 17 years ago

nueva importacion del codigo del esqueleto de redcta con los plugins

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