web-dev-qa-db-fra.com

La mise à niveau vers J3 donne à JHtmlBehavior :: mootools introuvable

Je reçois une erreur 500 avec JHtmlBehavior::mootools not found. Je sais que cela a été supprimé dans J3, mais mon problème est de savoir où se trouve ce problème.

Je suppose que c'est une sorte de prolongement, mais je pense que je les ai tous mis à jour. Évidemment pas. Je ne vois rien dans mes journaux php ou ma console d'outils de développement pour indiquer où le problème pourrait se trouver. J'ai même grep pour JHtmlBehavior et ne propose rien.

Des conseils sur la façon dont je peux déboguer cela?

9
Tom

J'ai trouvé le problème dans mon propre composant personnalisé ... euh. Je ne pouvais pas trouver le code incriminé parce que je cherchais JHtmlBehavior::mootools.

Mais le code incriminé était le suivant:

JHTML::_('behavior.mootools');

Le changer pour résoudre le problème:

JHtml::_('behavior.framework');
9
Tom

Bien que MooTools soit obsolète dans Joomla 3, il reste toujours disponible (mais pourrait être supprimé dans les versions futures).

Vous pouvez charger le framework en ajoutant

JHtml::_('behavior.framework');

(ou si vous avez besoin des bibliothèques Core et More):

JHtml::_('behavior.framework', true);

à votre modèle index.php fichier.

Ce sera au moins un correctif temporaire, jusqu'à ce que vous trouviez le fichier/l'extension à l'aide du code Mootools. Il peut être difficile de trouver le coupable, mais je vous suggère de commencer avec votre navigateur Outils de développement (F12 dans la plupart des navigateurs) et recherchez les erreurs JavaScript, cela pourrait vous donner un indice.

3
johanpw

Voici quelques étapes afin de trouver d'où vient le code:

  1. Le mieux est de télécharger une copie complète du site Web et d’effectuer une recherche du système d’exploitation dans son répertoire pour JHTML :: _ ('behavior.mootools'); . Habituellement, votre ordinateur renverra une liste avec tous les fichiers contenant cette chaîne spécifique.

  2. Si la première étape n'est pas possible ou si vous ne pouvez obtenir aucun résultat pour quelque raison que ce soit, commencez à désactiver les extensions.

    une. Commencez par basculer le modèle sur le modèle de base prototypé Joomla 3. Si le problème disparaît le plus probablement, c'est votre modèle qui contient le code obsolète.

    b. Ensuite, vous pouvez commencer à désactiver les modules et les plugins.

    c. Enfin, voyez si le problème semble ne concerner que des pages spécifiques de composants tiers.

Pour plus d'informations sur le chargement des frameworks Javascript sur Joomla sur documentation Joomla

2
FFrewin

Il s’agit d’une erreur PHP) qui a provoqué une erreur dans Joomla. Il ne s’agit donc pas d’une erreur Javascript ni d’une solution à corriger en ajoutant plus de PHP. Comme vous le soupçonniez, vous devez trouver la source de l’erreur. PHP appelez.

La première chose à faire est d'augmenter votre rapport d'erreur dans "Développement" et de voir si cela vous donne de nouvelles informations. S'il n'y a pas de nouvelle information qui vous aide à localiser la source de l'erreur, cela devient l'approche manuelle.

Essayez de permuter brièvement sur un modèle intégré et de voir si le problème disparaît. Si c'est le cas, c'est le modèle ou un module qui n'est plus appelé car sa position attribuée n'existe pas dans le modèle par défaut que vous avez échangé. Si ce n'est pas le modèle, vous pouvez retrouver les modules assez rapidement.

Enfin, si cela ne vous aide pas, utilisez la méthode des 50% pour déterminer rapidement quel groupe de composants, modules ou plugins est à l'origine du problème.

2
Craig