/**
 * Retourne les paramètres de personnalisation css de l'espace privé
 *
 * Ces paramètres sont (ltr et couleurs) ce qui permet une écriture comme :
 * generer_url_public('style_prive', parametres_css_prive())
 * qu'il est alors possible de récuperer dans le squelette style_prive.html avec
 *
 * #SET{claire,##ENV{couleur_claire,edf3fe}}
 * #SET{foncee,##ENV{couleur_foncee,3874b0}}
 * #SET{left,#ENV{ltr}|choixsiegal{left,left,right}}
 * #SET{right,#ENV{ltr}|choixsiegal{left,right,left}}
 *
 * @return string
 */
function parametres_css_prive()
{
    $args = array();
    $args['v'] = $GLOBALS['spip_version_code'];
    $args['p'] = substr(md5($GLOBALS['meta']['plugin']), 0, 4);
    $args['themes'] = implode(',', lister_themes_prives());
    $args['ltr'] = $GLOBALS['spip_lang_left'];
    // un md5 des menus : si un menu change il faut maj la css
    $args['md5b'] = function_exists('md5_boutons_plugins') ? md5_boutons_plugins() : '';
    $c = (is_array($GLOBALS['visiteur_session']) and is_array($GLOBALS['visiteur_session']['prefs'])) ? $GLOBALS['visiteur_session']['prefs']['couleur'] : 9;
    $couleurs = charger_fonction('couleurs', 'inc');
    parse_str($couleurs($c), $c);
    $args = array_merge($args, $c);
    if (_request('var_mode') == 'recalcul' or defined('_VAR_MODE') and _VAR_MODE == 'recalcul') {
        $args['var_mode'] = 'recalcul';
    }
    return http_build_query($args);
}
Beispiel #2
0
function find_in_theme($file, $subdir = '', $include = false)
{
    static $themefiles = array();
    if (isset($themefiles["{$subdir}{$file}"])) {
        return $themefiles["{$subdir}{$file}"];
    }
    $themes = lister_themes_prives();
    foreach ($themes as $theme) {
        if ($f = find_in_path($file, "prive/themes/{$theme}/{$subdir}", $include)) {
            return $themefiles["{$subdir}{$file}"] = $f;
        }
    }
    spip_log("{$file} introuvable dans le theme prive " . reset($themes), 'theme');
    return $themefiles["{$subdir}{$file}"] = "";
}