Bonjour, j'en ai créé un de système de thèmes pour un site que j'ai réalisé. C'est pas très compliqué. Je vous explique le raisonnement que j'ai suivi.
D'abord, il faut savoir ce qui change dans le design d'un site. C'est le contenu compris entre les balises <body> et </body> ainsi que l'appel aux feuilles de style CSS.
Ensuite, j'ai créé uns script pour connaître le nom du thème. Ce nom est enregistré dans la table setting :
<?php
$query='SELECT data FROM setting WHERE id="skin"';
$skin=mysql_fetch_assoc(mysql_query($query));
define('SKIN', $skin'data']);
?>
Puisqu'il serait assez coûteux en ressource de faire cette requête à chaque chargement de page, il vaut mieux mettre en cache ce traitement afin de ne le faire qu'une fois (cfr tuto sur la création d'un cache en php).
Enfin, j'ai découpé mes pages en deux :
-
La première moitié est composée comme suit
<!DOCYTPE ...>
<html>
<head>
<meta ...../>
...
<link rel="stylesheet" type="text/css" href="/skin/<?= SKIN; ?>/css/style.css" media="screen"/>
...
</head>
<?php require '/skin/'.SKIN.'/nom_de_la_page.php'; ?>
</html> -
La seconde moitié est simplement composée des balises <body> et </body>
Dans le dossier contenant mon site, j'ai donc mes premières moitiés de pages et un dossier skin. Ce dossier contiendra plusieurs sous dossiers (nommés avec le nom du thème). Chacun de ces sous dossiers contiennent mes secondes moitiés de pages.
Voila j'espère avoir été clair dans mes explications.