Il 22 luglio 2009 Joomla 1.0 verrà ufficialmente abbandonato. Dopo tale data i webmaster di siti basati su Joomla 1.0 non potranno più contare su aggiornamenti di sicurezza e correzione di bug. Dunque è fortemente consigliato l'aggiornamento a Joomla 1.5, una procedura che, a seconda dei casi, può rivelarsi più o meno complicata.
Le differenze tra Joomla 1.0 e Joomla 1.5 sono molte, tra cui:
- Cambiamento degli URL, ovvero degli indirizzi delle pagine
- La struttura del database è stata modificata
- Una nuova codifica per le tabelle del database, che da ANSI passano a UTF-8 (Unicode)
- Cambiamento dei template
Procediamo con la migrazione
Per prima cosa è necessario effettuare l'aggiornamento di Joomla 1.0 all'ultima versione disponibile, al momento della scrittura parliamo di Joomla 1.0.15. Scarichiamo il pacchetto zip, scompattiamolo e carichiamo sul sito i file ottenuti, usando un client FTP.
Ora possiamo passare alla migrazione. Scarichiamo il componente com_migrator. Apriamo l'amministrazione del sito Joomla ed installiamo il componente appena scaricato dal menu “Installers | Components”. Usiamo il form “Upload Package File” e carichiamo il file migrator.zip. Ora nel menu “Components” troveremo la voce “Migrator”.
Dalla schermata che ci viene proposta, clicchiamo la voce “Create Migration SQL File”. Lasciamo selezionate le voci relative ai plugin e premiamo il link “Start Migration”.
Se tutto è andato a buon fine verrà mostrato un messaggio di conferma. Clicchiamo il link “Download”, quindi di nuovo “Download” per scaricare il file di migrazione, che avrà un nome tipo "joomla1015_20090125_155134.sql".
Installiamo Joomla 1.5
La prima fase della migrazione è terminata con la creazione ed il download del file di migrazione. Ora installiamo una copia dell’ultima release di Joomla 1.5 disponibile.
Selezioniamo la lingua italiana, quindi eseguiamo i consueti controlli pre-installazione. Impostiamo i dati del database e la configurazione FTP, quindi giungiamo alla schermata “Configurazione principale”.
Passiamo direttamente al pannello “Carica dati di esempio o ripristina salvataggio contenuti”. Selezioniamo il radio button “Carica script migrazione”. Inseriamo il prefisso delle vecchie tabelle usate da Joomla 1.0 (solitamente jos_), quindi carichiamo lo script di migrazione usando il campo “Script migrazione”.
Spuntiamo il box “Questo è uno script di migrazione Joomla! 1.0.”, quindi premiamo il pulsante “Carica ed Esegui”. Dopo alcuni secondi dovrebbe comparire la schermata che indica il corretto svolgersi dell’operazione.
Se le dimensioni dello script di migrazione sono superiori a quelle consentite dalla configurazione di PHP, verrà generato un errore. Esistono due parametri definiti dal file php.ini del server:
- max_upload_filesize
- post_max_size
Questi definiscono la grandezza massima del file che può essere caricato attraverso il browser. Per porre rimedio a questo problema possiamo modificare il file php.ini del nostro server oppure più semplicemente caricare il file di migrazione via FTP. Per eseguire questa operazione rinominiamo lo script di migrazione “joomla1015_20090125_155134.sql” in “migrate.sql” e carichiamolo nella cartella “installation/sql/migration”.
Durante l’installazione dobbiamo indicare a Joomla che lo script è già stato caricato via FTP: nella sezione “Carica script migrazione” della pagina “Configurazione principale” spuntiamo il box “Seleziona se lo script di migrazione è già stato caricato sul server (es. via FTP/SCP)”, indichiamo il prefisso delle tabelle e spuntiamo anche “Questo è uno script di migrazione Joomla! 1.0”, quindi premiamo il pulsante “Carica ed Esegui”.
Clicchiamo su “Avanti” e ci ritroveremo alla schermata precedente, "Configurazione principale". Questa volta inseriamo il nome del sito, e-mail e password dell’amministratore e premiamo il pulsante “Avanti”. L’ultimo passo consiste nel rimuovere la cartella ‘installation’ dalla cartella di Joomla 1.5.
Se ora proviamo ad accedere alla home page del sito, troveremo che i contenuti del sito Joomla 1.0 sono stati trasferiti correttamente nel nuovo sito, che ora gira su Joomla 1.5.
Migrare estensioni di terze parti
Per quanto riguarda i componenti, i moduli ed i plugin di terze parti, è necessario installarli a parte ed il discorso è più complicato perchè tutto dipende dal produttore. Esistono due tipi di compatibilità: estensioni compatibili nativamente per Joomla 1.5 ed estensioni compatibili in legacy mode.
Legacy mode è un plugin per Joomla 1.5 che consente di “tradurre” il codice scritto per Joomla 1.0 e, in un buon numero di casi, consente di eseguire estensioni scritte per la versione precedente del CMS.
Per installare un’estensione che funziona in legacy mode su Joomla 1.5 è necessario, da interfaccia di amministrazione, selezionare “Estensioni | Gestione plugin” e pubblicare il plugin “System - Legacy”. La soluzione ottimale è installare la stessa versione dell’estensione su Joomla 1.0 e Joomla 1.5, quindi, utilizzando un interfaccia per il database come phpMyAdmin, esportare le tabelle usate da questa estensione in Joomla 1.0 e copiarle nel database di Joomla 1.5.
Convertire il template
L’ultimo passo necessario per la corretta visualizzazione del sito è la migrazione del template
Se abbiamo acquistato il template possiamo richiedere se è stata rilasciata una versione per Joomla 1.5, altrimenti dovremo intervenire a mano sul codice. Apriamo il file index.php del template e sostituiamo al suo interno la voci:
- _VALID_MOS con _JEXEC
- $mosConfig_absolute_path con $this->baseUrl
- $mosConfig_live_site con $mainframe->getCfg( 'live_site' )
- ogni stringa viene preceduta da JText per l’internazionalizzazione, ad esempio echo 'Ciao' diventa echo JText::_( 'Ciao' )
- mosGetParam con JRequest::getVar. Ad esempio $id = mosGetParam( $_REQUEST, 'id', 0 ); viene sostituito con $id = JRequest::getVar( 'id', 0 );
- mosShowHead(); con <jdoc:include type="head" />
- mosMainBody() con <jdoc:include type="component" />
- mosLoadModules( $position_name, $style ); con <jdoc:include type="modules" name=$position_name style=$style />
- mosCountModules con $this->countModules
A questo punto il template dovrebbe funzionare ed essere visibile anche su Joomla 1.5. Per maggiori informazioni sulle nuove feature per i template presenti in Joomla 1.5 si veda la pagina dedicata del Wiki.