Skip to main content

Errore nell'aggiornamento a Joomla4: Call to Undefined method Joomla\CMS\Application\AdministratorApplication::isAdmin()

| Gianluca Gabella | Joomla!
share on facebook share on twitter share on linkedin

Indice:


È tempo di aggiornamenti in casa Joomla e cominciano a spuntare i primi errori. Vediamo come affrontare i più comuni errori di aggiornamento dalla versione 3 alla versione 4.

Da qualche settimana è finalmente disponibile Joomla4 e moltissimi webmaster si stanno cimentando nelle operazioni di upgrade. Si tratta di un passaggio di versione "major", la prudenza non è quindi mai abbastanza: fare sempre un bel backup e magari seguire una guida dettagliata.

Nonostante tutte le precauzioni possibili qualcosa può comunque andare storto e nel 99% dei casi è colpa di una qualche estesione che non avete aggiornato ad una release compatibile con Joomla 4.

Il check pre aggiornamento è un tool utilssimo ed è fondamentale studiarlo con attenzione: ci saranno segnate tutte le estensioni che non sono compatibili o che potrebbero creare problemi una volta completato l'upgrade. Se sul vostro sito sono installate poche estensioni probabilmente il check non richiederà molto tempo. Se ne avete installate decine (magari anche vecchie) andare a capire se lo sviluppatore ha fatto uscire una versione compatibile con Joomla4 sarà più brigoso. L'importante è NON SALTARE QUESTO PASSAGGIO. Aggiornare Joomla lasciando attivi dei plugin non compatibili può letteralmente tirarvi giù il sito.

Ho aggiornato Joomla, ma è esploso il sito

Pensavi di aver fatto tutti i controlli possibili immaginabili, hai aggiornato tutto l'aggiornabile ma qualcosa è andato storto. Succede, don't panic.

Uno degli errori più comuni che stanno saltando fuori dagli aggiornamenti è il seguente: Joomla si aggiorna regolarmente, avete il vostro bellissimo Joomla 4, ma appena entrate nel pannello di controllo (o da frontend) vi compare il seguente messaggio di errore: 0 - Call to undefined method Joomla\CMS\Application\AdministratorApplication::isAdmin()

errore joomla4 call to undefined method

L'errore è abbastanza comune perchè la funzione isAdmin() è una di quelle che con il passaggio alla versione 4 è stata deprecata e sostituita dal metodo isClient(), tra l'altro già disponibile anche per la versione 3.x di Joomla.

Questo è quindi il primo grande indizio che abbiamo: è colpa di un'estensione non aggiornata.

Come capisco quale estensione genera l'errore?

Questa è la parte più complessa: ci sono potenzialmente decine di estensioni che possono generare questo errore e il messaggio di cui sopra non da molte informazioni in merito.

Ed è qui che il core di Joomla viene in nostro soccorso: è possibile abilitare una modalità di debug, che ha lo scopo di darci tutte le informazioni possibili per trovare l'origine dell'errore.

Abilitarla è in teoria semplice: dal menu in alto -> sistema -> configurazione globale -> tab "Sistema" -> Impostazioni Debug e cliccare su "SI" in "debug di sistema".

abilitare debug

Il problema è che, in qualsiasi pagina voi andiate salterà sempre fuori l'errore dell'undefined method, e non avrete modo di modificare alcunchè.

Per risolvere il problema dobbiamo modificare a mano il file configuration.php che si trova nella root del vostro sito joomla.

Accediamo quindi ai file del sito tramite FTP (per esempio con un client tipo FileZilla o con il file manager del vostro hosting) e modifichiamo la stringa "debug" da 0 a 1:

stringa debug

Salvate il file e ricaricatelo via FTP nella root del sito.

Aggiornate ora la pagina del pannello di controllo di Joomla. Se tutto è andato a buon fine salteranno fuori nuove info sul vostro errore:

call stack

Andiamo ad analizzare l'output. La call stack è (in parole povere) una colonna di "chiamate" attive in un dato momento e la cui esecuzione non è terminata. Sostanzialmente è un treno di chiamate che ci aiuta a capire dove ha avuto origine l'errore.

Nell'immagine sopra vediamo che la maggior parte delle chiamate fa parte del core di joomla:

  • JROOT/administrator/* è la cartella di amministrazione di joomla
  • JROOT/libraries/* è la cartella con le librerie standard utilizzate da joomla

l'unica chiamata che non fa parte del core è la numero uno:

JROOT/plugins/system/canonicallinks/canonicallinks.php:35

fa riferimento ad un plugin di sistema chiamato "canonical links". Ci sono quindi buone possibilità che l'estensione che genera il problema sia proprio quella.


L'unico modo per risolverlo è disabilitare il plugin in modo che non venga caricato.

Ci sono casi però in cui non è possibile disabilitare in modo "semplice" i plugin: per esempio nel caso in cui la pagina non venga caricata correttamente come in questo caso.

Abbiamo quindi due soluzioni:

  1. Accedere direttamente alla pagina dei plugin senza passare dalla pagina principale. Basta modificare a mano l'URL del vostro sito aggiungendo dopo administrator:

    www.tuosito.it/administrator
    lo trasformate in:
    www.tuosito.it/administrator/index.php?option=com_plugins


  2. Nel caso in cui l'errore si presenti anche nella pagina dei plugin bisogna disabilitare a mano il plugin, via FTP o via Database. In questa guida troverete come fare passo passo:

    SCOPRI COME DISABILITARE MANUALMENTE UN PLUGIN DI JOOMLA

Se tutto è andato a buon fine il plugin è correttamente disabiltato e, aggiornando la pagina di joomla, tutto sarà tornato alla normalità.

joomla4ok

Buon divertimento con la nuovissima Joomla4!


Se ti è piaciuto questo articolo, condividilo!

share on facebook share on twitter share on linkedin
condividi su Facebookcondividi su Twittercondividi su LinkedIncondividi su WhatsAppcondividi su Telegram