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

9

J'obtiens une erreur 500 avec JHtmlBehavior::mootools not found. Je sais que cela a été supprimé dans J3 mais mon problème essaie de savoir où est ce problème.

Je soupçonne que c'est une sorte d'extension, mais je pense que je les ai tous mis à jour. Évidemment pas. Je ne vois rien dans mes journaux php ou dans la console des outils de développement pour indiquer où le problème peut être. Je grep même pour JHtmlBehavior et ne trouve rien.

Des conseils sur la façon de déboguer cela?

À M
la source

Réponses:

9

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

Mais le code incriminé était le suivant:

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

Le changer en ceci résout le problème:

JHtml::_('behavior.framework');
À M
la source
3

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

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);

dans le index.phpfichier de votre modèle .

Ce sera au moins un correctif temporaire, jusqu'à ce que vous trouviez le fichier / l'extension en utilisant le code Mootools. Trouver le coupable peut être difficile, mais je vous suggère de commencer avec les outils de développement de votre navigateur ( F12dans la plupart des navigateurs) et de rechercher les erreurs JavaScript, cela pourrait vous donner un indice.

johanpw
la source
Merci mais j'ai essayé les deux et j'ai toujours la même erreur. Les outils de développement (ou Firebug) ne me disent rien d'autre que 500 erreurs de serveur interne. D'autres idées?
Tom
Êtes-vous sûr d'avoir correctement ajouté le code dans JOOMLAROOT/templates/YOURTEMPLATE/index.php? Vous pouvez l'ajouter directement après defined('_JEXEC') or die;. Vérifiez si MooTools a été chargé en tapant window.MooToolsFirebug, il devrait retourner Object { version: "1.4.5", build: "74e34796f5f76640cdb98853004650aea1499d69" }ou similaire.
johanpw
L'ajout de ces JHtml::appels n'arrêtera pas l'erreur, qui est le résultat d'un appel non valide dans le PHP sur le site quelque part.
Craig
2

Il s'agit d'une erreur PHP entraînant une erreur Joomla, donc pas une erreur Javascript et pas quelque chose à corriger en ajoutant plus de PHP. Comme vous le soupçonniez, vous devez trouver la source de l'appel PHP errant.

La première chose à faire est de transformer votre rapport d'erreurs en "Développement" et de voir que cela vous donne de nouvelles informations, s'il n'y a pas de nouvelles informations qui vous aident à retrouver la source de l'erreur, alors cela devient l'approche manuelle des tranches et des dés.

Essayez de passer brièvement à un modèle intégré et voyez 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 affectée n'existe pas dans le modèle par défaut auquel 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 affiner rapidement quel groupe de composants, modules ou plugins sont à l'origine du problème.

Craig
la source
2

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

  1. Eh bien, la meilleure façon est de télécharger une copie complète du site Web et de faire une recherche de système d'exploitation dans son répertoire pour JHTML :: _ ('behavior.mootools'); . Habituellement, votre ordinateur renvoie une liste avec tous les fichiers qui contiennent 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 une raison quelconque, vous devez alors commencer à désactiver les extensions.

    une. Commutez d'abord le modèle - sur le modèle principal de Joomla 3 protostar. Si le problème disparaît très 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 être uniquement sur des pages spécifiques de composants tiers.

Trouvez plus d'informations sur la façon de charger les cadres Javascript sur Joomla dans la documentation Joomla

FFrewin
la source