SPIP: afficher le fichier css selectionné

SPIP: afficher le fichier css selectionné - HTML/CSS - Programmation

Marsh Posté le 02-02-2011 à 19:26:10    

Bonjour,
j'ai conçu un plugin qui affiche le contenu d'un site sous spip2 en version smartphone
jusqu'à maintenant les différents habillages ou couleurs de thème, étaient charger en plugin par couleur.
 
l'idée m'est venue de regrouper tous les habillages possibles en un seul et même plugin et de sélectionner le thème sur un panneau de configuration (cfg). mais ça ne fonctionne pas. je débute en php/js, et je ne trouve pas de solution.
 
en config, j'ai ce script:  
<form method="post">[(#ENV{_cfg_}|form_hidden)]
<fieldset><legend>S&eacute;lectionner la couleur</legend>
   <br />
   <input type="radio" name="color" value="bleu"[ checked="(#ENV{color}|=={bleu}|?{checked})"]/>
   <label><img src='#CHEMIN{img_bleu/iTwX_27.png}' style='vertical-align: text-bottom;'/>
    Bleu</label>
   <br /><br />
   <input type="radio" name="color" value="nb"[ checked="(#ENV{color}|=={nb}|?{checked})"]/>
   <label><img src='#CHEMIN{img_nb/iTwX_NB27.png}' style='vertical-align: text-bottom;'/>
   Noir &amp; Blanc</label>
   <br /><br />
   <input type="radio" name="color" value="vert" [ checked="(#ENV{color}|=={vert}|?{checked})"]/>
   <label><img src='#CHEMIN{img_vert/iTwX_V27.png}' style='vertical-align: text-bottom;'/>
   Vert</label>  
   <br /><br />
   <input type="radio" name="color" value="mauve" [ checked="(#ENV{color}|=={mauve}|?{checked})"]/>
   <label><img src='#CHEMIN{img_mauve/iTwX_M27.png}' style='vertical-align: text-bottom;'/>
   Mauve</label>  
   <br /><br />
</fieldset><br />
<input type="submit" name="_cfg_ok" value="<:OK:>" />
</form>

 
le choix du css se fait ainsi sur un fichier nommé itwx_css.php:
<?php
// prefix avec le nom du plugin + _ + action = itwx_mobile_3_00_nb_css
function itwx_mobile_3_00_christ_nb_css($flux)
{
 $page = _request('page') ;
 if (substr($page,0,7) == 'bberry_') {
  $color = lire_config('itwx/color') ;
  switch ($color) {
   case 'nb':
    $flux .= '<link rel="stylesheet" href="'.url_absolue(find_in_path('nb.css')).'" type="text/css" media="projection, screen, tv" />';
    break ;
   case 'vert':
    $flux .= '<link rel="stylesheet" href="'.url_absolue(find_in_path('vert.css')).'" type="text/css" media="projection, screen, tv" />';
    break ;
   case 'mauve':
    $flux .= '<link rel="stylesheet" href="'.url_absolue(find_in_path('mauve.css')).'" type="text/css" media="projection, screen, tv" />';
    break ;
   default:
    $flux .= '<link rel="stylesheet" href="'.url_absolue(find_in_path('bleu.css')).'" type="text/css" media="projection, screen, tv" />';
  }
 }
 return $flux;
}
?>

 
et la fonction sur plugin.xml est appelé ainsi:
<pipeline>
  <nom>insert_head_css</nom>
  <action>nb_css</action>
  <inclure>itwx_css.php</inclure>
 </pipeline>

 
j'ai l'impression qu'il manque un lien entre la valeur choisie en cfg, et function..  
sinon où est le problème?..
 
quelqu'un a une idée?
 

Reply

Marsh Posté le 02-02-2011 à 19:26:10   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed