[79] | 1 | <?php |
---|
| 2 | |
---|
| 3 | function modif_inserhead($texte){ |
---|
| 4 | $texte=str_replace("spip.php?page=jquery.js","spip.php?page=jquery-public.js",$texte); |
---|
| 5 | return $texte; |
---|
| 6 | } |
---|
| 7 | |
---|
| 8 | function chercheid($texte,$queltype="article") { |
---|
| 9 | if (ereg ("($queltype=[a-zA-Z0-9' _-]{1,255})", $texte, $regs)) { |
---|
| 10 | return ereg_replace("$queltype=","",$regs[0]); |
---|
| 11 | } else { return ""; } |
---|
| 12 | } |
---|
| 13 | |
---|
| 14 | function chercheextension($texte){ |
---|
| 15 | $texte = strtolower(end(explode(".", $texte))); |
---|
| 16 | return $texte; |
---|
| 17 | } |
---|
| 18 | |
---|
| 19 | function 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 | |
---|
| 32 | function 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 | |
---|
| 41 | function envpart($texte,$lequel=0){ |
---|
| 42 | $texte=explode("|",$texte); |
---|
| 43 | if($lequel <= count($texte)) { |
---|
| 44 | return $texte[$lequel]; |
---|
| 45 | } else { |
---|
| 46 | return ""; |
---|
| 47 | } |
---|
| 48 | } |
---|
| 49 | |
---|
| 50 | function tableau2in($texte){ |
---|
| 51 | $texte=explode("|",$texte); |
---|
| 52 | return $texte; |
---|
| 53 | } |
---|
| 54 | |
---|
| 55 | function tableau2invirgule($texte){ |
---|
| 56 | $texte=explode(",",$texte); |
---|
| 57 | return $texte; |
---|
| 58 | } |
---|
| 59 | |
---|
| 60 | function tableau2array($texte,$split){ |
---|
| 61 | $texte=explode($split,$texte); |
---|
| 62 | return $texte; |
---|
| 63 | } |
---|
| 64 | |
---|
| 65 | function element($texte,$element) { |
---|
| 66 | $result="rien"; |
---|
| 67 | foreach($texte as $elem => $param){ |
---|
| 68 | if ($elem == $element){ |
---|
| 69 | $result=$param; |
---|
| 70 | } |
---|
| 71 | } |
---|
| 72 | return $result; |
---|
| 73 | } |
---|
| 74 | |
---|
| 75 | function 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 | |
---|
| 96 | return array($neolargeur,$neohauteur); |
---|
| 97 | } |
---|
| 98 | |
---|
| 99 | // remonte l'arborescence et retourne le premier thÚme trouvé pour une rubrique donnée |
---|
| 100 | function 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 |
---|
| 122 | function 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 |
---|
| 137 | function 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 | |
---|
| 151 | function controlelargeur($texte) { |
---|
| 152 | if ($texte==0) { $texte= 160; }; |
---|
| 153 | return $texte; |
---|
| 154 | } |
---|
| 155 | |
---|
| 156 | function controlehauteur($texte) { |
---|
| 157 | if ($texte==0) { $texte = 120; }; |
---|
| 158 | return $texte; |
---|
| 159 | } |
---|
| 160 | |
---|
| 161 | function nospace($texte) { |
---|
| 162 | $texte = ereg_replace(" ", "", $texte); |
---|
| 163 | $texte = ereg_replace(" ", "", $texte); |
---|
| 164 | return $texte; |
---|
| 165 | } |
---|
| 166 | |
---|
| 167 | function 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("\"", """, $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 | |
---|
| 193 | function gerer_ancres($texte) |
---|
| 194 | { |
---|
| 195 | $res = preg_replace("|\[\#?([A-Za-z0-9_]*)<-\]|U" , |
---|
| 196 | "<a name=\"\$1\"></a>" , $texte); |
---|
| 197 | return $res; |
---|
| 198 | } |
---|
| 199 | |
---|
| 200 | function vignettewebmaton($texte) { |
---|
| 201 | $texte= ereg_replace("/mp4/","/webmaton-vignettes/",$texte); |
---|
| 202 | $texte = ereg_replace("\.mp4$", ".png", $texte); |
---|
| 203 | if (file_exists($texte)) { |
---|
| 204 | return $texte; |
---|
| 205 | } |
---|
| 206 | } |
---|
| 207 | |
---|
| 208 | function transguillemet ($texte) { |
---|
| 209 | $texte = ereg_replace("\"", "''", $texte); |
---|
| 210 | $texte = ereg_replace("\n", "", $texte); |
---|
| 211 | $texte = ereg_replace("\t", " ", $texte); |
---|
| 212 | return $texte; |
---|
| 213 | } |
---|
| 214 | |
---|
| 215 | function lienitunes($texte){ |
---|
| 216 | $texte = ereg_replace("^http://", "itpc://", $texte); |
---|
| 217 | return $texte; |
---|
| 218 | } |
---|
| 219 | |
---|
| 220 | function nomfichier($texte) { |
---|
| 221 | $texte = explode('/', trim($texte, "/")); |
---|
| 222 | return end($texte); |
---|
| 223 | } |
---|
| 224 | |
---|
| 225 | function sans_newline($texte){ |
---|
| 226 | $texte = ereg_replace("\n", "", $texte); |
---|
| 227 | return $texte; |
---|
| 228 | } |
---|
| 229 | |
---|
| 230 | function premiere_lettre($texte){ |
---|
| 231 | $premiere = $texte{0}; |
---|
| 232 | if (eregi("^[a-z]$",$premiere)) { |
---|
| 233 | return strtoupper($premiere); |
---|
| 234 | } else { |
---|
| 235 | return "#"; |
---|
| 236 | } |
---|
| 237 | } |
---|
| 238 | |
---|
| 239 | function 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 | |
---|
| 248 | function balise_LARGEUR_CORPS($params) { |
---|
| 249 | $largeur=trouveintheme('LARGEURCORPS', '480'); |
---|
| 250 | $params->code = "'$largeur'"; |
---|
| 251 | $params->type = 'html'; |
---|
| 252 | return $params; |
---|
| 253 | } |
---|
| 254 | |
---|
| 255 | function balise_LARGEUR_CONTEXTE1($params) { |
---|
| 256 | $largeur=trouveintheme('LARGEURCONTEXTE1', '150'); |
---|
| 257 | $params->code = "'$largeur'"; |
---|
| 258 | $params->type = 'html'; |
---|
| 259 | return $params; |
---|
| 260 | } |
---|
| 261 | |
---|
| 262 | function balise_LARGEUR_CONTEXTE2($params) { |
---|
| 263 | $largeur=trouveintheme('LARGEURCONTEXTE2', '120'); |
---|
| 264 | $params->code = "'$largeur'"; |
---|
| 265 | $params->type = 'html'; |
---|
| 266 | return $params; |
---|
| 267 | } |
---|
| 268 | |
---|
| 269 | function 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 | |
---|
| 307 | function 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 | |
---|
| 346 | function trouvelem($tableau,$declinaison,$elem,$defaut){ |
---|
| 347 | $elemtrouve=$defaut; |
---|
| 348 | foreach($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 | ?> |
---|