amig@s, comparto con ustedes una experiencia que salió mas o menos
bien y algun@ le puede servir.
harto de spam y de aburrimiento, decidi que tenia que pasar mi
abandonado weblog (textosypretextos.com.ar) que funciona con Wordpress
a SPIP.
Además del combatir el SPAM, tengo pensado incorporar una seccion tipo
fotolog, y otras funcionalidades para las que wp me queda chico y se
vuelve poco eficiente y operativo llenarlo de plugins. Con SPIP el 95%
o más de lo que quiero hacer lo tengo 'de fabrica'.
Despues de un buen rato eliminando miles de spams de la base de datos,
empecé a migrar. ¿Cómo? La idea fue usar el formato XML que usa la
copia de respaldo de spip, generando un archivo que despues se puede
importar.
La construccion de ese XML la hice con un script php bastante
rudimentario y muy particularizado a mi sitio, pero sirve para el
concepto: se leen los datos de las tablas de wordpress y se 'rellenan'
las claves XML.
El mismo concepto podria usarse para migrar desde otros sistemas
(drupal, phpnuke?), ya que basta con decidir una 'politica de
adaptacion' y fijarse cuales son los nombre de los campos correctos.
En mi caso la politica fue migrar todos los articulos a una unica
seccion llamada "blog" (id_rubrique=1), y asociar estos articulos con
'palabras claves' análagas a las secciones de wordpress. (este sistema
permite que un articulo forme parte de más de una seccion, por lo que
las palabras claves es la mejor adaptacion).
En el XML se almacenan tambien todos la metadata del sitio, por lo que
yo me basé en un 'modelo' realizado desde el mismo sitio spip al cual
iba a migrar. Todo lo que no debia rellenarse con informacion
proveniente de wordpres, quedó intacto en el xml.
Antes de rellenar algunos datos (particularmente los campos 'texte' de
los articulos y los comentarios) hago un pequeño filtrado para
"sanitizar" los "<" y ">" (que corrompen el parser de xml) y de paso
adaptar el contenido lo más posible al formato de spip ya que worpress
permite html reducido en sus campos y yo lo utilizaba. Así reemplazo
todos los <em> </em> por { } los strong por {{ }} etc. Todo lo que no
tiene una equivalencia directa al formateo de spip lo mantuve como
html, encerrandolo entre balizas <html> ..</html> para que spip lo
interprete como tal.
como comenté mas arriba, este script está muy enfocado a mi objetivo
particular y por eso no contampla la mudanza de autores y contiene
informacion creada previamente. Pero si a alguien le sirve podemos
afinarlo un poco, y por supuesto charlarlo por este canal.
saludos.
Martin.
PD: un detalle importante: mi script está basado en la version 1.3 (en
desarrollo) aunque creo que el XML del respaldo no ha cambiado en
absoluto la estructura desde la version 1.9, sí los atributos del la
primer llave (<SPIP>). Cersiorarse contrastando con un respaldo de la
version elegida.
wp2spip.txt (36.7 KB)