Jump to content

Tester ou modifier un thème à la volée sans toucher au thème actif


csid

Recommended Posts

Bonjour,

 

j'ai cherché un module pour tester/modifier un theme sur une boutique en prod sans pour autant la dupliquer.

J'ai testé themeswitcher mais... je n'ai pas réussi à le faire marcher (sur une PS 1.5.6.1)

Après avoir cherché un peu en vain j'ai décidé de résoudre le pb moi même.

 

Pas le temps de faire un vrai module donc je vous livre ma méthode qui vaut ce qu'elle vaut.

Elle passe par la modif de votre fichier /config/config.inc.php

 

Trouvez la ligne

define('_THEME_NAME_', $context->shop->getTheme());

(ligne 102 chez moi)

 

Commentez la et placez juste en dessous ceci :

//define('_THEME_NAME_', $context->shop->getTheme());
//-- modif CSID pour passer un thème par l'url
session_start();
if (isset($_GET['csid_theme'])){							//-- on passe le nom du thème dans l'url ?csid_theme=blabla
	if ($_GET['csid_theme']=='*'){							//-- si on passe '*' on vide la session et on initialise avec theme configuré dans PS
		define('_THEME_NAME_', $context->shop->getTheme());
	}
	//-- on stocke la variable en session
	$_SESSION['csid_theme']=$_GET['csid_theme'];
	define('_THEME_NAME_', $_SESSION['csid_theme']);		//-- on initialise le theme choisi
}else{
	//-- on regarde si on a déjà un theme en session
	if (isset($_SESSION['csid_theme']) and trim($_SESSION['csid_theme'])!=''){
		define('_THEME_NAME_', $_SESSION['csid_theme']);	//-- on initialise avec le theme en session 
	}else{
		define('_THEME_NAME_', $context->shop->getTheme());	//-- on initialise avec le theme configuré dans PS
	}
}
//--------------Fin CSID ------------------------

Le principe :

Si le parametre "csid_theme" est passé dans l'url on le prend et on l'utilise comme nom de thème et on le stocke en session pour éviter d'avoir à le repasser à chaque page.

Pour revenir au thème par défaut on peut passer csid_theme=* ou simplement fermer toutes les fenètres de navigateur

 

ATTENTION !!

Je n'ai pas cherché à sécuriser! Il s'agit d'une astuce. Je conseille donc une fois les tests faits de commenter mon code et décommenter le code d'origine.

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...