Actualizar a J3 proporciona JHtmlBehavior :: mootools no encontrado

9

Me sale un error 500 con JHtmlBehavior::mootools not found. Sé que esto se ha eliminado en J3 pero mi problema es tratar de averiguar dónde está este problema.

Sospecho que es una especie de extensión, pero creo que las he actualizado todas. Obviamente no. No veo nada en mis registros de php o en la consola de herramientas del desarrollador para indicar dónde puede estar el problema. Incluso busco JHtmlBehavior y no encuentro nada.

¿Algún consejo sobre cómo puedo depurar esto?

Tom
fuente

Respuestas:

9

Encontré el problema en mi propio componente personalizado ... ugh. No pude encontrar el código ofensivo porque estaba buscando JHtmlBehavior::mootools.

Pero el código ofensivo fue este:

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

Cambiarlo a esto soluciona el problema:

JHtml::_('behavior.framework');
Tom
fuente
3

Aunque MooTools está en desuso en Joomla 3, todavía está disponible (pero podría eliminarse en futuras versiones).

Puede cargar el marco agregando

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

(o si necesita las bibliotecas Core y More):

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

al index.phparchivo de tu plantilla .

Esto será al menos una solución temporal, hasta que encuentre el archivo / extensión usando el código Mootools. Encontrar al culpable puede ser difícil, pero le sugiero que comience con las Herramientas de desarrollo de su navegador ( F12en la mayoría de los navegadores) y busque errores de JavaScript, puede darle una pista.

johanpw
fuente
Gracias pero probé ambos y sigo teniendo el mismo error. Las herramientas de desarrollador (o Firebug) me dicen nada más que 500 errores internos del servidor. ¿Alguna otra idea?
Tom
¿Estás seguro de haber agregado el código correctamente JOOMLAROOT/templates/YOURTEMPLATE/index.php? Puedes agregarlo directamente después defined('_JEXEC') or die;. Compruebe si MooTools se ha cargado escribiendo window.MooToolsFirebug, debería volver Object { version: "1.4.5", build: "74e34796f5f76640cdb98853004650aea1499d69" }o similar.
johanpw
Agregar esas JHtml::llamadas no detendrá el error, que es el resultado de una llamada no válida en PHP en algún sitio del sitio.
Craig
2

Este es un error de PHP que da como resultado que Joomla arroje un error, por lo tanto, no es un error de Javascript y no es algo que se arregle agregando más PHP. Como sospechaba, necesita encontrar la fuente de la llamada errante de PHP.

Lo primero que debe hacer es subir su informe de errores a "Desarrollo" y ver que le brinde información nueva, si no hay información nueva que lo ayude a rastrear la fuente del error, se convierte en el enfoque manual de corte y corte.

Intente cambiar brevemente a una plantilla incorporada y verifique si el problema desaparece; si lo hace, es la plantilla o un módulo que ya no se llama porque su posición asignada no existe en la plantilla predeterminada a la que cambió. Si no es la plantilla, puede rastrear los módulos con bastante rapidez.

Finalmente, si eso no ayuda, use el método del 50% para reducir rápidamente qué grupo de componentes, módulos o complementos son la fuente del problema.

Craig
fuente
2

Aquí hay algunos pasos para encontrar de dónde viene el código:

  1. Bueno, la mejor manera es descargar una copia completa del sitio web y hacer una búsqueda del sistema operativo en su directorio para JHTML :: _ ('behaviour.mootools'); . Por lo general, su computadora devolverá una lista con todos los archivos que contienen esta cadena específica.

  2. Si el primer paso no es posible, o no puede obtener ningún resultado por alguna razón, entonces debe comenzar a deshabilitar las extensiones.

    a. Primero cambie la plantilla - a la plantilla principal de Joomla 3 protostar. Si es probable que el problema desaparezca, es su plantilla la que contiene el código en desuso.

    si. Entonces puede comenzar a apagar los módulos y complementos.

    C. Finalmente, vea si el problema parece estar solo en páginas específicas de componentes de terceros.

Encuentre más información sobre cómo cargar Javascript Frameworks en Joomla en la documentación de Joomla

FFrewin
fuente