Migrare Blog da Splinder a WordPress

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:

  • Un Blog su Splinder.com impostato come pubblico (non privato);
  • PHP5 con estensione cURL abilitata. Per installarla sotto Ubuntu:
sudo apt-get install php5-curl
riavviare Apache
  • Una installazione in locale di WordPress 2.1 (Le versioni successive non vanno bene);
  • Installare in WordPress l’importer realizzato da fullo.net Importer Splinder (nella cartella: wp-admin/import/);

A questo punto vediamo come eseguire l’importazione:

  • Entrare nell’area amministrativa di WordPress e accedere alla sezione Manage–>Import;
  • Selezionare l’importer Splinder/MoTime;
  • Copiare il template che trovate nella pagina dell’importer e sostituirlo al template che state usando in Splinder (ricordatevi di fare una copia del template odierno per poterlo ripristinare in seguito):

<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>

  • Sempre in Splinder:

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″

  • Nella casella di testo presente sotto a “Analizza il blog” inserire il link del proprio Blog Splinder (esempio: http://atomic4416.splinder.com) e premere il tasto “Analizza”;
  • A questo punto, dopo un pò di tempo in base alla dimensione del vostro Blog Splinder, l’importer vi indicherà quante pagine ha rilevato nel Blog e quanti Articoli può importare come in esempio:
La paginazione sul blog: http://atomic4416.splinder.com

Ho identificato 4 articoli da importare

  • A questo punto è possibile importare pagina per pagina in modo manuale premendo uno alla volta sui numeri di pagina indicati sotto a “Importa le pagine singolarmente” o importare tutto il Blog in modo automatico impostando quanti post per ogni iterazione nella sezione “Importa 60 post” e premento su “Importa”.
  • Ecco trasferiti tutti i post e i commenti del vostro Blog Splinder in WordPress!!

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!

  1. Silvio Balduzzi scrive:

    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.

  2. Carlotta scrive:

    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?

  3. Silvio Balduzzi scrive:

    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

  4. Carlotta scrive:

    Ahhhh, ok. Allora aspetto tue nuove ;)

  5. Silvio Balduzzi scrive:

    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.

  6. Carlotta scrive:

    Ok, non riesco a risolvere. Mi sa che dovrò aspettar la correzione del plugin. Grazie per l’aiuto ;)

  7. Silvio Balduzzi scrive:

    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

  8. Carlotta scrive:

    Fatto, ti ringrazio per l’aiuto.

  9. alessandro scrive:

    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.

  10. Silvio Balduzzi scrive:

    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

 
line
footer
AtSafe di Silvio Balduzzi - P.IVA: 03660270160 C.F. BLDSLV84M21C800W
RSS