Bonjour,
A ce propos, Bobby me demande de préciser clairement une solution alternative (CSS ou pas). J'avais installé pour BIOSPIP XL sous SPIP 1.8b2 un sélecteur dans le menu access de l'entete
<form id="choisir_style" action="biospip/changestyle.php3" method="post"
title="voir le site sans style CSS ou avec un style CSS adapté à votre handicap">
<div>
<input id="redirect_hiden" tabindex="21" type="hidden" name="redirect"
value="<? echo urlencode($_SERVER['REQUEST_URI']); ?>" />
<label accesskey="S" for="css" title="<:choisir_style:>"><:choisir_style:> : </label>
<select tabindex="24" id="css" name="css" title="<:choisir_habillage:>">
<option value="biospip" <? if ($css=="biospip")
{echo 'selected="selected"';} ?>><:css_standard:></option>
<option value="biospip_blue" <? if ($css=="biospip_blue")
{echo 'selected="selected"';} ?>><:css_standard_blue:></option>
<option value="biospip_green" <? if ($css=="biospip_green")
{echo 'selected="selected"';} ?>><:css_standard_green:></option>
<option value="none" <? if ($css=="none")
{echo 'selected="selected"';} ?>><:css_none:></option>
</select>
<input accesskey="V" tabindex="41" id="ok_style" class="boutons"
name="ok_style" type="submit" value="ok" title="<:choisir_style:>" />
</div>
</form>
qui me permettait de proposer différent style CSS ou une version associée à une feuille de style vide (none.css) a l'aide de changestyle.php3
<?php
// this code is released under the GNU GPL v2 licence
// (c) chryjs @ tunecity . net
if ( empty($_POST["redirect"]) )
{ $redirect="/"; }
else { $redirect=urldecode($_POST["redirect"]); }
$css=$_POST["css"];
switch ($css)
{
case "biospip" :
case "biospip_blue" :
case "biospip_green" :
case "none" :
setcookie("css",$_POST["css"], time()+3600,"/");
break;
default :
setcookie("css","biospip", time()+3600,"/");
}
@Header("Location: ".$redirect);
?>
qui fonctionnait bien avec dans le head de chaque page,
<!-- select_style-start -->
<link rel="stylesheet" type="text/css" href="biospip/biocss/<? echo $css; ?>.css"
media="screen, print" title="<? echo $css ?>" />
<link rel="alternate stylesheet" type="text/css" href="biospip/biocss/biospip.css"
media="screen, print" title="<:css_standard:>" />
<link rel="alternate stylesheet" type="text/css" href="biospip/biocss/biospip_blue.css"
media="screen, print" title="<:css_standard_blue:>" />
<link rel="alternate stylesheet" type="text/css" href="biospip/biocss/biospip_green.css"
media="screen, print" title="<:css_standard_green:>" />
<link rel="alternate stylesheet" type="text/css" href="biospip/biocss/none.css"
media="screen, print" title="<:css_none:>" />
et bien sûr avant toute déclaration :
<?php include ("biospip/inc-css-cookie.php3"); ?>
et sa source (inc-css-cookie.php3) :
<?
// this code is released under the GNU GPL v2 licence - (c) chryjs at tunecity point net
GLOBAL $css;
if (empty($_COOKIE["css"]) ) {
$css="biospip"; } // $css="nomdelacsspardefaut";
else {$css=$_COOKIE["css"];
}
?>
Le coté pratique pour ceux qui n'utilise pas les navigateurs qui permettent de sélectionner les feuilles de styles alternatives c'est que chaque choix validé remplacait le cookie "css" posé par défault.
Mais c'est à double tranchant, car quand j'appelle "sans style", j'appelle en fait la page avec un style vide que bobby reconnait comme un style css.
Comment modifier le script pour garder les avantages des 2 méthodes ou comment à partir de ton js proposer dans mon menu access du top un lien vers this.page
sans CSS (meme sans cookie, tant pis) ?