Changeset 32373 in spip-zone


Ignore:
Timestamp:
Oct 25, 2009, 10:50:30 PM (11 years ago)
Author:
prigent.yohann@…
Message:

un filtre direction_css_intelligente qui prends la langue dans la css

Location:
_squelettes_/soyezcreateurs_net/plugins_2.0/plugins/__soyezcreateurs
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _squelettes_/soyezcreateurs_net/plugins_2.0/plugins/__soyezcreateurs/noisettes/header/header.html

    r32307 r32373  
    1111[<meta name="description" content="(#ENV{metadescription,[(#DESCRIPTIF_SITE_SPIP|supprimer_tags|attribut_html)]})" />]
    1212<meta name="generator" content="SPIP [(#SPIP_VERSION|attribut_html)]" />
    13 [(#ENV{noindex}|?{'<meta name="robots" content="noindex" />',
     13[(#ENV{noindex}|?{'<meta name="robots" content="noindex, nofollow" />',
    1414[(#CONFIG{soyezcreateurs_google/indexation,oui}|=={oui}|?{'<meta name="robots" content="index,follow" />','<meta name="robots" content="noindex, nofollow" />'})]
    1515})]
     
    4545                ][(#ENV{template}|=={'Sommaire'}|oui)[(#INCLURE{fond=noisettes/header/layout}{layoutgala=#CONFIG{soyezcreateurs_layout/sommaire_layout,7}})]][(#ENV{template}|=={'Sommaire'}|non)[(#INCLURE{fond=noisettes/header/layout}{layoutgala=#CONFIG{soyezcreateurs_layout/default_layout,7}})]]<//B_RubLayout>[(#REM) Fin de la recherche d'une rubrique
    4646        ]<//B_ArtRubLayout>
    47 [<link rel="stylesheet" type="text/css" href="(#URL_PAGE{stylessoyezcreateurs.css})" media="all" />]
     47[<link rel="stylesheet" type="text/css" href="(#URL_PAGE{stylessoyezcreateurs.css}|direction_css_intelligente{'','spip'})" media="all" />]
    4848[(#ENV{template}|=={'Sommaire'}|oui)[(#CONFIG{soyezcreateurs/mode_affichage,edito}|match{^portail.*}|oui)<link rel="stylesheet" type="text/css" href="#URL_PAGE{stylesportail.css}" media="screen, print" />]]
    4949[(#INCLURE{fond=noisettes/presentation/couleurrubrique}{id_article}{id_rubrique})]
  • _squelettes_/soyezcreateurs_net/plugins_2.0/plugins/__soyezcreateurs/soyezcreateurs_fonctions.php

    r31319 r32373  
    656656        return "";
    657657}
     658
     659function direction_css_intelligente ($css, $voulue='', $type_css='none') {
     660        if (!preg_match(',(_rtl)?\.css$,i', $css, $r)) return $css;
     661
     662        // si on a precise le sens voulu en argument, le prendre en compte
     663        if ($voulue = strtolower($voulue)) {
     664                if ($voulue != 'rtl' AND $voulue != 'ltr')
     665                        $voulue = lang_dir($voulue);
     666        }
     667        else
     668                $voulue =  lang_dir();
     669
     670        $r = count($r) > 1;
     671        $right = $r ? 'left' : 'right'; // 'right' de la css lue en entree
     672        $dir = $r ? 'rtl' : 'ltr';
     673        $ndir = $r ? 'ltr' : 'rtl';
     674
     675        if ($voulue == $dir)
     676                return $css;
     677
     678        // 1.
     679        $f = preg_replace(',(_rtl)?\.css$,i', '_'.$ndir.'.css', $css);
     680        if (@file_exists($f))
     681                return $f;
     682
     683        // 2.
     684        $dir_var = sous_repertoire (_DIR_VAR, 'cache-css');
     685        $f = $dir_var
     686                . preg_replace(',.*/(.*?)(_rtl)?\.css,', '\1', $css)
     687                . '.' . substr(md5($css), 0,4) . '_' . $ndir . '.css';
     688
     689        // la css peut etre distante (url absolue !)
     690        if (preg_match(",^http:,i",$css)){
     691                include_spip('inc/distant');
     692                // cas des css dynamiques en SPIP
     693                if ($type_css = 'spip')
     694                        $contenu = recuperer_page($css.'&lang='.$GLOBALS['lang']);
     695                else
     696                        $contenu = recuperer_page($css);
     697                if (!$contenu) return $css;
     698        }
     699        else {
     700                if ((@filemtime($f) > @filemtime($css))
     701                        AND ($GLOBALS['var_mode'] != 'recalcul'))
     702                        return $f;
     703                if ($contenu = recuperer_fond($css))
     704                        return $css;
     705        }
     706       
     707        if (strstr($f, '?'))
     708                $f = str_replace('?', '_', $f);
     709
     710        $contenu = str_replace(
     711                array('right', 'left', '@@@@L E F T@@@@'),
     712                array('@@@@L E F T@@@@', 'right', 'left'),
     713                $contenu);
     714       
     715        // reperer les @import auxquels il faut propager le direction_css
     716        preg_match_all(",\@import\s*url\s*\(\s*['\"]?([^'\"/][^:]*)['\"]?\s*\),Uims",$contenu,$regs);
     717        $src = array();$src_direction_css = array();$src_faux_abs=array();
     718        $d = dirname($css);
     719        foreach($regs[1] as $k=>$import_css){
     720                $css_direction = direction_css("$d/$import_css",$voulue);
     721                // si la css_direction est dans le meme path que la css d'origine, on tronque le path, elle sera passee en absolue
     722                if (substr($css_direction,0,strlen($d)+1)=="$d/") $css_direction = substr($css_direction,strlen($d)+1);
     723                // si la css_direction commence par $dir_var on la fait passer pour une absolue
     724                elseif (substr($css_direction,0,strlen($dir_var))==$dir_var) {
     725                        $css_direction = substr($css_direction,strlen($dir_var));
     726                        $src_faux_abs["/@@@@@@/".$css_direction] = $css_direction;
     727                        $css_direction = "/@@@@@@/".$css_direction;
     728                }
     729                $src[] = $regs[0][$k];
     730                $src_direction_css[] = str_replace($import_css,$css_direction,$regs[0][$k]);
     731        }
     732        $contenu = str_replace($src,$src_direction_css,$contenu);
     733
     734        $contenu = urls_absolues_css($contenu, $css);
     735
     736        // virer les fausses url absolues que l'on a mis dans les import
     737        if (count($src_faux_abs))
     738                $contenu = str_replace(array_keys($src_faux_abs),$src_faux_abs,$contenu);
     739
     740        if (!ecrire_fichier($f, $contenu))
     741                return $css;
     742
     743        return $f;
     744}
     745
    658746?>
  • _squelettes_/soyezcreateurs_net/plugins_2.0/plugins/__soyezcreateurs/stylessoyezcreateurs.css.html

    r32285 r32373  
    55[(#REM) Recuperation des CSS par defaut de SPIP ]
    66[(#INCLURE{#CHEMIN{spip_style.css}|url_absolue_css}|compacte_css)]
     7
    78/* layout */
    89
     
    677678[(#CHEMIN{images/stylessoyezcreateurs_perso_rtl.css}|?{'/* Surcharge eventuelle en RTL */'})
    678679[(#INCLURE{#CHEMIN{images/stylessoyezcreateurs_perso_rtl.css}|url_absolue_css}|compacte_css)]
    679 ]]]
     680]]
Note: See TracChangeset for help on using the changeset viewer.