Joomla! - Xmap Cannot use object of type stdClass as array
E' da anni che usate Xmap come estensione per la vostra Sitemap di Joomla! e finora non vi ha dato mai un problema. Fa il suo dovere: genera la sitemap, la tiene aggiornata. Cosa gli manca? Nulla!
Purtroppo però è un progetto abbandonato da un decennio tanto è vero che il componente da me installato è del 2009! E' dunque normale che anche la versione di PHP usata all'epoca si discosti con l'attuale. Per cui, è solo una conseguenza che di tanto in tanto possano sorgere errori nell'apertura delle form da pannello amministrativo o nell'uso del componente stesso.
Dopo l'aggiornamento alla versione 3.8.9 di Joomla, è sorto un errore che è evidente abbia toccato molti visto i molti topic aperti sui forum che chiedono soluzione all'errore '0' Cannot use object of type stdClass as array.
Sta di fatto che è una questione di sintassi e che di può risolvere cambiando pochissimo nel codice originale senza dover passare per forza ad un altro componente che faccia lo stesso, a meno che non intendiate farlo per essere sicuri che il componente Xmap non costituisca una falla nel vostro sito web.
Un possibile sostituto: OSMap
A tal proposito, se voleste cambiare, consiglio di usare il componente di Joomlashack OSMap, la cui versione gratuita è scaricabile solo fornendo il proprio indirizzo email al quale verrà in seguito inviato il link per scaricare il componente. Fa esattamente quello che fa Xmap...
Risolvere l'errore e salvare Xmap
Se invece siete affezzionati a Xmap e volete riscattarlo, ebbene, in pochi minuti vi guiderò su come poter risolvere l'errore '0' Cannot use object of type stdClass as array e ad accedere nuovamente alle vostre Sitemap da Backend di Joomla!. Pronti?
Per prima cosa vi servirà un client FTP come Filezilla, un editor di testi come Notepad++.
Una volta installato il vostro client FTP e averlo configurato per avere accesso al vostro spazio web, navigate fino alla cartella administrator > components > com_xmap > models > fields della vostra installazione di Joomla! Fatto?
Individuate il file xmapmenus.php e scaricatelo sul vostro computer, dopo di che apritelo con Notepad++ o simile per editarlo.
Spostatevi alla riga 153 del file. In realtà ne dovremo modificare due di righe che presentano la stessa sintassi oramai obsoleta: la 153 e la 155.
Alla riga 153, sostituite:
0
$return .= '<div class="controls">' . JHTML::_('xmap.priorities', $prioritiesName, ($selected ? $value[] : '0.5'), $i) . '</div>';
con:
0
$return .= '<div class="controls">' . JHTML::_('xmap.priorities', $prioritiesName, ($selected ? $value[]->priority : '0.5'), $i) . '</div>';
e alla riga 155, sostituite:
0
$return .= '<div class="controls">' . JHTML::_('xmap.changefrequency', $changefreqName, ($selected ? $value[] : 'weekly'), $i) . '</div>';
con:
0
$return .= '<div class="controls">' . JHTML::_('xmap.changefrequency', $changefreqName, ($selected ? $value[]->changefreq : 'weekly'), $i) . '</div>';
Salvate ora il file e con l'aiuto del vostro client FTP sostituite il file xmapmenus.php nella cartella administrator > components > com_xmap > models > fields in remoto
Se provate ora ad accedere al pannello di controllo della vostra Xmap facendo click sul suo nome, potrete visualizzarla normalmente come da sempre è stato possibile all'interno del backend di Joomla e del pannello di controllo del componente Xmap.
Xmap/OSMap e JoomShopping
Tra le cose che sono da tenere in conto se decidete di usare ancora Xmap, è la compatibilità verso gli altri componenti. Si sa infatti, che sia Xmap che OSMap si servono di plugin appositi per generare correttamente la Sitemap contenente i riferimenti anche le pagine interessate dai vari componenti.
Nel caso utilizziate JoomShopping, vi consiglio di aggiornare all'ultima versione disponibile del plugin: Joomshopping Addons: Xmap-plugin / mapx / OSMap
Ciò è molto importante anche per non compromettere l'indicizzazione del sito, visto che l'installazione dell'ultima versione del plugin, eviterà la generazione di un errore in fase di creazione o reperimento della Sitemap.
Commenti
Thank you very much!
It helped me!
Alex
RSS feed dei commenti di questo post.