Posted on 21 giu 2010
In questi giorni mi è capitato di dover ricercare un sistema per migrare un Blog di Splinder.com verso la piattaforma WordPress. Ricercando in rete si trovano varie soluzioni a riguardo delle quali solo una si è dimostrata ad oggi funzionante.
Ho deciso per cui di riportare i passi da seguire in questo mio Blog per accedere velocemente alla soluzione se dovesse essermi utile anche in futuro…e di certo portà essere utile anche ad altri
.
Per poter eseguire la migrazione sono necessari:
sudo apt-get install php5-curl riavviare Apache
A questo punto vediamo come eseguire l’importazione:
<Blogger>
<div class=’ss-permalink’>:PERMALINKS:<$BlogItemPermalink$>:ENDPERMALINKS:</div>
<div class=’ss-post-title’>:POSTTITLE:<$BlogItemTitle$>:ENDPOSTTITLE:</div>
<div class=’ss-post-text’>:TESTO:<$BlogItemBody$>:ENDTESTO:</div>
<div class=’ss-post-date’>:POSTDATA:<$BlogItemDateTime$>:ENDPOSTDATA:</div>
<div class=’ss-post-cats’>:POSTCATEG:<$BlogItemCategories$>:ENDPOSTCATEG:</div>
<div class=’ss-post-author’>:POSTAUTHOR:<$BlogItemAuthor$>:ENDPOSTAUTHOR:</div>
<div class=’ss-comments’>:POSTCOMMENT:<$BlogItemCommentList$>:ENDPOSTCOMMENT:</div>
</Blogger>
Attivare l’impaginazione del blog.
Configura > Impaginazione > Attiva la paginazione del blog: spuntate la voce “Sì”
Potete anche aumentare il numero di post per pagina, questo velocizzerà un po’ l’importazione. Con certe configurazioni di PHP aumentare il numero di post per pagina è indispensabile per evitare un timeout dello script.Cambiare il formato dell’ora.
Configura > Impaginazione > Formato dell’ora: Selezionate il formato simile a questo “27/09/2006 17:25″
Ho identificato 4 articoli da importare
Dai test da me eseguiti su un Blog creato adhoc su Splinder ho potuto constatare che lo script dell’importer funziona senza problemi; mi riservo di indicare eventuali problemi quando userò effettivamente lo script per il trasferimento del Blog del mio cliente.
Ringrazio personalmente fullo.net per l’ottimo lavoro svolto!
10 Responses
Leave a Reply
In questi giorni stò lavorando per risolvere alcuni problemi che si sono presentati utilizzando l’importer di cui parlo nel post.
Splinder ha modificato il modo con cui viene generata la paginazione nei blog e ciò ha causato che l’importer non riesca a risalire a certi valori necessari per il suo funzionamento.
Oggi, con l’aiuto di un collega ho corretto il problema in modo “provvisorio” per poterlo far funzionare eliminando la parte automatica che non funziona più.
Ho comunicato a Francesco Fullone (realizzatore delle ultime versioni dell’importer) le parti che ho modificato e sono in attesa che mi comunichi eventuali sue impressioni sulle modifiche che ho apportato al programma.
Nel frattempo lo stò utilizzando per migrare il Blog di un cliente e pare funzionare tutto a meraviglia.
Ciao ho provato a sostituire il codice con quello proposto da te ma mi dà errori di sintassi.
Probabilmente ho fatto qualche errore: posso chiederti esattamente come hai fatto?
Ciao Carlotta. Nel pomeriggio ti scrivo qui, nel dettaglio, le modifiche che ho fatto al codice dell’importer e metto la spiegazione delle varie modifiche.
Il codice che ho scritto sul sito di Fullo è stato automaticamente modificato da WordPress e non è apparso tutto ciò che ho incollato nel post
Silvio
Ahhhh, ok. Allora aspetto tue nuove
Analizzando l’Importer scritto da Terenzani e modificato da Fullone (www.fullo.net) per trovare i problemi che ne impediscono il funzionamento con la versione odierna di Splinder, ho elaborato queste modifiche (alcune delle quali provvisorie) che lo rimettono in funzione:
La funzione che risulta maggiormente modificata è la get_pages() perché le due righe di codice che rispondono ai commenti # Last page e #Skip per page non risultano più funzionanti. Ciò impedisce allo script di estrarre i valori di $end e $page che corrispondono rispettivamente all’ID dell’ultimo post del Blog (normalmente quello più vecchio, in base a come è ordinata la visualizzazione dei post nel Blog Splinder) e al numero di post per pagina (di default Splinder visualizzare 10 post per pagina).
Mi sono accorto infatti che nell’eseguire l’importer originale le due variabili non ottenevano alcun assegnamento di valori e per ciò il ciclo while successivo non veniva eseguito.
Per tamponare questo problema ho eseguito l’assegnamento manuale dei valori delle due variabili $end e $page ai valori che servivano alla mia importazione.
Per far ciò ho modificato la get_page() in questo modo:
function get_pages(){
$contents = $this->curl_content($this->blog_url);
if($contents){
# Modifiche di Silvio Balduzzi e Francesco Andreoli
$end[1] = 3656; //settare con l'ID dell'ultimo post presente su Splider.
$page[1] = 10; //settare con l'ID della prima pagina dopo l'homepage.
$skip = 10; //settare con il numero di post per pagina.
while($page[1]< =$end[1]){
$urls[] = $this->blog_url ."?from=$page[1]";
$page[1] = $page[1]+$skip;
}
$this->pages = $urls;
return true;
}
return false;
}
Così facendo lo script ha a disposizione i valori delle due variabili e sà quante volte eseguire il ciclo while per l'estrazione delle URL del Blog.
Nel Blog che dovevo trasferire da Splinder a WordPress inoltre mi sono trovato a dover correggere in modo automatico l'HTML dei post trasferiti. I post su Splinder infatti erano stati scritti forzandone ad uno ad uno il colore del testo, la dimensione dei caratteri e spesso anche il font; Ciò non dava un'idea molto professionale al Blog e per cui ho pensato di correggere l'HTML dei post direttamente in fase di importazione.
Per far ciò ho lavorato sulla funzione body() dell'importer modificandola in questo modo:
function body()
{
set_time_limit();
preg_match("#:TESTO:(.+):ENDTESTO:#sU", $this->content, $postText);
preg_match("#(.+)#sU", $postText[1], $postText);
//Aggiunto da Silvio Balduzzi e Francesco Andreoli
$temp[1] = strip_tags( $postText[1] ,'< p >< a >< img >< div >< br >' );
if(!empty($postText)) return convert_chars($temp[1]);
return false;}
La funzione strip_tags() serve ad eliminare i tag HTML nelle stringhe dategli in input lasciando inalterati i tag messi tra le apici.
Così facendo ho ottenuto l'eliminazione dei tag relativi al colore del testo e ho mantenuto inalterati i tag relativi ai rimandi a capo del testo, alle immagini ecc...
Ho aggiunto inoltre la funzione set_time_limit() che serve a evitare il timeout dell'esecuzione dello script PHP.
N.B. Togliere gli spazi tra i <> nei tag da non eliminare con la strip_tags(); Ho dovuto metterli per non far interpretare il codice incollato qui come codice HTML del mio sito.
Ok, non riesco a risolvere. Mi sa che dovrò aspettar la correzione del plugin. Grazie per l’aiuto
Se mi mandi via email il nome del tuo blog Splinder ti correggo l’importer per il tuo caso e te lo mando funzionante
Silvio
Fatto, ti ringrazio per l’aiuto.
Ciao, perdona l’invadenza.
Non so più a chi chiedere, ho scritto alla redazione di Splinder ma non ho ottenuto risposta.
Il blog di mio padre ( deceduto) è stato rubato sia la pass che la mail…ed io non posso più gestirlo.
Vorrei un consiglio, non sono molto pratico di pc…
Ti ringrazio e ti lascio il link, così puoi valutare te stesso di cosa ti sto parlando.
Alessandro Bresci.
Ciao,
Mi spiace ma non mi è possibile esserti d’aiuto. L’unico consiglio che posso darti è quello di insistere con gli amministratori di Splinder perchè sono gli unici che possono eventualmente resettare le password del Blog.
Cordiali saluti
Silvio