Pages :
(reprise du message précédent)

Ok merci ça c'est une bonne nouvelle. Smiley biggrin

J'ai une dernière question.

Est-ce que les cookies générés avec ce code sont valables d'une page à l'autre sans avoir besoin à chaque page différente de devoir spécifié quel style je veux ? Car si j'enlève les boutons <form> sur ma page "webmaster" ou "affichage" par exemple et ne met que le code PHP au-dessus et la balise link avec le petit code, mon style reste sur la position par défaut, même si j'ai spécifié un autre style sur la page d'accueil d'avant... Smiley ohwell

Y'a pt'être une merdouille dans mon code je sais pas.

EDIT : Ok non c'est bon, y'avait bien une merdouille dans mon code, ca marche maintenant Smiley biggrin



Juste une préçision, sur une autre façon de faire. Je crois d'ailleurs que ça ressemble un peu à ce que propose le tuto de Alsa. (je me demande d'ailleurs concretement quels sont les avantages/inconveniants - dans le classement je suppose - entre ces 2 méthodes).

Ici donc, 1 fichier "styles" et toutes nos css diféérents dedans.

Si vous voulez plutôt avoir des fichiers css séparés par dossiers (1 feuille de style par dossier) vous devez nommés vos fichiers css tous exactement de la même façon "style.css" par exemple. Vos dossiers par contre vous les nommez comme bon vous semble.

Et vous remplacez cette partie du code :

<?PHP

if(isset($_POST['changer_style']))

// On vérifie que le formulaire a été soumis
{
	[#red]if(file_exists("./styles/".$_POST['style'].".css"))[/#]
	{
		// On fait un cookie d'une année de durée pour garder en mémoire le style choisi et le récupérer à la prochaine visite
		setcookie('style', $_POST['style'], time()+(365*24*3600));
		// Si le fichier *.css existe on définit une variable $css correspondant au style choisi
		$css = $_POST['style'];
	}
}
elseif(isset($_COOKIE['style']))
// Si le formulaire n'a pas été soumis, on vérifie si le cookie style existe et si tel est le cas on définit une variable $css correspondant à ce style
{
	$css = $_COOKIE['style'];
}	
else
// Si le cookie n'existe pas et que le formulaire n'a pas été soumis, on définit une variable $css correspondant au style par défaut, ici un_style.css par exemple
{
	$css = "clair";
}

?>


par

if(file_exists("./".$_POST['style']."/style.css"))



De même vous remplacez cela :

<link rel="stylesheet" media="screen" type="text/css" href="styles/<?=$css?>.css" />


par cela :

		<!--Code PHP  pour le SwitchStyler. Permet d'avoir l'habillage (affichage, style, résolution) du site souhaité -->
		<?php
echo "		<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"".$css."/style.css\" />\n" ;
?>


Pour le bouton ca doit être pareil je pense...

Sinon moi j'avais fait cela en ouvrant préalablement un petit pop-up centré sur ma page d'Accueil.

 <script language="javascript">
function OpenCenterPopUp()
{    
    var Left=window.screen.width/2-175;
    var Top=window.screen.height/2-175;
    //Videment faut modifier la config!!
   var Configuration="'toolbar=0, menubar=0, location=0, directories=0, status=0, scrollbars=0, resizeable=0, copyhistory=0, menuBar=0, width=450, height=250, left=" + Left + ", top=" + Top;
    window.open('style_reso.php','Résolution',Configuration);return(false)
}
</script>


Et cela dans la console de changement d'affichage :


<body id="style_switcher" onload="window.opener.location.reload(true);">

<div id="afficher_style">
	<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
		<fieldset>

			<legend>Style d'Affichage du site MétéOBell : </legend>
			<select name="style">
				<option value="Style_Reso_clair" selected="selected">Clair (par défaut).</option>
				<option value="Style_Reso_sombre">Sombre</option>				
			</select>
			<input type="submit" name="change_style" value="Actualiser les Changements" >
		</fieldset>
	</form>

</div>
<div id="fermer_style">
<a href="#" onclick="window.open('index.php','','fullscreen,scrollbars');return(false)">Cliquez ici pour consulter le site en plein écran (reccomandé)</a>

<form>
<input type="button" value="Fermer cette Fenêtre" onclick="window.close();">
</form>
</div>
 
	
	</body>
</html>



Mais j'ai abandonner l'idée, car trop compliqué, et ça ne marchait pas 1 fois sur 5, au niveau de la réactualisation auto. En passant par un pop-up, c'était plus difficile évidemment lol.
Modifié par Damonya (13 Aug 2006 - 20:40)
Re.

Je confirme, si il n'y a pas d'erreur dans ton code PHP, ce que je n'ai pas vérifié, il n'y a aucune raison que ça ne fonctionne pas. L'important est qu'au final, le code PHP imprime le chemin vers la feuille de style souhaitée, peu importe le chemin en question.

Le classement en dossiers séparés peut être intéressant au niveau "rangement" sur le serveur, s'il y a chaque fois des images de fond différentes qui accompagnent la (les) feuille(s) de style.
Pages :