source: trunk/spip/esqueleto-redcta/plugins/magusine/arty_fonctions.php @ 358

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