source: trunk/spip/2.1/extensions/magusine-portage2.1/arty_fonctions.php @ 756

Last change on this file since 756 was 756, checked in by guillermoacedo@…, 14 years ago

se agrego la correccion de magusine para 2.1 basica

File size: 9.5 KB
Line 
1<?php
2/***************************************************************************\
3 Plugin   : magusine
4 Licence  : GPL
5 Auteurs  : Stéphane Noël, Philippe Vanderlinden
6 Infos    : http://www.spip-contrib.net/Le-plugin-Magusine
7            http://www.magunews.net/spip.php?rubrique645
8
9 $LastChangedRevision: 12345 $
10 $LastChangedBy: bubu $
11 $LastChangedDate: 2008-03-21 15:50:47 +0100 (ven, 21 mar 2008) $
12 \***************************************************************************/
13
14function chercheid($texte,$queltype="article") {
15        if (ereg ("($queltype=[a-zA-Z0-9' _-]{1,255})", $texte, $regs)) {
16                return ereg_replace("$queltype=","",$regs[0]);
17        } else { return ""; }
18}
19
20function chercheextension($texte){
21        $texte = strtolower(end(explode(".", $texte)));
22        return $texte;
23}
24
25function addghost($texte) {
26        if (ereg("article.php3",$texte)) {
27                $texte = $texte. "&fond=ghost";
28                $texte = ereg_replace("article.php3", "page.php3", $texte);
29        }
30
31        if (ereg("spip.php", $texte)) {
32                $texte=ereg_replace("article", "page=ghost&id_article=",$texte);
33
34        }
35        return $texte;
36}
37
38function trouvepage($texte){
39        if (ereg ("(page=[a-zA-Z0-9' _-]{1,255})", $texte, $regs)) {
40                return $regs[0];
41        } else if (ereg ("article[0-9]{1,5}|rubrique[0-9]{1,5}|mot[0-9]{1,5}|groupe[0-9]{1,5}", $texte, $regs)) {
42                // c'est une page type
43                return $regs[0];
44        } else { return ""; }
45}
46
47function envpart($texte,$lequel=0){
48        $texte=explode("|",$texte);
49        if($lequel <= count($texte)) {
50                return $texte[$lequel];
51        } else {
52                return "";
53        }
54}
55
56function tableau2in($texte){
57        $texte=explode("|",$texte);
58        return $texte;
59}
60
61function tableau2invirgule($texte){
62        $texte=explode(",",$texte);
63        return $texte;
64}
65
66function tableau2array($texte,$split){
67        $texte=explode($split,$texte);
68        return $texte;
69}
70
71function element($texte,$element) {
72        $result="rien";
73        foreach($texte as $elem => $param){
74                if ($elem == $element){
75                        $result=$param;
76                }
77        }
78        return $result;
79}
80
81function taille_img_diaporama($largeur,$hauteur,$destlargeur=600,$desthauteur=500) {
82
83        $neolargeur=0;
84        $neohauteur=0;
85        // calcule la largeur sur base du rapport hauteurlargeur
86        if ($largeur > $destlargeur) {
87                $neolargeur=$destlargeur;
88                $neohauteur=($hauteur/($largeur/$destlargeur));
89        }
90
91        if (($neohauteur > $desthauteur) or ($neohauteur==0 and ($hauteur > $desthauteur))) {
92                //on reduit donc sur base de desthauteur
93                $neohauteur=$desthauteur;
94                $neolargeur=$largeur/($hauteur/$desthauteur);
95        }
96
97        // si ni neohauteur ni neolargeur ne sont definis, c'est qu'ils sont corrects
98        if ($neohauteur == 0) { $neohauteur=$hauteur; }
99        if ($neolargeur == 0) { $neolargeur=$largeur; }
100
101
102        return array($neolargeur,$neohauteur);
103}
104
105// remonte l'arborescence et retourne le premier thÚme trouvé pour une rubrique donnée
106function premier_theme($id_rubrique){
107        $id_parent = $id_rubrique;
108        while($id_parent != 0) {
109                // un thÚme est-il présent pour cette rubrique?
110                $result = spip_query("SELECT id_theme FROM spip_magu_themes_rubriques WHERE id_rubrique=$id_rubrique");
111                if (spip_mysql_count($result) == 1) {
112                        $row = spip_fetch_array($result);
113                        return $row['id_theme'];
114                }
115                // sinon, continuer et vérifier pour le parent
116                $result = spip_query("SELECT id_parent FROM spip_rubriques WHERE id_rubrique=$id_rubrique");
117                $row = spip_fetch_array($result);
118                $id_parent = $row['id_parent'];
119                $id_rubrique = $id_parent;
120        }
121        // aucun thÚme n'a été trouvé, on prend le thÚme par défaut
122        $result = spip_query("SELECT id_theme FROM spip_magu_themes_rubriques WHERE id_rubrique=0");
123        $row = spip_fetch_array($result);
124        return $row['id_theme'];
125}
126
127// retourne le logo d'un bloc libre si il existe
128function logo_bloc($id_bloc){
129        $handle = @opendir("IMG/illu-bloc-libre/");
130        while($fichier = @readdir($handle)) {
131                if (ereg("^illu_bloc_libre-$id_bloc\.(jpg|png|gif)$", $fichier)) {
132                        $logo = $fichier;
133                }
134        }
135        if (!isset($logo)){
136                return false;
137        } else {
138                return "IMG/illu-bloc-libre/$logo";
139        }
140}
141
142// retourne le logo d'un groupe si il existe
143function logo_groupe($id_groupe){
144        $handle = @opendir("IMG/logo-groupe/");
145        while($fichier = @readdir($handle)) {
146                if (ereg("^logo-$id_groupe\.(jpg|png|gif)$", $fichier)) {
147                        $logo = $fichier;
148                }
149        }
150        if (!isset($logo)){
151                return false;
152        } else {
153                return "IMG/logo-groupe/$logo";
154        }
155}
156
157function controlelargeur($texte) {
158        if ($texte==0) { $texte= 160; };
159        return $texte;
160}
161
162function controlehauteur($texte) {
163        if ($texte==0) { $texte = 120; };
164        return $texte;
165}
166
167function nospace($texte) {
168        $texte = ereg_replace("&nbsp;", "", $texte);
169        $texte = ereg_replace(" ", "", $texte);
170        return $texte;
171}
172
173function no_accent($chaine){
174        $chaine = strtr
175        // La ligne suivante entre parenthÚse doit être sur une seule ligne, sinon erreur php
176        ($chaine,  "ÀÁÂÃÄÅàáâãÀåÒÓÔÕÖØòóÎõöÞÈÉÊËÚéêëÇçÌÍÎÏìíîïÙÚÛÜùúûÌÿÑñ", "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
177        $chaine = str_replace("\"", "&quot;", $chaine);
178        return $chaine;
179}
180
181
182
183/*
184 *   +-------------------------------------+
185 *    Nom du Filtre : Conversion des ancres
186 *   +-------------------------------------+
187 *    Date : vendredi 18 juin 2004
188 *    Auteur :  AliGator (aligator@macfr.com)
189 *   +-------------------------------------+
190 *    Fonctions de ce filtre :
191 *      Ce script permet de gérer les ancres insérées dans un
192 *      article sous la forme [nomancre<-] ou [#nomancre<-]
193 *      pour les remplacer par une ancre HTML (<a name="#nomancre"></a>)
194 *      Ceci vous permet d'autoriser les auteurs des articles sur votre site
195 *                à utiliser ce nouveau "raccourci typographique"
196 *   +-------------------------------------+
197 */
198
199function gerer_ancres($texte)
200{
201        $res = preg_replace("|\[\#?([A-Za-z0-9_]*)<-\]|U" ,
202                "<a name=\"\$1\"></a>" , $texte);
203        return $res;
204}
205
206function vignettewebmaton($texte) {
207        $texte= ereg_replace("/mp4/","/webmaton-vignettes/",$texte);
208        $texte = ereg_replace("\.mp4$", ".png", $texte);
209        if (file_exists($texte)) {
210                return $texte;
211        }
212}
213
214function transguillemet ($texte) {
215        $texte = ereg_replace("\"", "''", $texte);
216        $texte = ereg_replace("\n", "", $texte);
217        $texte = ereg_replace("\t", " ", $texte);
218        return $texte;
219}
220
221function lienitunes($texte){
222        $texte = ereg_replace("^http://", "itpc://", $texte);
223        return $texte;
224}
225
226function nomfichier($texte) {
227        $texte = explode('/', trim($texte, "/"));
228        return end($texte);
229}
230
231function sans_newline($texte){
232        $texte = ereg_replace("\n", "", $texte);
233        return $texte;
234}
235
236function premiere_lettre($texte){
237        $premiere = $texte{0};
238        if (eregi("^[a-z]$",$premiere)) {
239                return strtoupper($premiere);
240        } else {
241                return "#";
242        }
243}
244
245function balise_THEME($params) {
246        include_spip('inc/cherche-theme');
247        $theme=theme_actuel();
248        $morceaux=explode("|",$theme);
249        $params->code = "$morceaux[0]";
250        $params->type = 'html';
251        return $params;
252}
253
254function balise_LARGEUR_CORPS($params) {
255        $largeur=trouveintheme('LARGEURCORPS', '480');
256        $params->code = "'$largeur'";
257        $params->type = 'html';
258        return $params;
259}
260
261function balise_LARGEUR_CONTEXTE1($params) {
262        $largeur=trouveintheme('LARGEURCONTEXTE1', '150');
263        $params->code = "'$largeur'";
264        $params->type = 'html';
265        return $params;
266}
267
268function balise_LARGEUR_CONTEXTE2($params) {
269        $largeur=trouveintheme('LARGEURCONTEXTE2', '120');
270        $params->code = "'$largeur'";
271        $params->type = 'html';
272        return $params;
273}
274
275function trouveintheme($quoi, $defaut) {
276        include_spip('inc/cherche-theme');
277        include_spip('inc/xml-parser');
278
279        $letruc=$defaut;
280        $quoi=strtoupper($quoi);
281
282        $theme=theme_actuel();
283        $morceaux=explode("|",$theme);
284        if (count($morceaux)==1) {
285
286                $declinaison=FALSE;
287        } else {
288                $declinaison=$morceaux[1];
289        }
290
291        $theme=$morceaux[0];
292
293        $p =& new xmlParser();
294        $p->parse(_DIR_PLUGIN_ARTY.'themes/'.$theme.'/theme.xml');
295        foreach($p->output[0]['child'] as $tag) {
296                if ($tag['name']==$quoi) {
297                        $letruc=$tag['content'];
298                }
299
300                if ($tag['name']=='DECLINAISON' && $tag['attrs']['CHEMIN']==$declinaison) {
301                        foreach($tag['child'] as $tagchild) {
302                                if ($tagchild['name']==$quoi) {
303                                        $letruc=$tagchild['content'];
304                                }
305                        }
306                }
307
308        }
309
310        return $letruc;
311}
312
313function parametres($texte){
314        // fabrique un array associatif des parametres du site, une seule lecture xml donc.
315        include_spip('inc/cherche-theme');
316        include_spip('inc/xml-parser');
317
318        $theme=theme_actuel();
319        $morceaux=explode("|",$theme);
320        if (count($morceaux)==1) {
321
322                $declinaison=FALSE;
323        } else {
324                $declinaison=$morceaux[1];
325        }
326        $theme=$morceaux[0];
327
328        $params_acceptes =array("separateur","titre");
329
330        if($texte == "theme") {
331                $letruc=$theme;
332        } else if (in_array($texte,$params_acceptes))  {
333                $p =& new xmlParser();
334                $p->parse(_DIR_PLUGIN_ARTY.'themes/'.$theme.'/theme.xml');
335                $texte=strtoupper($texte);
336                $letruc=trouvelem($p->output[0]['child'],$declinaison,$texte,"");
337        } else {
338                $p =& new xmlParser();
339                $p->parse(_DIR_PLUGIN_ARTY.'themes/'.$theme.'/theme.xml');
340
341                $navigation=trouvelem($p->output[0]['child'],$declinaison,"NAVIGATION","general");
342                $chemin=trouvelem($p->output[0]['child'],$declinaison,"CHEMIN_PAGE","general");
343                $footer=trouvelem($p->output[0]['child'],$declinaison,"FOOTER","general");
344                $contenus=trouvelem($p->output[0]['child'],$declinaison,"DIV_CONTENUS","non");
345
346                $letruc=array("theme" => $theme,"navigation" => $navigation,"footer" => $footer, "chemin" => $chemin,"contenus" => $contenus);
347        }
348
349        return $letruc;
350}
351
352function trouvelem($tableau,$declinaison,$elem,$defaut){
353        $elemtrouve=$defaut;
354        foreach($tableau as $tag) {
355                if ($tag['name']==$elem) {
356                        $elemtrouve=$tag['content'];
357                }
358
359                if ($tag['name']=='DECLINAISON' && $tag['attrs']['CHEMIN']==$declinaison) {
360                        foreach($tag['child'] as $tagchild) {
361                                if ($tagchild['name']==$elem) {
362                                        $elemtrouve=$tagchild['content'];
363                                }
364                        }
365                }
366
367        }
368        return $elemtrouve;
369}
370
371?>
Note: See TracBrowser for help on using the repository browser.