Bonjour,
Je travaille actuellement sur un module qui permette de changer le thème de mon site prestashop à partir d'un choix de menu déroulant.
Pour cela je créé un menu déroulant, qui renvoi le choix de couleur dans un fichier "color.php" dont le code est le suivant:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?php
include('../../config/config.inc.php');
include('../../header.php');
global $smarty;
global $cookie;
$themecolor = 'default';
if (isset($_POST['choix1'])){
$themecolor = $_POST['choix1'];
}
else {
echo "pas de couleur définie";
}
$cookie->choixcouleur = $themecolor;
$cookie->write();
echo $cookie->choixcouleur;
include('../../footer.php');
?> |
Puis je modifie dans config.inc.php (je n'ai pas trouvé d'autre solution pour l'instant) la ligne:
define('_THEME_NAME_', 'prestashop');
et la remplace par:
1 2 3 4 5 6 7 8 9
| global $cookie;
$couleurtheme = $cookie->choixcouleur;
if (isset ($couleurtheme)){
$templatename = $couleurtheme ;
}
else {
$templatename = Context::getContext()->shop->getTheme();
}
define('_THEME_NAME_', $templatename); |
Mon problème est le suivant, la variable est bien affichée par le echo $cookie->choixcouleur, mais la variable n'est pas récupérée par le fichier config.inc.php, et elle ne semble pas stockée (elle revient sur default lorsque j'actualise ma page).
Je tourne un peu en rond, et espère sincèrement que quelqu'un pourra me venir en aide.
Merci d'avance à celles et ceux qui prêteront attention à ce post.
Bonne journée.
Partager