THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,
Je viens de faire une mise à jour de 2.2.2 en 2.3.4, tout semble s'être bien passé (aucun message d'erreur, juste le log de toutes les mises à jours successives), le site marche partiellement (j'ai bien l'accueil, l'affichage des produits, la mise en panier fonctionne par contre je n'ai qu'une page partielle lorsque je demande à afficher le panier, page cart).
Si je passe en index_dev, le panier s'affiche et tout semble fonctionner côté public, mais bon faut être en dev.
Lorsque je vais sur l'admin, page blanche ...
Vu que je n'ai aucun message d'erreur, une idée de ce que je peux regarder ?

Question annexe: puis-je faire /index_dev.php/admin ? les erreurs éventuelles signifieraient quelque chose ?

Pierre

Last edited by pierrot (18-03-2018 23:59:15)

Offline


Si je tente /index_dev.php/admin J'ai des erreurs:

InvalidArgumentException in BaseHook.php line 409: The hook 'hook.2.main.head-css' is already used in this class.

Etant donné qu'on est à priori dans le back-office, j'utilise la template de defaut .

Pierre

Offline


Les caches ont été vidés ?


OpenStudio Toulouse

Offline


Bonjour,

Merci pour la réponse.
Oui déjà 2 fois par effacement complet du contenu de /cache. ... et je ne peux plus aller dans l'admin j'ai les erreurs décrites dans mon second message, voici tout le paquet:

InvalidArgumentException in BaseHook.php line 409: The hook 'hook.2.main.head-css' is already used in this class.

    in BaseHook.php line 409
    at BaseHook->addTemplate('hook.2.main.head-css', 'css:assets/css/home.css') in CoreDevDebugProjectContainer.php line 939
    at CoreDevDebugProjectContainer->getHookadminhome_Hook_CssService() in Container.php line 312
    at Container->get('hookadminhome.hook.css') in ContainerAwareEventDispatcher.php line 183
    at ContainerAwareEventDispatcher->lazyLoad('hook.2.main.head-css') in ContainerAwareEventDispatcher.php line 128
    at ContainerAwareEventDispatcher->getListeners('hook.2.main.head-css') in EventDispatcher.php line 45
    at EventDispatcher->dispatch('hook.2.main.head-css', object(HookRenderEvent)) in Hook.php line 106
    at Hook->processHookFunction(array('name' => 'main.head-css', 'location' => 'head_css'), object(Smarty_Internal_Template)) in smarty_internal_templatebase.php(157) : eval()'d code line 87
    at content_5aaf787cbb30a2_39985283(object(Smarty_Internal_Template)) in smarty_internal_templatebase.php line 188
    at Smarty_Internal_TemplateBase->fetch('file:login.html') in SmartyParser.php line 381
    at SmartyParser->internalRenderer('file', 'login.html', array('edit_language_id' => '1', 'edit_language_locale' => 'fr_FR', 'edit_currency_id' => '1', 'locale' => 'fr_FR', 'lang_code' => 'fr', 'lang_id' => '1', 'current_url' => 'https://www.lemonimport.com/index_dev.php/admin/login', 'app' => object(stdClass)), true) in SmartyParser.php line 424
    at SmartyParser->render('login.html', array('edit_language_id' => '1', 'edit_language_locale' => 'fr_FR', 'edit_currency_id' => '1', 'locale' => 'fr_FR', 'lang_code' => 'fr', 'lang_id' => '1', 'current_url' => 'https://www.lemonimport.com/index_dev.php/admin/login', 'app' => object(stdClass))) in BaseAdminController.php line 390
    at BaseAdminController->renderRaw('login.html', array('edit_language_id' => '1', 'edit_language_locale' => 'fr_FR', 'edit_currency_id' => '1')) in BaseAdminController.php line 346
    at BaseAdminController->render('login') in SessionController.php line 73
    at SessionController->showLoginAction()
    at call_user_func_array(array(object(SessionController), 'showLoginAction'), array()) in HttpKernel.php line 139
    at HttpKernel->handleRaw(object(Request), '1') in HttpKernel.php line 62
    at HttpKernel->handle(object(Request), '1', true) in TheliaHttpKernel.php line 76
    at TheliaHttpKernel->handle(object(Request), '1', true) in ParamInitMiddleware.php line 87
    at ParamInitMiddleware->handle(object(Request), '1', true) in SessionMiddleware.php line 80
    at SessionMiddleware->handle(object(Request), '1', true) in StackedHttpKernel.php line 23
    at StackedHttpKernel->handle(object(Request), '1', true) in Kernel.php line 185
    at Kernel->handle(object(Request)) in index_dev.php line 38

Je peux autoriser une IP si nécessaire pour voir le index_dev ...
Pierre.

Offline


/cache dans le dossier web ou /cache à la racine de ton Thelia ?


OpenStudio Toulouse

Offline


A la racine, c'est pour ça que j'ai dit /cache. /web/cache ne contient qu'un dossier image.
Pierre

Offline


Une question que je me pose. Le index_dev.php est-il valide pour accéder à l'admin ? les erreurs que je vois sont significatives ?
Pierre.

Offline

Offline


Bonjour,
Une idée sur cette erreur ? j'ai ça quand j'essaye d'aller sur la page de l'admin, admin pour laquelle j'utilise la template de defaut que je viens de mettre à jour.

Question: quand on va sur cette page, y-a-t-il une interaction possible avec mes templates à moi (qui la pour le coup sont custom) ? Si non c'est bizarre car on parle des templates de la distribution, ça devrait marcher ? Ré-essayer d'uploader ces templates du back-office ?
Pierre.

Offline


Bon j'ai progressé: si je commente la ligne 409 de /core/lib/Thelia/Core/Hook/BaseHook.php tout marche, l'admin, les pages front qui déconnaient remarchent ... ci-dessous avec la ligne 409 commentée:

    public function addTemplate($hookCode, $value)
    {
        if (array_key_exists($hookCode, $this->templates)) {
            //throw new \InvalidArgumentException(sprintf("The hook '%s' is already used in this class.", $hookCode));
        }

        $this->templates[$hookCode] = $value;
    }

C'est moi qui aurait ajouté un hook dans une template du back-office ? qui ferait doublon ? pas sûr que je saurai même comment faire ça ...
Pierre.

Offline


Bonjour,

Bon je confirme que c'était des hooks en double dans le module "Affiche les blocs par défaut sur la page d'accueil de l'administration" . Par tatonnements et comparaisons avec une autre installation j'ai réussi à sélectionner les bons. Je dis par tatonnement car le souci est que sur cette page, par ex sous "1107. Accueil - JavaScript (home.js) " on a X hooks (j'en avais 4) et sur l'autre installation 2. Sauf que sous ce chapitre, les 4 hooks s'appellent "Affiche les blocs par défaut sur la page d'accueil de l'administration", tous avec le même nom donc je ne sais pas comment savoir ce que fait chaque hook...

J'ai décommenté cette ligne 409, re-vidé les caches et ça roule tout d'un coup, même pour les pages du front qui déconnaient, pour le coup là aussi j'ai du mal à comprendre l'interaction entre le front et le back sur la page cart quand on change un hook dans le module qui affiche les blocs dans l'accueil de l'admin. Un truc doit m'échapper :-)

A noter aussi que je n'ai absolument jamais touché à ces réglages, ça ne peut être que la mise à jour qui a dupliqué tout ça ... si autre explication je suis preneur.

Pierre.

Last edited by pierrot (19-03-2018 15:31:04)

Offline


Bon je me suis cru tiré d'affaire trop vite.

En fait j'ai le même genre d'erreur à plein d'endroits, genre les pages d'édition  de contenu, page d'édition d'un produit, page d'édition de déclinaison, de caractéristiques, de profil d'administration avec toujours le même genre d'erreur (c'est un autre que le pbm que j'avais sur l'acceuil):

The hook 'hook.2.module.configuration.5' is already used in this class.

Bien sûr si je re-commente la ligne 409 de BaseHook ça ne fait plus l'erreur (logique c'est la ligne qui la génère) mais bon, j'aimerai comprendre le pourquoi du comment de cette histoire sachant que j'ai remplacé l'installation 2.2.2 par une 2.3.4 et que je suis dans le back-office et que j'utilise la template par defaut.
Là je tourne en rond j'ai essayé de tripatouiller les modules/hooks et je me suis mis dans une situation ou par ex. je n'ai plus le champ "description" sur un formulaire d'édition de contenu. Il apparait une seconde puis disparait ... j'avais des hooks TinyMCE en plusieurs occurences au mêem endroit, j'ai supprimé un peu vite je pense ...

Bref je vais revenir en 2.2.2 pour l'instant, on peut pas dire que mon expérience des mises à jour de Thelia soit très positive, je n'ai jamais eu une mise à jour simple, toujours des galères.

Offline


Ton problème est certainement dû à un module. Essaie de les désactiver et de les réactiver un par un pour trouver le coupable.


OpenStudio Toulouse

Offline


J'ai eu aussi des problèmes avec les Hooks sur plusieurs Thelia 2.2.x en les passant en Thelia 2.3.3
J'avais créé une issue
https://github.com/thelia/thelia/issues/2311
ainsi qu'un patch
https://github.com/thelia/thelia/pull/2304/files

Je ne sais pas si cela correspond exactement à ton cas, et ce patch ne doit plus vraiment être à jour, mais si tu veux tester, je te donne la manipulation à faire à la main.
Après la MAJ, vérifie en FTP le contenu pour tous les modules suivant :
'LocalPickup'
'Carousel'
'Cheque'
'Colissimo'
'HookAnalytics'
'HookSocial'
'Tinymce'
Normalement, ils ne devraient plus contenir de dossier `AdminIncludes` à l'intérieur, mais tu vas encore en trouver dans le dossier `I18n` de chaque module, il faut les supprimer ces dossiers `AdminIncludes`.
Une fois ce ménage effectué, faut passer en ligne de commande pour faire un reset des `hook` et vider ton cache

php Thelia hook:clean
php Thelia cache:clear
php Thelia cache:clear -e prod

Le reset des hook fait qu'ils seront tous désactiver, tu devras activer ceux dont tu as besoin.

Offline


Merci à vous 2 pour ces pistes. J'ai déjà essayé la suppression des modules, ça ne changeait rien, par contre je garde l'autre piste car ça ressemble plus à mon problème.
Pour l'instant je suis repassé en 2.2.2 (avec grosses sueurs froides car ma sauvegarde était corrompue, heureusement OVH avait aussi leur sauvegarde du dimanche matin 1h) mais je ne m'avoue pas vaincu ... je vais juste être encore 100 fois plus prudent sur mes sauvegardes là j'en avais quand même 2 HS (celle avant en 2.2.2 était corrompue et celle après en 2.3.4 était ok mais partielle alors que les 2 s'étaient parfaitement déroulées sans aucun message d'avertissement sur un souci ...)
Merci.
Pierre.

Offline


Bonjour,

Je pense avoir finalement réussi cette mise à jour avec des "mais":

1/ j'ai d'abord fait une 2.2.2 -> 2.3.1 qui ne m'a donné qu'un seul souci, la page du back-office "clients" ne marchait pas, la faute à une requête qui cherchait un champ "lang_id" dans la table "customer" alors que je n'avais qu'un champ "lang", j'ai corrigé à la mano dans phpmyadmin, c'était bon après. Aucune alerte durant la mise à jour

2/ j'ai ensuite fait une 2.3.1 -> 2.3.4 qui m'a donné des soucis sur l'accueil du back-office ou j'avais une erreur de json ... après recherches j'ai réactivé tous les modules liés à HookAdminHome et là ça remarchait un peu, sauf que j'avais tout en double, superposé pour la courbe, et ensuite 2 blocs pour tous ceux en dessous, à chaque fois un propre et un brut de décoffrage (directement le HTML affiché dans un joli bloc). Après tâtonnements et suppressions diverses j'ai réussi à rétablir la situation (un bloc de chaque propre), donc ça ressemblait de nouveau au pbm ci-dessus sans que ce soit exactement ce que signalait informatiqueprog (mais ressemblant néanmoins). Je n'ai trouvé un dossier "AdminIncludes" que dans "LocalPickup"

3/Autre souci, dans tous mes 2.3.4 j'ai maintenant un bloc de configuration "Order path configuration" ... pas dans celui-ci que je viens de mettre à jour ... je vois rien à activer pour ça donc j'ai encore des doutes sur la complétude de ma mise à jour ... grrr...

Je me rends compte peu à peu que j'ai majoritairement des soucis sur les sites hébergés (en général par le client) sur des OVH mutus alors que sur mes VPS Debian9 ça roule plutôt bien, je commence à me demander si ça n'est pas là le point d'achoppement. Par ex à ma première étape, le FTP n'avait pas uploadé tous les dossiers de core/vendor , sans aucune alerte de FTP, ce que je trouve quand même bizarre. Surtout qu'après on a le doute pour tous les dossiers.

Pierre

PS: dernier point corrigé, là aussi dossier de template defaut du back-office mal uploadé ... ce qui m'a aussi réglé le souci des blocs de l'accueil. Tout est résolu.
PS2: et non, même pbm que le point 1 sur la table customer_version, corrigé manuellement aussi.

Last edited by pierrot (18-04-2018 20:34:56)