Oui, pourquoi pas...
dans le head de tous les document je met une include php
<?php
include ('chemin_relatif/include/switch_style.php')
?>
j'ai donc un dossier include, avec deux fichiers :
. switch_style.php
<?php
$nom_style='fond_blanc';
include ('link_style.php');
?>
. link_style.php
<link rel="stylesheet" type="text/css" media="screen, projection" href="/chemin_vers_dossiers_style/<?php echo $nom_style; ?>/style.css" />
<!--[if IE]>
<link rel="stylesheet" type="text/css" media="screen" href="/chemin_vers_dossiers_style/<?php echo $nom_style; ?>/pour_IE.css" />
<![endif]-->
<!--[if lt IE 7]>
<link rel="stylesheet" type="text/css" media="screen" href="/chemin_vers_dossiers_style/<?php echo $nom_style; ?>/pour_ltIE7.css" />
<![endif]-->
J'ai par ailleurs les différents dossiers fond_blanc, fond rouge, fond_bleu comprenant les fichiers css style.css, pour_IE.css, pour_ltIE7.css
Enfin, dans une page styleswitcher.php j'ai le formulaire suivant, je l'ai piqué à Olivier :
<div id="style_switcher">
<form method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
<fieldset>
<legend>Choisissez un style de page</legend>
<select name="style">
<option value="fond_blanc" selected="selected">Fond blanc</option>
<option value="fond_rouge">Fond rouge</option>
<option value="fond_bleu">Fond bleu</option>
</select>
<input type="submit" name="change_style" value="Changer le style" />
</fieldset>
</form>
</div>
Auquel j'associe le traitement php
<?php
if(isset($_POST['change_style']))
// On vérifie que le formulaire a été soumis
{
if(isset($_POST['style'])) {
$new_style=$_POST['style'];
$new_style_link=fopen("include/switch_style.php","w+");
/* On remplit ce fichier ligne par ligne, l'astuce c'est qu'il est très court ! */
fputs($new_style_link,"<?php \n");
fputs($new_style_link,"$"."nom_style=".$new_style."; \n");
fputs($new_style_link,"?> \n");
fputs($new_style_link,"<?php \n");
fputs($new_style_link,"include ('link_style.php'); \n");
fputs($new_style_link,"?> \n");
fclose($new_style_link);
echo '<p><strong>Le style '.$new_style.' est maintenant prêt, pour voir le résultat cliquez ici : <a href="styleswitcher.php">nouveau design</strong></a></p>';
}
}
?>
Voilà, le dernier paragraphe généré par echo c'est parce que le changement de code source ne se produit pas directement après le traitement php. Il faut encore un rafraichissement de la page, pas compris pourquoi.
mais le sujet n'est pas là. Ce ne peut être finalement qu'une petite fantaisie pour un éventuel administrateur de site et pas du tout une fonctionalité personnalisée pour un visiteur.