/**
 *
 * Inserer des styles
 *
 * @param string $flux
 * @return string
 */
function comments_insert_head_css($flux)
{
    if ($f = find_in_path("css/comments.css")) {
        $flux .= '<link rel="stylesheet" href="' . direction_css($f) . '" type="text/css" media="all" />';
    }
    return $flux;
}
예제 #2
0
파일: minipres.php 프로젝트: rhertzog/lcs
function install_debut_html($titre = 'AUTO', $onLoad = '') {
	global $spip_lang_right,$spip_lang_left;
	
	utiliser_langue_visiteur();

	http_no_cache();

	if ($titre=='AUTO')
		$titre=_T('info_installation_systeme_publication');

	# le charset est en utf-8, pour recuperer le nom comme il faut
	# lors de l'installation
	if (!headers_sent())
		header('Content-Type: text/html; charset=utf-8');

	// au cas ou minipres() est appele avant spip_initialisation_suite()
	if (!defined('_DOCTYPE_ECRIRE')) define('_DOCTYPE_ECRIRE', '');
	return  _DOCTYPE_ECRIRE.
		html_lang_attributes().
		"<head>\n".
		"<title>".
		textebrut($titre).
		"</title>
		<link rel='stylesheet' href='".direction_css(find_in_path('minipres.css')).
		"' type='text/css' media='all' />\n" .
 // cet appel permet d'assurer un copier-coller du nom du repertoire a creer dans tmp (esj)
		http_script('',  "spip_barre.js") .
"</head>
<body".$onLoad." class='minipres'>
	<div id='minipres'>
	<h1>".
	  $titre .
	  "</h1>
	<div>\n";
}
예제 #3
0
/**
 * Ajoute Chosen aux css chargées dans le public
 * 
 * @param string $texte Contenu du head HTML concernant les CSS
 * @return string       Contenu du head HTML concernant les CSS
**/
function chosen_insert_head_css($flux) {
	include_spip('inc/config');
	$config = lire_config('chosen',array());
	if (isset($config['active']) and $config['active']=='oui'){
		$css = find_in_path('lib/chosen/chosen.css');
		$flux .= '<link rel="stylesheet" href="'.direction_css($css).'" type="text/css" media="all" />';
		$css = find_in_path('css/spip.chosen.css');
		$flux .= '<link rel="stylesheet" href="'.direction_css($css).'" type="text/css" media="all" />';
	}
	return $flux;
}
예제 #4
0
function mediabox_insert_head_css($flux)
{
    $config = mediabox_config();
    if ($config['active'] == 'oui' and $f = find_in_path((test_espace_prive() ? "prive/" : "") . "colorbox/" . $config['skin'] . '/colorbox.css')) {
        $flux .= '<link rel="stylesheet" href="' . direction_css($f) . '" type="text/css" media="all" />';
        /**
         * Initialiser la config de la mediabox
         */
        $flux = '<script type="text/javascript">/* <![CDATA[ */
var box_settings = {tt_img:' . ($config['traiter_toutes_images'] == 'oui' ? 'true' : 'false') . ',sel_g:"' . $config['selecteur_galerie'] . '",sel_c:"' . $config['selecteur_commun'] . '",trans:"' . $config['transition'] . '",speed:"' . $config['speed'] . '",ssSpeed:"' . $config['slideshow_speed'] . '",maxW:"' . $config['maxWidth'] . '",maxH:"' . $config['maxHeight'] . '",minW:"' . $config['minWidth'] . '",minH:"' . $config['minHeight'] . '",opa:"' . $config['opacite'] . '",str_ssStart:"' . unicode2charset(html2unicode(_T('mediabox:boxstr_slideshowStart'))) . '",str_ssStop:"' . unicode2charset(html2unicode(_T('mediabox:boxstr_slideshowStop'))) . '",str_cur:"' . _T('mediabox:boxstr_current', array('current' => '{current}', 'total' => '{total}')) . '",str_prev:"' . _T('mediabox:boxstr_previous') . '",str_next:"' . _T('mediabox:boxstr_next') . '",str_close:"' . _T('mediabox:boxstr_close') . '",splash_url:"' . $config['splash_url'] . '"};
/* ]]> */</script>' . "\n" . $flux;
    }
    return $flux;
}
예제 #5
0
/**
 * Ajoute les boutons d'administration de la page s'ils n'y sont pas déjà
 *
 * Insère la feuille de style selon les normes, dans le `<head>`
 * puis les boutons.
 *
 * Feuilles de style admin : d'abord la CSS officielle, puis la perso
 *
 * @param string $contenu
 *     Contenu HTML de la page qui va être envoyée au navigateur
 * @return string
 *     Contenu HTML, avec boutons d'administrations et sa CSS
 **/
function affiche_boutons_admin($contenu)
{
    include_spip('inc/filtres');
    // Inserer le css d'admin
    $css = "<link rel='stylesheet' href='" . protocole_implicite(url_absolue(direction_css(find_in_path('spip_admin.css')))) . "' type='text/css' />\n";
    if ($f = find_in_path('spip_admin_perso.css')) {
        $css .= "<link rel='stylesheet' href='" . protocole_implicite(url_absolue(direction_css($f))) . "' type='text/css' />\n";
    }
    ($pos = stripos($contenu, '</head>')) || ($pos = stripos($contenu, '<body>')) || ($pos = 0);
    $contenu = substr_replace($contenu, $css, $pos, 0);
    // Inserer la balise #FORMULAIRE_ADMIN, en float
    $boutons_admin = inclure_balise_dynamique(balise_FORMULAIRE_ADMIN_dyn('spip-admin-float'), false);
    ($pos = strripos($contenu, '</body>')) || ($pos = strripos($contenu, '</html>')) || ($pos = strlen($contenu));
    $contenu = substr_replace($contenu, $boutons_admin, $pos, 0);
    return $contenu;
}
function html_6df0ecfade86092ec8be1bb468d967e1($Cache, $Pile, $doublons = array(), $Numrows = array(), $SP = 0)
{
    if (isset($Pile[0]["doublons"]) and is_array($Pile[0]["doublons"])) {
        $doublons = nettoyer_env_doublons($Pile[0]["doublons"]);
    }
    $connect = '';
    $page = '
	' . (($t1 = strval(direction_css(find_in_path('spip_style.css')))) !== '' ? '<link rel="stylesheet" href="' . $t1 . '" type="text/css" media="all" />' : '') . '
	' . (($t1 = strval(direction_css(find_in_path('spip_formulaires.css')))) !== '' ? '<link rel="stylesheet" href="' . $t1 . '" type="text/css" media="projection, screen, tv" />' : '') . '
	' . (($t1 = strval(direction_css(find_in_path('styles/base.css')))) !== '' ? '<link rel="stylesheet" href="' . $t1 . '" type="text/css" media="projection, screen, tv" />' : '') . '
	' . (($t1 = strval(find_in_path('styles/alter.css'))) !== '' ? '<link rel="stylesheet" href="' . $t1 . '" type="text/css" media="projection, screen, tv" />' : '') . '
	' . (($t1 = strval(find_in_path('styles/habillages.css'))) !== '' ? '<link rel="stylesheet" href="' . $t1 . '" type="text/css" media="projection, screen, tv" />' : '') . '
	' . (($t1 = strval(find_in_path('styles/perso.css'))) !== '' ? '<link rel="stylesheet" href="' . $t1 . '" type="text/css" media="projection, screen, tv" />' : '') . '
	' . (($t1 = strval(find_in_path('styles/color.css'))) !== '' ? '<link rel="stylesheet" href="' . $t1 . '" type="text/css" media="projection, screen, tv" />' : '') . '
	' . (($t1 = strval(direction_css(find_in_path('styles/print.css')))) !== '' ? '<link rel="stylesheet" href="' . spip_htmlspecialchars(sinon($GLOBALS['meta']['adresse_site'], '.')) . '/' . $t1 . '" type="text/css" media="print" />' : '') . '


' . '<' . '?php header("X-Spip-Filtre: insert_head_css_conditionnel"); ?' . '>' . pipeline('insert_head', '<!-- insert_head -->') . '
' . (($t1 = strval(find_in_path('js/base.js'))) !== '' ? '<script src="' . spip_htmlspecialchars(sinon($GLOBALS['meta']['adresse_site'], '.')) . '/' . $t1 . '"  type="text/javascript"></script>' : '') . '
' . (($t1 = strval(find_in_path('js/perso.js'))) !== '' ? '<script src="' . spip_htmlspecialchars(sinon($GLOBALS['meta']['adresse_site'], '.')) . '/' . $t1 . '"  type="text/javascript"></script>' : '') . '
	


<!--[if lte IE 6]>
	<style>
		#menu-rubriques a, #extra a { height: 1em; }
		#menu-rubriques li, #extra li { height: 1em; float: left; clear: both;width: 100%; }
	</style>
<![endif]-->

<!--[if IE]>
	<style>
		body * {zoom:1}
		#menu-principal *,
		#bloc-contenu * {zoom: 0}
		#menu-rubriques li { clear: none;}
	</style>
<![endif]-->

' . BOUCLE_polices_webfontshtml_6df0ecfade86092ec8be1bb468d967e1($Cache, $Pile, $doublons, $Numrows, $SP);
    return analyse_resultat_skel('html_6df0ecfade86092ec8be1bb468d967e1', $Cache, $page, 'squelettes/styles.html');
}
예제 #7
0
function mediabox_insert_head_css($flux) {
	$config = mediabox_config();
	if ($config['active'] == 'oui' and $f = find_in_path((test_espace_prive() ? "prive/" : "") . "colorbox/" . $config['skin'] . '/colorbox.css')) {
		$flux .= '<link rel="stylesheet" href="' . direction_css($f) . '" type="text/css" media="all" />';
		/**
		 * Initialiser la config de la mediabox
		 */
		$configmediabox = '<script type="text/javascript">/* <![CDATA[ */
var box_settings = {tt_img:' . ($config['traiter_toutes_images'] == 'oui' ? 'true' : 'false')
			. ',sel_g:"' . $config['selecteur_galerie']
			. '",sel_c:"' . $config['selecteur_commun']
			. '",trans:"' . $config['transition']
			. '",speed:"' . $config['speed']
			. '",ssSpeed:"' . $config['slideshow_speed']
			. '",maxW:"' . $config['maxWidth']
			. '",maxH:"' . $config['maxHeight']
			. '",minW:"' . $config['minWidth']
			. '",minH:"' . $config['minHeight']
			. '",opa:"' . $config['opacite']
			. '",str_ssStart:"' . unicode2charset(html2unicode(_T('mediabox:boxstr_slideshowStart')))
			. '",str_ssStop:"' . unicode2charset(html2unicode(_T('mediabox:boxstr_slideshowStop')))
			. '",str_cur:"' . _T('mediabox:boxstr_current', array('current' => '{current}', 'total' => '{total}'))
			. '",str_prev:"' . _T('mediabox:boxstr_previous')
			. '",str_next:"' . _T('mediabox:boxstr_next')
			. '",str_close:"' . _T('mediabox:boxstr_close')
			. '",splash_url:"' . $config['splash_url']
			. '"};' . "\n";
		// Si c'est une image, on la chargera avec une redimentionnement automatique
		// Sinon, chargement dans une iframe
		$extension = pathinfo($config['splash_url'], PATHINFO_EXTENSION);
		if (match($extension, 'gif|png|jpg|jpeg')) {
			$configmediabox .= 'var box_settings_iframe = false;' . "\n";
		} else {
			$configmediabox .= 'var box_settings_splash_width = "' . $config['splash_width'] . '";
var box_settings_splash_height = "' . $config['splash_height'] . '";' . "\n";
			$configmediabox .= 'var box_settings_iframe = true;' . "\n";
		}
		$flux = $configmediabox . '/* ]]> */</script>' . "\n" . $flux;
	}

	return $flux;
}
예제 #8
0
/**
 * http://doc.spip.org/@install_debut_html
 *
 * @param string $titre
 * @param string $onLoad
 * @param bool $all_inline
 *   inliner les css et js dans la page (limiter le nombre de hits)
 * @return string
 */
function install_debut_html($titre = 'AUTO', $onLoad = '', $all_inline = false)
{
    global $spip_lang_right, $spip_lang_left;
    utiliser_langue_visiteur();
    http_no_cache();
    if ($titre == 'AUTO') {
        $titre = _T('info_installation_systeme_publication');
    }
    # le charset est en utf-8, pour recuperer le nom comme il faut
    # lors de l'installation
    if (!headers_sent()) {
        header('Content-Type: text/html; charset=utf-8');
    }
    $css = "";
    $files = array('reset.css', 'clear.css', 'minipres.css');
    if ($all_inline) {
        // inliner les CSS (optimisation de la page minipres qui passe en un seul hit a la demande)
        foreach ($files as $name) {
            $file = direction_css(find_in_theme($name));
            if (function_exists("compacte")) {
                $file = compacte($file);
            } else {
                $file = url_absolue_css($file);
            }
            // precaution
            lire_fichier($file, $c);
            $css .= $c;
        }
        $css = "<style type='text/css'>" . $css . "</style>";
    } else {
        foreach ($files as $name) {
            $file = direction_css(find_in_theme($name));
            $css .= "<link rel='stylesheet' href='{$file}' type='text/css' />\n";
        }
    }
    // au cas ou minipres() est appele avant spip_initialisation_suite()
    if (!defined('_DOCTYPE_ECRIRE')) {
        define('_DOCTYPE_ECRIRE', '');
    }
    return _DOCTYPE_ECRIRE . html_lang_attributes() . "<head>\n" . "<title>" . textebrut($titre) . "</title>\n" . "<meta name='viewport' content='width=device-width' />\n" . $css . "</head>\n<body" . $onLoad . " class='minipres'>\n\t<div id='minipres'>\n\t<h1>" . $titre . "</h1>\n\t<div>\n";
}
예제 #9
0
function direction_css($css, $voulue = '')
{
    if (!preg_match(',(_rtl)?\\.css$,i', $css, $r)) {
        return $css;
    }
    // si on a precise le sens voulu en argument, le prendre en compte
    if ($voulue = strtolower($voulue)) {
        if ($voulue != 'rtl' and $voulue != 'ltr') {
            $voulue = lang_dir($voulue);
        }
    } else {
        $voulue = lang_dir();
    }
    $r = count($r) > 1;
    $right = $r ? 'left' : 'right';
    // 'right' de la css lue en entree
    $dir = $r ? 'rtl' : 'ltr';
    $ndir = $r ? 'ltr' : 'rtl';
    if ($voulue == $dir) {
        return $css;
    }
    if (preg_match(",^http:,i", $css) or ($p = strpos($css, '?')) !== FALSE) {
        $distant = true;
        $cssf = parse_url($css);
        $cssf = $cssf['path'] . ($cssf['query'] ? "?" . $cssf['query'] : "");
        $cssf = preg_replace(',[?:&=],', "_", $cssf);
    } else {
        $distant = false;
        $cssf = $css;
        // 1. regarder d'abord si un fichier avec la bonne direction n'est pas aussi
        //propose (rien a faire dans ce cas)
        $f = preg_replace(',(_rtl)?\\.css$,i', '_' . $ndir . '.css', $css);
        if (@file_exists($f)) {
            return $f;
        }
    }
    // 2.
    $dir_var = sous_repertoire(_DIR_VAR, 'cache-css');
    $f = $dir_var . preg_replace(',.*/(.*?)(_rtl)?\\.css,', '\\1', $cssf) . '.' . substr(md5($cssf), 0, 4) . '_' . $ndir . '.css';
    // la css peut etre distante (url absolue !)
    if ($distant) {
        include_spip('inc/distant');
        $contenu = recuperer_page($css);
        if (!$contenu) {
            return $css;
        }
    } else {
        if (@filemtime($f) > @filemtime($css) and _VAR_MODE != 'recalcul') {
            return $f;
        }
        if (!lire_fichier($css, $contenu)) {
            return $css;
        }
    }
    $contenu = str_replace(array('right', 'left', '@@@@L E F T@@@@'), array('@@@@L E F T@@@@', 'right', 'left'), $contenu);
    // reperer les @import auxquels il faut propager le direction_css
    preg_match_all(",\\@import\\s*url\\s*\\(\\s*['\"]?([^'\"/][^:]*)['\"]?\\s*\\),Uims", $contenu, $regs);
    $src = array();
    $src_direction_css = array();
    $src_faux_abs = array();
    $d = dirname($css);
    foreach ($regs[1] as $k => $import_css) {
        $css_direction = direction_css("{$d}/{$import_css}", $voulue);
        // si la css_direction est dans le meme path que la css d'origine, on tronque le path, elle sera passee en absolue
        if (substr($css_direction, 0, strlen($d) + 1) == "{$d}/") {
            $css_direction = substr($css_direction, strlen($d) + 1);
        } elseif (substr($css_direction, 0, strlen($dir_var)) == $dir_var) {
            $css_direction = substr($css_direction, strlen($dir_var));
            $src_faux_abs["/@@@@@@/" . $css_direction] = $css_direction;
            $css_direction = "/@@@@@@/" . $css_direction;
        }
        $src[] = $regs[0][$k];
        $src_direction_css[] = str_replace($import_css, $css_direction, $regs[0][$k]);
    }
    $contenu = str_replace($src, $src_direction_css, $contenu);
    $contenu = urls_absolues_css($contenu, $css);
    // virer les fausses url absolues que l'on a mis dans les import
    if (count($src_faux_abs)) {
        $contenu = str_replace(array_keys($src_faux_abs), $src_faux_abs, $contenu);
    }
    if (!ecrire_fichier($f, $contenu)) {
        return $css;
    }
    return $f;
}
/**
 * Ajoute les scripts css et js nécessaires aux crayons dans le code HTML
 *
 * @uses crayons_var2js()
 *
 * @param string $page
 *     Code HTML de la page complète ou du header seulement
 * @param string $droits
 *     - Liste de css définissant les champs crayonnables
 *       (séparés par virgule) dont l'édition est autorisée
 *     - "*" si tous sont autorisés
 * @param array $wdgcfg
 *     Description de la configuration des crayons (attribut => valeur)
 * @param string $mode
 *     - page : toute la page est présente dans `$page`
 *     - head : seul le header est présent dans `$page`
 * @return
**/
function &Crayons_preparer_page(&$page, $droits, $wdgcfg = array(), $mode = 'page')
{
    /**
     * Si pas forcer_lang, on charge le contrôleur dans la langue que l'utilisateur a dans le privé
     */
    if (!isset($GLOBALS['forcer_lang']) or !$GLOBALS['forcer_lang'] or $GLOBALS['forcer_lang'] === 'non') {
        lang_select($GLOBALS['auteur_session']['lang']);
    }
    $jsFile = generer_url_public('crayons.js');
    if (_DEBUG_CRAYONS) {
        $jsFile = parametre_url($jsFile, 'debug_crayons', 1, '&');
    }
    include_spip('inc/filtres');
    // rien que pour direction_css() :(
    $cssFile = direction_css(find_in_path('crayons.css'));
    $config = crayons_var2js(array('imgPath' => dirname(find_in_path('images/crayon.png')), 'droits' => $droits, 'dir_racine' => _DIR_RACINE, 'self' => self('&'), 'txt' => array('error' => _U('crayons:svp_copier_coller'), 'sauvegarder' => $wdgcfg['msgAbandon'] ? _U('crayons:sauvegarder') : ''), 'img' => array('searching' => array('txt' => _U('crayons:veuillez_patienter')), 'crayon' => array('txt' => _U('crayons:editer')), 'edit' => array('txt' => _U('crayons:editer_tout')), 'img-changed' => array('txt' => _U('crayons:deja_modifie'))), 'cfg' => $wdgcfg));
    // Est-ce que PortePlume est la ?
    $meta_crayon = isset($GLOBALS['meta']['crayons']) ? unserialize($GLOBALS['meta']['crayons']) : array();
    $pp = '';
    if (isset($meta_crayon['barretypo']) && $meta_crayon['barretypo']) {
        if (function_exists('chercher_filtre') and $f = chercher_filtre('info_plugin') and $f('PORTE_PLUME', 'est_actif')) {
            $pp = <<<EOF
cQuery(function() {
\tif (typeof onAjaxLoad == 'function') {
\t\tfunction barrebouilles_crayons() {
\t\t\t\$('.formulaire_crayon textarea.crayon-active')
\t\t\t.barre_outils('edition');
\t\t}
\t\tonAjaxLoad(barrebouilles_crayons);
\t}
});
EOF;
        }
    }
    $incCSS = "<link rel=\"stylesheet\" href=\"{$cssFile}\" type=\"text/css\" media=\"all\" />";
    $incJS = <<<EOH
<script type="text/javascript">/* <![CDATA[ */
var configCrayons;
function startCrayons() {
\tconfigCrayons = new cQuery.prototype.cfgCrayons({$config});
\tcQuery.fn.crayonsstart();
{$pp}
}
var cr = document.createElement('script');
cr.type = 'text/javascript'; cr.async = true;
cr.src = '{$jsFile}&callback=startCrayons';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(cr, s);
/* ]]> */</script>

EOH;
    if ($mode == 'head') {
        //js inline avant les css, sinon ca bloque le chargement
        $page = $page . $incJS . $incCSS;
        return $page;
    }
    $pos_head = strpos($page, '</head>');
    if ($pos_head === false) {
        return $page;
    }
    // js inline avant la premiere css, ou sinon avant la fin du head
    $pos_link = strpos($page, '<link ');
    if (!$pos_link) {
        $pos_link = $pos_head;
    }
    $page = substr_replace($page, $incJS, $pos_link, 0);
    // css avant la fin du head
    $pos_head = strpos($page, '</head>');
    $page = substr_replace($page, $incCSS, $pos_head, 0);
    return $page;
}
예제 #11
0
/**
 * Ajoute les css pour d3js chargées dans le public
 * 
 * @param string $flux Contenu du head HTML concernant les CSS
 * @return string       Contenu du head HTML concernant les CSS
**/
function d3js_insert_head_css($flux)
{
    $css = find_in_path('css/d3js.css');
    $flux .= '<link rel="stylesheet" href="' . direction_css($css) . '" type="text/css" media="all" />';
    return $flux;
}
예제 #12
0
/**
 * Ajout des CSS du porte-plume au head public
 *
 * Appelé aussi depuis le privé avec $prive à true.
 * 
 * @pipeline insert_head_css
 * @param string $flux  Contenu du head
 * @param  bool  $prive Est-ce pour l'espace privé ?
 * @return string Contenu du head complété
 */
function porte_plume_insert_head_css($flux = '', $prive = false)
{
    include_spip('inc/autoriser');
    // toujours autoriser pour le prive.
    if ($prive or autoriser('afficher_public', 'porteplume')) {
        if ($prive) {
            $cssprive = find_in_path('css/barre_outils_prive.css');
            $flux .= "<link rel='stylesheet' type='text/css' media='all' href='{$cssprive}' />\n";
        }
        $css = direction_css(find_in_path('css/barre_outils.css'), lang_dir());
        $css_icones = generer_url_public('barre_outils_icones.css');
        if (defined('_VAR_MODE') and _VAR_MODE == "recalcul") {
            $css_icones = parametre_url($css_icones, 'var_mode', 'recalcul');
        }
        $flux .= "<link rel='stylesheet' type='text/css' media='all' href='{$css}' />\n" . "<link rel='stylesheet' type='text/css' media='all' href='{$css_icones}' />\n";
    }
    return $flux;
}
예제 #13
0
function nuage_insert_head($flux) {
	$css = "\n<link rel=\"stylesheet\" href=\"" .
    direction_css(find_in_path('nuage.css')) .
    "\" type=\"text/css\" media=\"all\" />\n";
	return $css.$flux;
}
예제 #14
0
function cs_header_hit(&$flux, $type, $suffixe='') {
	$f = "header$suffixe.$type";
	$nom = sous_repertoire(_DIR_VAR,'couteau-suisse') . $f;
	$tmp = _DIR_CS_TMP . $f;
	if(!file_exists($tmp) || !file_exists($nom) || $GLOBALS['var_mode']=='recalcul') {
		if (lire_fichier(_DIR_CS_TMP."header.$type.html", $t) && strlen($t)) {
			if(strpos($t, '<cs_html>')!==false)
				$t = preg_replace_callback(',<cs_html>(.*)</cs_html>,Ums', 'cs_compile_header_callback', $t);
			ecrire_fichier($nom, $t, true);
			ecrire_fichier($tmp, $t, true);
		} else {
			if(defined('_LOG_CS')) cs_log(" -- fichier $fo illisible. hit non construit");
			return;
		}
	}
	switch($type) {
		case 'js': $flux .= '<script src="'.$nom.'" type="text/javascript"></script>'; break;
		case 'css': include_spip('inc/filtres');
			$flux .= '<link rel="stylesheet" href="'.direction_css($nom).'" type="text/css" media="all" />'; break;
	}
}