A atualização para o J3 fornece JHtmlBehavior :: mootools não encontrado


9

Eu recebo um erro de 500 com JHtmlBehavior::mootools not found. Sei que isso foi removido no J3, mas meu problema está tentando descobrir onde está esse problema.

Suspeito que seja algum tipo de extensão, mas acho que atualizei todas elas. Obviamente não. Não vejo nada nos meus logs php ou no console das ferramentas do desenvolvedor para indicar onde o problema pode estar. Eu até grep para JHtmlBehavior e não tenho nada.

Alguma dica de como eu posso depurar isso?

Respostas:


9

Encontrei o problema no meu próprio componente personalizado ... ugh. Não consegui encontrar o código incorreto porque estava procurando JHtmlBehavior::mootools.

Mas o código ofensivo era este:

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

Mudá-lo para isso corrige o problema:

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

3

Embora o MooTools esteja obsoleto no Joomla 3, ele ainda está disponível (mas pode ser removido em versões futuras).

Você pode carregar a estrutura adicionando

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

(ou se você precisar das bibliotecas Core e More):

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

para o index.phparquivo do seu modelo .

Isso será pelo menos uma correção temporária, até você encontrar o arquivo / extensão usando o código do Mootools. Encontrar o culpado pode ser difícil, mas sugiro que você comece com as Ferramentas do desenvolvedor do navegador ( F12na maioria dos navegadores) e procure por erros de JavaScript; isso pode lhe dar uma dica.


Obrigado, mas tentei os dois e ainda recebo o mesmo erro. As Ferramentas do desenvolvedor (ou Firebug) não me dizem nada além de 500 erros de servidor interno. Alguma outra ideia?
Tom

Tem certeza de que adicionou o código corretamente JOOMLAROOT/templates/YOURTEMPLATE/index.php? Você pode adicioná-lo diretamente depois defined('_JEXEC') or die;. Verifique se o MooTools foi carregado digitando window.MooToolsno Firebug, ele deve retornar Object { version: "1.4.5", build: "74e34796f5f76640cdb98853004650aea1499d69" }ou similar.
Johpw

A adição dessas JHtml::chamadas não interromperá o erro, que é o resultado de uma chamada inválida no PHP no site em algum lugar.
Craig

2

Este é um erro do PHP que resulta no Joomla gerando um erro, portanto, não é um erro de Javascript e não deve ser corrigido adicionando mais PHP. Como você suspeitava, precisava encontrar a fonte da chamada PHP incorreta.

A primeira coisa a fazer é aumentar o relatório de erros para "Desenvolvimento" e ver que fornece novas informações, se não houver novas informações que o ajudem a rastrear a origem do erro, ele se tornará a abordagem manual de fatia e dados.

Tente trocar brevemente para um modelo interno e verificar se o problema desaparece - se isso acontecer, é o modelo ou um módulo que não é mais chamado porque sua posição atribuída não existe no modelo padrão para o qual você trocou. Se não for o modelo, você poderá rastrear os módulos rapidamente.

Por fim, se isso não ajudar, use o método de 50% para restringir rapidamente qual grupo de componentes, módulos ou plugins é a fonte do problema.


2

Aqui estão algumas etapas para descobrir de onde vem o código:

  1. Bem, a melhor maneira é fazer o download de uma cópia completa do site e fazer uma pesquisa no sistema OS dentro de seu diretório por JHTML :: _ ('behavior.mootools'); . Normalmente, o seu computador retornará uma lista com todos os arquivos que contêm essa sequência específica.

  2. Se a primeira etapa não for possível ou você não conseguir nenhum resultado por qualquer motivo, comece a desativar as extensões.

    uma. Primeiro mude o modelo - para o modelo principal do Joomla 3 protoestrela. Se o problema desaparecer com maior probabilidade, é o seu modelo que contém o código obsoleto.

    b. Então você pode começar a desligar os módulos e plugins.

    c. Por fim, verifique se o problema parece estar apenas em páginas específicas de componentes de terceiros.

Encontre mais informações sobre como carregar estruturas Javascript no Joomla na documentação do Joomla

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.