it-swarm-eu.dev

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

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?

9
Tom

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');
9
Tom

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

nel file index.php 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 il tuo browser Strumenti per gli sviluppatori (F12 nella maggior parte dei browser) e cerca errori JavaScript, potrebbe darti un suggerimento.

3
johanpw

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 all'interno della 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. Per prima cosa cambia il 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 su Documentazione Joomla

2
FFrewin

Questo è un errore PHP con conseguente errore di Joomla, quindi non un errore Javascript e non qualcosa da correggere aggiungendo più PHP. Come sospettavi, devi trovare l'origine dell'errante PHP.

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 50% per restringere rapidamente quale gruppo di componenti, moduli o plug-in sono la fonte del problema.

2
Craig