Joomla! - Importazione contenuti da Joomla 2.5.x a 3.x.x

google-plus Scritto da . Postato in Joomla!

Se avete già importato i vostri conteuti dal vostro vecchio sito Joomla! a una nuova installazione Joomla! 3.x.x questo articolo non sarà di vostro interesse. Se invece state cercando di trovare un metodo di trasferire mesi e mesi di articoli del vostro blog alla vostra nuova installazione Joomla!, quanto segue fa per voi!

Può interessarvi questa lettura:

Joomla! - Esportare e Importare dati componenti con phpMyAdmin

Mi è capitato, per un cliente che usa il componente Multisites, di dover importare i dati del sistema precedente al nuovo sistema basato su Joomla! 3.x.x

Il problema si fa annoso visto che dalla versione 3.2.x, la struttura delle tabelle del componente com_content cambia rispetto a Joomla! 2.5.x e questo impedisce di fare un dump della tabella e comodamente importare i dati con un semplice client MySQL o phpMyAdmin.

Per questo, ho creato un semplice script, che nella sua semplicità, non fa altro che importare i contenuti da un sito all'altro comprese le immagini annesse all'interno degli articoli.

Lo script è scaricabile direttamente da qui.

Per ogni categoria presente nella tabella prefix_categories lo script ne farà una copia nel nuovo database e una volta inserita, con il nuovo id della categoria appena inserita, in looping inserirà nella tabella content tutti gli articoli che gli appartengono, ricreando il sistema categorie-articoli del vecchio sito Joomla 2.5.

Lo script, serve unicamente per importare i dati da un 'vecchio' sito Joomla! 2.5 a uno 'nuovo' fatto con la più recente versione del CMS Joomla! 3.x. Entrambi devono risiedere sullo stesso server. Il motivo è semplice, lo script deve poter leggere il file configuration.php per poter prelevare i dati di accesso al database di origine (quelli del vecchio sito joomla 2.5).

Importare i contenuti

  1. Il pacchetto compresso una volta scaricato dalla sezione Joomla extensions download, va prima di tutto scompattato. Non per nulla il nome stesso del pacchetto lo ricorda (unzipfirst). All'interno, vi è anche il file readme.txt con le istruzioni necessarie a far funzionare il meccanismo di importazione.

Il file import-categories.php che trovate all'interno, NON è un'estensione di joomla e dunque NON va installato da Gestione estensioni. Lo script è nient'altro che un file php (import_categories.php) che contiene la logica di trasferimento dei record da un database all'altro.

  1. Il file così com'è va copiato nella root del nuovo sito joomla; Accanto al file configuration.php
  2. Una volta copiato nella directory dove risiede il nuovo sito (Joomla 3), va lanciato nella seguente maniera:
http://www.mionuovosito.com/import-categories.php?db=olddb&prefix=oldprefix&path=/var/www/myoldsitej25/httpdocs
  • path, è il percorso assoluto del sito sul server! NON va inserito con lo slash finale.
  • prefix è il prefisso che precede le tabelle del database Joomla 2.5.
  • db è il nome del database della versione precedente di Joomla.

Queste informazioni si possono comunque prelevare dal file configuration.php del vecchio sito in Joomla 2.5.

Alcuni suggerimenti e soluzioni

  1. Durante l'importazione, lo script, tenta di copiare le immagini presenti nel testo degli articoli. Ma poichè i permessi e la ownership delle cartelle spesso causano errori inaspettati o la mancata importazione, consiglio prima dell'uso di aprirlo e commentare la sola riga 139. Non è infatti indispensabile visto che le immagini degli articoli, si possono importare a mano semplicemente copiando la cartella images dal vecchio sito e incollarla in quello nuovo.
  2. Per motivi di sicurezza, effettuata l'importazione cancellatelo immediatamente!

Warning: mysql_fetch_array()

Ultimamente, sono stato contattato per il seguente errore:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /var/www/vhosts/sisdic.it/httpdocs/import-categories.php on line 183

A tal proposito, ricordo che il prefisso del database di Joomla 2.5 non deve essere passato con l'underscore davanti:

Per fare un esempio, se il prefisso fosse "jos_" il prefisso deve essere passato allo script semplicemente come "jos" pena l'errore e la mancata importazione dei conenuti nel nuovo database.

Note:

Essendo uno script gratuito, ricordo che la responsabilità nell'uso dello script è esclusivamente di chi lo usa.

Se avete domande, commentate l'articolo o inviatemi un messaggio.

 


Se hai gradito l'articolo, condividilo, basta un click!

Commenti   

Daniele Gagliardi
0 #12 Daniele Gagliardi 2017-03-31 21:09
Citazione raf:
Ciao, non riesco a scaricare il file. Grazie!

Riprova ora... Il servizio di download è nuovamente attivo
Citazione
raf
0 #11 raf 2017-03-23 18:23
Ciao, non riesco a scaricare il file. Grazie!
Citazione
Daniele Gagliardi
0 #10 Daniele Gagliardi 2016-04-20 18:11
Citazione Eleonora:
non riesco a scaricare il file

Mi scuso per l'inconveniente... Lo risolverò al più presto... Se ha bisogno del file, la prego di contattarmi via mail. Glielo invierò come allegato.
Citazione
Eleonora
0 #9 Eleonora 2016-03-01 15:58
non riesco a scaricare il file
Citazione
Eleonora
0 #8 Eleonora 2016-03-01 15:56
Buonasera, vorrei provare a utilizzare il suo script ma non riesco a scaricare il file a causa di un errore del server.
Citazione
Daniele Gagliardi
0 #7 Daniele Gagliardi 2015-04-23 07:54
Citazione Dario:
Ciao Daniele,
avrei un problema. Lo script mi restituisce questo errore:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /var/www/vhosts/sisdic.it/httpdocs/import-categories.php on line 183

mi indicheresti come posso risolvere?
grazzie


Ciao Dario, prova con il file che ti ho inviato via mail. Se non dovesse funzionare, girami errori e output.
Citazione
Dario
0 #6 Dario 2015-04-22 17:22
Ciao Daniele,
avrei un problema. Lo script mi restituisce questo errore:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /var/www/vhosts/sisdic.it/httpdocs/import-categori es.php on line 183

mi indicheresti come posso risolvere?
grazzie
Citazione
Emiliano
+1 #5 Emiliano 2015-03-08 10:02
Ciao Daniele, grazie per lo script molto utile perché, volendo fare un sito con il nuovo Joomla posso prelevare i contenuti dal vecchio sito realizzato con Joomla 2.5
Citazione
Daniele Gagliardi
0 #4 Daniele Gagliardi 2015-03-05 16:48
Citazione webbati:
Ciao, grazie per lo script, usato proficuamente, ti volevo solo dire che ho dovuto aggiungere il replace degli apici anche per i titoli e le descrizioni delle categorie nella funzione restore_category. ciao

Ciao webbati, grazie del suggerimento, vedrò di porre correzzione allo script...
Citazione
webbati
+2 #3 webbati 2015-03-05 15:18
Ciao, grazie per lo script, usato proficuamente, ti volevo solo dire che ho dovuto aggiungere il replace degli apici anche per i titoli e le descrizioni delle categorie nella funzione restore_category. ciao
Citazione

Aggiungi commento


Codice di sicurezza
Aggiorna

  • logo prontopro
  • logo boutique serramento
  • koilab japan and tropical fish farm
  • Trasloco economico - gruppo Arco Traslochi
  • logo flash pulizie
  • logo revolution
  • logo planetkoi small
  • logo finiture
  • ick logo template
  • montaggio mobili trento

Realizzato da: Daniele Gagliardi
Viale Monache 3 - 38062 Arco - TN
- Contattami -

Per essere più facile ed intuitivo, il blog fa uso dei cookie, piccole porzioni di dati che consentono di capire come gli utenti navighino e ne visualizzino le pagine. I cookie non registrano alcuna informazione personale sull'utente ed eventuali dati identificabili non verranno memorizzati. La nostra Privacy Policy è cambiata: Ti invitiamo a prenderne visione. Oppure visiona la nostra Cookie Policy: