Jump to content

Problème suite à une mise à jour en 1.4.7 : exception convertAndFormatPrice


Recommended Posts

Bonjour,

 

Suite à une mise à jour en 1.4.7, page blanche, que ce soit pour la boutique ou le backoffice.

 

J'ai passé l'affichage des erreurs à "on" dans le fichier de config, et j'obtiens l'erreur suivante :

 

Fatal error: Uncaught exception 'Exception' with message 'Plugin "convertAndFormatPrice" not callable' in /homez.34/dficreat/www/prestashop/tools/smarty/sysplugins/smarty_internal_register.php:36 Stack trace: #0 [internal function]: Smarty_Internal_Register->registerPlugin('modifier', 'convertAndForma...', Array) #1 /homez.34/dficreat/www/prestashop/tools/smarty/Smarty.class.php(776): call_user_func_array(Array, Array) #2 /homez.34/dficreat/www/prestashop/config/smarty.config.inc.php(212): Smarty->__call('registerPlugin', Array) #3 /homez.34/dficreat/www/prestashop/config/smarty.config.inc.php(212): Smarty->registerPlugin('modifier', 'convertAndForma...', Array) #4 /homez.34/dficreat/www/prestashop/config/smarty.config.inc.php(82): smartyRegisterFunction(Object(Smarty), 'modifier', 'convertAndForma...', Array) #5 /homez.34/dficreat/www/prestashop/config/config.inc.php(134): require_once('/homez.34/dficr...') #6 /homez.34/dficreat/www/prestashop/index.php(28): require('/homez.34/dficr...') #7 {main} thrown in /homez.34/dficreat/www/prestashop/tools/smarty/sysplugins/smarty_internal_register.php on line 36

 

Je n'ai pas trouvé grand chose à ce sujet sur le forum, surtout des topics sans réponse...

 

Toute idée est la bienvenue...

 

---

 

EDIT

 

Mes essais pour l'instant :

 

- recherche approfondie sur le forum

=> topics sans réponse, ou topic de dev avec des contenus de fichiers qui... citent convertAndFormatPrice

 

- vider les répertoires cache et compile de smarty et smarty_v2

=> ils sont déjà vides

 

- changer les droits du répertoire Tools et de tout ce qu'il contient en 777 (oui, j'en suis à ce point)

=> aucun changement

 

- tester toutes les versions de product.tpl que j'ai sous la main (idem pour les .htaccess, fichiers de config...)

=> aucun changement

 

- lancement de test_modules.php trouvé je ne sais plus où

=> même erreur (juste index.php remplacé par test_modules.php en dernière ligne)

 

Je précise que j'ai ce problème après avoir fait l'install pas à pas selon le tuto.

Pour l'instant, j'en suis juste après la fin de l'install, avec la nouvelle version encore dans le répertoire temporaire "/prestashop/" (l'ancienne version est à la racine du site).

Ce sous-répertoire est bien spécifié dans le fichier de config.

 

Et là je n'ai plus d'idées...

Link to comment
Share on other sites

Non, pas encore, je farfouillais d'abord un peu dans les fichiers pour voir si je trouvais une piste...

 

J'ai un peu avancé :

En commentant l'appel à convertandformatprice dans product.tpl et dans smartyconfig, le résultat change :

- je peux accéder au backoffice (yes !)

- j'ai une erreur claire au niveau du frontoffice :

Fatal error: Call to undefined method Product::initPricesComputation() in /homez.34/dficreat/www/prestashop/classes/FrontController.php on line 234

 

Donc pas de solution, juste une bidouille temporaire qui me permet d'accéder au backoffice si besoin.

Et ça confirme que le souci se situe au niveau du traitement des prix.

Mais où ?..

 

Je peux ouvrir un ticket dans le bug tracker, mais comme il s'agit d'une mise à jour à partir de la version 1.1.0.5, ce n'est pas un problème qui risque de motiver grand monde !

Ça vaut le coup quand même ?

Link to comment
Share on other sites

Problème le plus proche (avec "plugin XXX not callable") : http://forge.prestashop.com/browse/PSCFI-4391

(sans réponse, posté en décembre)

 

Un autre un peu différent mais avec "plugin XXX not callable" aussi : http://forge.prestashop.com/browse/PSCFI-784

(il y a un an, "fixed" mais sans explication...)

 

J'ai remis en forme le message d'erreur pour qu'il soit plus lisible (merci FireBug) :

 

Fatal error: Uncaught exception 'Exception' with message 'Plugin "convertAndFormatPrice" not callable' in /homez.34/dficreat/www/prestashop/tools/smarty/sysplugins/smarty_internal_register.php:36

Stack trace:

#0 [internal function]: Smarty_Internal_Register->registerPlugin('modifier', 'convertAndForma...', Array)

#1 /homez.34/dficreat/www/prestashop/tools/smarty/Smarty.class.php(776): call_user_func_array(Array, Array)

#2 /homez.34/dficreat/www/prestashop/config/smarty.config.inc.php(212): Smarty->__call('registerPlugin', Array)

#3 /homez.34/dficreat/www/prestashop/config/smarty.config.inc.php(212): Smarty->registerPlugin('modifier', 'convertAndForma...', Array)

#4 /homez.34/dficreat/www/prestashop/config/smarty.config.inc.php(82): smartyRegisterFunction(Object(Smarty), 'modifier', 'convertAndForma...', Array)

#5 /homez.34/dficreat/www/prestashop/config/config.inc.php(134): require_once('/homez.34/dficr...')

#6 /homez.34/dficreat/www/prestashop/admin4242/index.php(31): include('/homez.34/dficr...')

#7 {main} thrown in /homez.34/dficreat/www/prestashop/tools/smarty/sysplugins/smarty_internal_register.php on line 36

Link to comment
Share on other sites

Nouvel essai :

En exploitant le bricolage décrit 4 posts plus haut pour avoir accès au backoffice, j'ai désactivé TOUS les modules.

J'ai ensuite remis le fichier de config de smarty dans son état initial.

 

Résultat :

Toujours la même erreur.

Donc a priori, ça ne provient pas d'une incompatibilité de module.

 

Et pas non plus une incompatibilité de thème comme c'est souvent le cas, puisque j'ai sélectionné le thème prestashop de la nouvelle version.

 

Ce n'est pas non plus (à mon avis) un problème de fichier mal transféré, puisque j'ai refais la manip' de l'installation à plusieurs reprises...

Link to comment
Share on other sites

J'ai testé en local, même problème.

 

 

Je suis donc parti sur une nouvelle série d'essais (en local aussi) sur ce principe : installation neuve, et import des données d'origine.

 

J'ai rencontré plusieurs soucis :

 

[1] en important la base d'origine par dessus la base neuve (via PHPmyAdmin)

=> erreur d'importation MySQL parce que les données existent déjà

 

[2] en supprimant la base neuve pour la remplacer par celle d'origine

=> certains champs manquent, plantage

 

Du coup, je me demande si mes soucis ne viennent pas du changement de structure de la base entre ma vieille version et la plus récente.

 

Une solution pourrait -peut-être- être de fusionner les bases plutôt que de remplacer, mais je n'y suis pas arrivé pour l'instant.

J'ai l'impression que ça se choisi au moment de l'exportation (INSERT/REPLACE/UPDATE)...

Là aussi, les idées et coups de main seront bienvenus.

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...