L'aggiornamento a J3 fornisce JHtmlBehavior :: mootools non trovato


9

Ottengo un errore 500 con JHtmlBehavior::mootools not found. So che questo è stato rimosso in J3 ma il mio problema è cercare di scoprire dove si trova questo problema.

Ho il sospetto che sia una sorta di estensione, ma penso di averli aggiornati tutti. Ovviamente no. Non vedo nulla nei miei registri php o nella console degli strumenti di sviluppo per indicare dove potrebbe essere il problema. Ho anche grep per JHtmlBehavior e non ho trovato nulla.

Qualche consiglio su come posso eseguire il debug di questo?

Risposte:


9

Ho trovato il problema nel mio componente personalizzato ... ugh. Non sono riuscito a trovare il codice offensivo perché stavo cercando JHtmlBehavior::mootools.

Ma il codice offensivo era questo:

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

Modificandolo in questo risolve il problema:

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

3

Sebbene MooTools sia deprecato in Joomla 3, è ancora disponibile (ma potrebbe essere rimosso nelle versioni future).

È possibile caricare il framework aggiungendo

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

(o se hai bisogno di entrambe le librerie Core e More):

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

al index.phpfile del tuo modello .

Questa sarà almeno una correzione temporanea, fino a quando non trovi il file / l'estensione usando il codice Mootools. Trovare il colpevole potrebbe essere difficile, ma ti suggerisco di iniziare con gli strumenti di sviluppo del tuo browser ( F12nella maggior parte dei browser) e cercare errori JavaScript, potrebbe darti un suggerimento.


Grazie, ma ho provato entrambi e ho ancora lo stesso errore. Strumenti di sviluppo (o Firebug) non mi dicono altro che 500 errori interni del server. Altre idee?
Tom,

Sei sicuro di aver aggiunto correttamente il codice in JOOMLAROOT/templates/YOURTEMPLATE/index.php? Puoi aggiungerlo subito dopo defined('_JEXEC') or die;. Controlla se MooTools è stato caricato digitando window.MooToolsFirebug, dovrebbe restituire Object { version: "1.4.5", build: "74e34796f5f76640cdb98853004650aea1499d69" }o simile.
johanpw,

L'aggiunta di tali JHtml::chiamate non interromperà l'errore, che è il risultato di una chiamata non valida nel PHP sul sito da qualche parte.
Craig,

2

Questo è un errore PHP che porta Joomla a generare un errore, quindi non un errore Javascript e non qualcosa da correggere aggiungendo più PHP. Come sospettavi, devi trovare l'origine della chiamata PHP errante.

La prima cosa da fare è inoltrare la segnalazione degli errori a "Sviluppo" e vedere che ti dà nuove informazioni, se non ci sono nuove informazioni che ti aiutano a rintracciare la fonte dell'errore, allora diventa l'approccio manuale slice and dice.

Prova a passare brevemente a un modello incorporato e vedi se il problema scompare; in caso contrario si tratta del modello o di un modulo che non viene più chiamato perché la posizione assegnata non esiste nel modello predefinito a cui hai effettuato lo scambio. Se non è il modello, puoi rintracciare i moduli abbastanza rapidamente.

Infine, se ciò non aiuta, utilizzare il metodo del 50% per restringere rapidamente quale gruppo di componenti, moduli o plugin sono la fonte del problema.


2

Ecco alcuni passaggi per trovare la provenienza del codice:

  1. Bene, il modo migliore è scaricare una copia completa del sito Web ed eseguire una ricerca del sistema operativo nella sua directory per JHTML :: _ ('behavior.mootools'); . Di solito il computer restituisce un elenco con tutti i file che contengono questa stringa specifica.

  2. Se il primo passaggio non è possibile o non è possibile ottenere risultati per qualsiasi motivo, è necessario iniziare a disabilitare le estensioni.

    un. Innanzitutto, passa al modello: al modello principale di Protom Joomla 3. Se il problema si risolve molto probabilmente, è il tuo modello che contiene il codice obsoleto.

    b. Quindi puoi iniziare a spegnere moduli e plugin.

    c. Infine, verifica se il problema sembra riguardare solo pagine specifiche di componenti di terze parti.

Ulteriori informazioni su come caricare i frame Javascript su Joomla nella documentazione di Joomla

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.