Jump to content

page blanche après installation d'un theme


Recommended Posts

Bonsoir à tous,

 

Voici mon petit soucis. J'ai installé Prestashop en local sur mon Debian et tout fonctionne nickel. Ma version de Prestashop étant en 1.6, j'ai voulu téléchargé un thème lui aussi en 1.6, et l'installer pour changer l'apparence de mon site. J'ai donc tout simplement été dans Préférences > Thèmes puis j'ai cliqué sur "Ajouter un thème". Le problème est lorsque je clique sur "Installer le thème" après l'avoir ajouté. Il me demande ensuite quels sont les modules à installer, ceux à désinstaller, etc... Vu que je ne connais pas assez bien, je laisse la configuration comme telle.

 

Le problème est ensuite que j'obtiens une page blanche que ce soit sur mon site ou dans le back-office et il m'est donc impossible de pouvoir modifier quelque chose car je ne peux plus rien administrer. J'ai donc modifié un de mes fichiers pour afficher l'erreur qui est celle-ci:

 

 syntax error, unexpected 'index' (T_STRING) in /var/www/prestashop/override/classes/Tools.php on line 18

 

 

Déjà, le fichier Tools.php vient du thème que je veux installer, plus précisément du module "designerpreview", ce n'est donc pas un fichier d'origine.

Ensuite, voici les lignes:

<?php

class Tools extends ToolsCore
{
    public static function redirect($url, $base_uri = __PS_BASE_URI__, Link $link = null, $headers = null)
	{
		if (!$link)
			$link = Context::getContext()->link;

		if (strpos($url, 'http://') === false && strpos($url, 'https://') === false && $link)
		{
			if (strpos($url, $base_uri) === 0)
				$url = substr($url, strlen($base_uri));
			if (strpos($url, 'index.php?controller=') !== false && strpos($url, 'index.php/') == 0)
			{
				$url = substr($url, strlen('index.php?controller='));
				if (Configuration::get('PS_REWRITING_SETTINGS'))
					$url = Tools::strReplaceFirst('&', '?', $url);
			}

			$explode = explode('?', $url);
			// don't use ssl if url is home page
			// used when logout for example
			$use_ssl = !empty($url);
			$url = $link->getPageLink($explode[0], $use_ssl);
			if (isset($explode[1])) // Fix with friendly Urls in PS with Themler (back parameter etc.)
                $url .= (strpos($url, '?') !== false ? '&' : '?' ).$explode[1];
		}

		// Send additional headers
		if ($headers)
		{
			if (!is_array($headers))
				$headers = array($headers);

			foreach ($headers as $header)
				header($header);
		}

		header('Location: '.$url);
		exit;
	}
}

Ce qui est bizarre, c'est le => 'index.php\' <= Je me suis dis que l'anti-slash n'était pas correct, j'ai donc testé de le retirer mais celà n'a rien changé. Je m'en remets donc à vous pour savoir ce qu'il ne va pas. Peut être aurais-je du faire autre chose, j'ai juste tenté de modifier ce antislash et d'enregistrer mais j'arrivais toujours au même résultat (même après avoir redémarré apache). Je suis donc ouvert à vos solutions. :)

 

Par contre, j'ai mis le code de tools.php venant directement du .zip de mon thème et non lorsqu'il a été installé après dans mon dossier prestashop. Je ne sais pas si ça change quelque chose.

 

 

Merci d'avance pour votre aide ! :-) 

Edited by PiiR4T3 (see edit history)
Link to comment
Share on other sites

Rebonjour et merci de m'avoir répondu.

 

Alors avant de commencer, je tiens à signaler que lorsque Tools.php est installé dans le dossier "override/classes" il y a une légère différence dans le script car il m'indique que c'est bien le module "designerpreview" qui est concerné.

<?php

class Tools extends ToolsCore
{
    /*
        * module: designerpreview
        * date: 2015-03-25 16:26:53
        * version: 1.0
        */

La ligne 18 concerne donc dans le script de mon premier post à la ligne ou se trouve le 'index.php/'.

 

En supprimant le fichier "Tools.php" comme anteverce m'a dit, j'ai pu ré-accéder à mon back-office. Néanmoins ma boutique affiche toujours une page blanche. J'ai donc affiché les erreurs et voici ce que cela m'affiche:

 

Fatal error: Uncaught --> Smarty: Unable to load template file '/var/www/prestashop/themes/Untitled/header.tpl' <-- thrown in /var/www/prestashop/tools/smarty/sysplugins/smarty_internal_templatebase.php on line 129

 

Le fichier "header.tpl" ne s'y trouve effectivement pas. Et voici un bout de script du fichier "smarty_internal_templatebase.php" ou se situe la fameuse ligne 129:

     // checks if template exists
        if (!$_template->source->exists) {
            if ($_template->parent instanceof Smarty_Internal_Template) {
                $parent_resource = " in '{$_template->parent->template_resource}'";
            } else {
                $parent_resource = '';
            }
            throw new SmartyException("Unable to load template {$_template->source->type} '{$_template->source->name}'{$parent_resource}");
        }

 

Enfin, j'ai fais une petite recherche de ou pouvait se trouver le fichier "header.tpl" grâce à la commande "find" (je rappelle que je suis sur Linux Debian) et voici les résultats:

 

./var/www/prestashop/pdf/header.tpl
./var/www/prestashop/admin618sgzi92/themes/default/template/controllers/login/header.tpl
./var/www/prestashop/admin618sgzi92/themes/default/template/header.tpl
./var/www/prestashop/themes/default-bootstrap/header.tpl
./var/www/prestashop/themes/default-bootstrap/modules/homeslider/header.tpl
./var/www/prestashop/modules/homeslider/views/templates/hook/header.tpl
./var/www/prestashop/modules/trackingfront/views/templates/front/header.tpl
 
"default-bootstrap" est le thème de base installé avec Prestashop.
 
Je m'en remets donc encore une fois à votre aide et merci d'avance pour votre soutien  :)
 
 
EDIT: 
 
En fait, j'ai voulu comparé ce qu'il y avait dans le dossier du thème par défaut (default-bootstrap) et celui que je voulais installer. Dans mon dossier prestashop/themes/default-bootstrap, j'ai remarqué qu'il y avait plein de fichiers notamment les fichiers .tpl alors que dans le dossier de mon autre thème intitulé "Untitled", il n'y a aucun fichier à part un dossier docs qui est vide.

 

Je suis alors regardé directement dans le .zip de mon thème et là par contre j'ai vu tout les fichiers qui devrait être dans ce dossier. Ce que je ne comprends pas c'est pourquoi ça ne fonctionne pas lorsque sur back-office j'essaye d'installer mon thème. Peut être un rapport avec le fichier "Tools.php". Néanmoins je comprends mieux ma page blanche maintenant. De plus, le dossier "Untitled" devrait avoir le nom de mon thème c'est à dire "Baby_Shop" mais c'est comme si il m'avait ajouté un thème vide.

 

Que devrais-je faire selon vous ? Car là je vais tenter de glisser tout ces fichiers dans le dossier "/themes/Untitled" mais j'ai peur que des fichiers de mon thème qui doit se trouver dans d'autres dossiers de prestashop ne soit pas mis eux aussi.

 

EDIT 2: 

 

Je viens de transférer tout les fichiers du thème se trouvant dans le .zip  dans le dossier "Untitled" et il me met aussi la même erreur sauf que cette fois-ci le "header.tpl" s'y trouve bien ainsi que tout les autres fichiers.

 

EDIT 3: 

 

Pour que vous comprenez mieux, voici les dossiers et fichiers dans le .zip de mon thème:

 

1.5.3 => Dossier contenant les mêmes dossiers que le dossier modules

1.5.6 => Dossier contenant les mêmes dossiers que le dossier modules

1.6    => Dossier contenant les mêmes dossiers que le dossier modules

modules => Dossier contenant les dossiers "blocktopmenu_mod", "designer" et "designerpreview"

themes   => Dossier contenant les dossiers et fichiers du thème (ceux que j'ai copié dans le dossier Untitled)

Config.xml 

Readme.txt => Il explique comment installer le thème. Voici ce qu'il dit exactement (c'était en anglais donc je l'ai traduit): http://textup.fr/122514pP

 

P.S: Je rappelle que je suis en local pour l'instant donc je n'utilise pas de ftp.

Edited by PiiR4T3 (see edit history)
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...