82 lines
2.8 KiB
PHP
82 lines
2.8 KiB
PHP
<?php
|
|
/**
|
|
* Plugin Zen-Garden pour Spip 3.0
|
|
* Licence GPL (c) 2006-2013 Cedric Morin
|
|
*
|
|
* Fichier des options du plugins
|
|
*
|
|
* @package SPIP\Zen-Garden\Options
|
|
*/
|
|
|
|
if (!defined("_ECRIRE_INC_VERSION")) {
|
|
return;
|
|
}
|
|
|
|
if (!defined('_DIR_PLUGIN_THEME')){
|
|
// si on est en mode apercu, il suffit de repasser dans l'espace prive pour desactiver l'apercu
|
|
if (test_espace_prive()){
|
|
if (isset($_COOKIE['spip_zengarden_theme'])){
|
|
include_spip('inc/cookie');
|
|
spip_setcookie('spip_zengarden_theme',$_COOKIE['spip_zengarden_theme']='',-1);
|
|
}
|
|
}
|
|
// si le switcher est actif ou la globale var_theme
|
|
elseif(isset($GLOBALS['meta']['zengarden_switcher']) OR defined('_ZEN_VAR_THEME')){
|
|
if (!is_null($arg = _request('var_theme'))){
|
|
include_spip('inc/cookie');
|
|
if ($arg)
|
|
spip_setcookie('spip_zengarden_theme',$_COOKIE['spip_zengarden_theme'] = $arg);
|
|
else
|
|
spip_setcookie('spip_zengarden_theme',$_COOKIE['spip_zengarden_theme']='',-1);
|
|
}
|
|
}
|
|
|
|
// ajouter le theme au path
|
|
if (
|
|
(
|
|
// on est en mode apercu
|
|
(isset($_COOKIE['spip_zengarden_theme']) AND $t = $_COOKIE['spip_zengarden_theme'])
|
|
// ou avec le cookie du switcher
|
|
OR
|
|
// ou un theme est vraiment selectionne
|
|
(isset($GLOBALS['meta']['zengarden_theme']) AND $t = $GLOBALS['meta']['zengarden_theme'])
|
|
)
|
|
AND is_dir(_DIR_RACINE . $t)){
|
|
_chemin(_DIR_RACINE . $t);
|
|
$GLOBALS['marqueur'] = (isset($GLOBALS['marqueur'])?$GLOBALS['marqueur']:"").":theme-$t";
|
|
// @experimental : sauver le nom du repertoire theme utilise
|
|
// a defaut de connaitre le vrai prefixe
|
|
if (!defined('NOM_THEME')) { define('NOM_THEME', basename($t));}
|
|
}
|
|
|
|
// @experimental : balise #THEME qui retourne le nom du theme selectionne
|
|
function balise_THEME_dist($p){
|
|
$p->code = champ_sql('theme', $p,"(defined('NOM_THEME') ? NOM_THEME : '')");
|
|
return $p;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Insertion dans le pipeline affichage_final (SPIP)
|
|
*
|
|
* Ajoute le switcher de thème dans l'espace public
|
|
*
|
|
* @param string $texte
|
|
* Le contenu html de la page avant affichage au client
|
|
* @return string $texte
|
|
* Le contenu html de la page modifié
|
|
*/
|
|
function zengarden_affichage_final($texte){
|
|
if ((!isset($GLOBALS['flag_preserver']) || $GLOBALS['flag_preserver'] != 1) && $GLOBALS['html'] and isset($GLOBALS['meta']['zengarden_switcher'])){
|
|
include_spip('prive/zengarden_theme_fonctions');
|
|
// on passe le theme selectionne en js pour ne pas polluer le cache du switcher
|
|
$theme = isset($_COOKIE['spip_zengarden_theme']) ? $_COOKIE['spip_zengarden_theme'] : '';
|
|
$code =
|
|
"<script type='text/javascript'>var theme_selected='".texte_script($theme)."'</script>"
|
|
. recuperer_fond('inclure/zengarden_switcher');
|
|
// On rajoute le code du selecteur de squelettes avant la balise </body>
|
|
$texte=str_replace("</body>",$code."</body>",$texte);
|
|
}
|
|
return $texte;
|
|
}
|
|
|