[PLUGINS] ~zengarden 2.5.2 --> 2.5.3
[lhc/web/www.git] / www / plugins / zen-garden-2 / zengarden_options.php
1 <?php
2 /**
3 * Plugin Zen-Garden pour Spip 3.0
4 * Licence GPL (c) 2006-2013 Cedric Morin
5 *
6 * Fichier des options du plugins
7 *
8 * @package SPIP\Zen-Garden\Options
9 */
10
11 if (!defined("_ECRIRE_INC_VERSION")) return;
12
13 if (!defined('_DIR_PLUGIN_THEME')){
14 // si on est en mode apercu, il suffit de repasser dans l'espace prive pour desactiver l'apercu
15 if (test_espace_prive()){
16 if (isset($_COOKIE['spip_zengarden_theme'])){
17 include_spip('inc/cookie');
18 spip_setcookie('spip_zengarden_theme',$_COOKIE['spip_zengarden_theme']='',-1);
19 }
20 }
21 // si le switcher est actif ou la globale var_theme
22 elseif(isset($GLOBALS['meta']['zengarden_switcher']) OR defined('_ZEN_VAR_THEME')){
23 if (!is_null($arg = _request('var_theme'))){
24 include_spip('inc/cookie');
25 if ($arg)
26 spip_setcookie('spip_zengarden_theme',$_COOKIE['spip_zengarden_theme'] = $arg);
27 else
28 spip_setcookie('spip_zengarden_theme',$_COOKIE['spip_zengarden_theme']='',-1);
29 }
30 }
31
32 // ajouter le theme au path
33 if (
34 (
35 // on est en mode apercu
36 (isset($_COOKIE['spip_zengarden_theme']) AND $t = $_COOKIE['spip_zengarden_theme'])
37 // ou avec le cookie du switcher
38 OR
39 // ou un theme est vraiment selectionne
40 (isset($GLOBALS['meta']['zengarden_theme']) AND $t = $GLOBALS['meta']['zengarden_theme'])
41 )
42 AND is_dir(_DIR_RACINE . $t)){
43 _chemin(_DIR_RACINE . $t);
44 $GLOBALS['marqueur'] = (isset($GLOBALS['marqueur'])?$GLOBALS['marqueur']:"").":theme-$t";
45 // @experimental : sauver le nom du repertoire theme utilise
46 // a defaut de connaitre le vrai prefixe
47 if (!defined('NOM_THEME')) { define('NOM_THEME', basename($t));}
48 }
49
50 // @experimental : balise #THEME qui retourne le nom du theme selectionne
51 function balise_THEME_dist($p){
52 $p->code = champ_sql('theme', $p,"(defined('NOM_THEME') ? NOM_THEME : '')");
53 return $p;
54 }
55 }
56
57 /**
58 * Insertion dans le pipeline affichage_final (SPIP)
59 *
60 * Ajoute le switcher de thème dans l'espace public
61 *
62 * @param string $texte
63 * Le contenu html de la page avant affichage au client
64 * @return string $texte
65 * Le contenu html de la page modifié
66 */
67 function zengarden_affichage_final($texte){
68 if ($GLOBALS['html'] and isset($GLOBALS['meta']['zengarden_switcher'])){
69 include_spip('prive/zengarden_theme_fonctions');
70 // on passe le theme selectionne en js pour ne pas polluer le cache du switcher
71 $code =
72 "<script type='text/javascript'>var theme_selected='".$_COOKIE['spip_zengarden_theme']."'</script>"
73 . recuperer_fond('inclure/zengarden_switcher');
74 // On rajoute le code du selecteur de squelettes avant la balise </body>
75 $texte=str_replace("</body>",$code."</body>",$texte);
76 }
77 return $texte;
78 }
79
80 ?>