Migración de Jaws a Wordpress

Cómo ya conté he realizado la migración completa de mi blog del sistema Jaws a Wordpress. La verdad es que me está quedando muy bien, y aunque la migración no ha sido del todo perfecta, intentaré profundizar un poco del porqué de éste cambio, sus razones, y sus datos técnicos

Empezaría por determinar los pros y contras de cada sistema para comprender un poco más el porqué del cambio.

En cómun éstos dos gestores de información (llamemoslós por ahora así) son Software Libre y Open Source. Los dos me parecen muy inteligentes y muy buenos, pero no me parece complementarios.

La idea de Jaws es la de contener todo en un mismo sistema, con multitud de gadgets y utilidades que nos puede ser muy utiles.

Enumeremos los pros de Jaws:

  • Es latino, hecho en méxico.
  • Muy fácil de manejar y “personalizar” para el usuario/a novel.
  • Álbum de fotos y gestor de imágenes incluido.
  • Posibilidad de montar sitios webs completos en minutos.
  • Gestor de ficheros incluidos.

Pero también me he encontrado con muchos problemas para mi objetivo prioritario, que era tener un sitio Blog. Según mi criterio éstos son los contras de Jaws con los que me he encontrado:

  • Es muy dificil crear nuevos themes.
  • Es bastante lento.
  • Imposibilidad de crear nuevos menus de “amigos”.
  • Imposibilidad de moderar comentarios.
  • El 90% de las herramientas que incluye no las utilizo
  • Fallos en textile y en code higlight
  • Dificil actualización
  • Poca comunidad y plugins alrededor del proyecto.
  • Cuando volví a mirar en la página del proyecto el otro día vi que habían quitado lo de sistema de blog y pusieron sistema de gestión de contenidos, y eso no era lo que necesitaba.
  • Imposibilidad de crear páginas estáticas.
  • No respeta estándares de la W3C.

Repito que ésta son mis opiniones, y por ello seguro que las de otra persona serán distintas.

Durante un tiempo estuve viendo sistemas de blogs que me fuesen útiles y veía cómo la comunidad de bloggers empezaban a utilizar Movable Type, pero no me gustaba el sistema, y en los ultimos tiempos veía cómo la gente utilizaba Wordpress aunque me resistía a cambiar.

Pero fue hace muy poco cuando me propuse el cambio impulsado por los siguientes pros de Wordpress:

  • Desarrollo activo y buena comunidad.
  • Documentación bastante buena y clara.
  • Sistema de blog a secas.
  • Aplicación ligera y sin “condimentos” ni carga excesiva.
  • Sistema de themes muy claro y fácil.
  • Respeta estandares.
  • Sistema de administración y configuración muy sencilla.
  • Soporta bien UTF8.
  • Base de datos muy ligera.
  • Permite páginas estáticas.
  • Gran base de datos de plugins.

Aunque también encontré contras en Wordpress me resultaron casi invisibles.

  • No tiene álbum de fotos ni ningún plugins de fotos “decente”.
  • El manejador de ficheros está todavía en bragas.
  • La traducción al castellano es mejorable.
  • Y más que le seguiré encontrando mientras lo use.

El proceso de migración no resultó sencillo. Básicamente lo que hice fue “estudiar” el comportamiento de las bases de datos de ámbos sistemas. Me centré en tres tablas concretas en cada sistema, la de posts, la de comentarios y la de categorías. El proceso de migración que hice fue monousuario, es decir, que no aceptaría más de un usuario/a cómo autor.

Básicamente la idea era pasar de unas tablas a otras, pero con tres matices fundamentales:

  • En Jaws utilicé Textile y en Wordpress no iba a utilizarlo.
  • Pasar todas la imágenes que utilicé en las entradas al nuevo sistema.
  • Pasar de ISO a UTF8.

Para pasar todo de Textile a HTML utilicé el propio script de Textile que viene con Wordpress. Es un fichero llamado textile1.php que se encuentra en el directorio de Plugins de Wordpress. Dicho fichero viene con una función llamada textile() que admite un téxto por parámetro y lo devuelve formateado. Ese problema ya estaba resuelto.

El único problema es que el mismo fichero ejecuta un par de funciones que a la hora de ejecutar nuestro script no están disponibles y hay que “engañar” al programa para que se trague esas funciones. Yo hice lo siguiente:

< ?php

$fich_textile_wp = "./wp-content/plugins/textile1.php"
 require_once($fich_textile_wp);

// Funciones para engañar a textile
function remove_filter($a, $b) {
	return false;
}

function add_filter($a, $b, $c) {
	return false;
}
?>

Para pasar las imágenes de los posts de Jaws a Wordpress tuve que construirme una función que las cogiese una a una de los textos y la llevase a los nuevos sitios, y luego cambiase la cadena de texto por la que debería ser la nueva. Las imágenes en Textile de Jaws se ponen así:

!http://blog.fitopaldi.net/mimagen.png(mi texto alt)!

Por lo que sólo tendría que estudiar los textos iban entre “!” y ver si eran de mi propio sitio y copiar las imágenes a un nuevo directorio. Al final me salió algo parecido a ésto:

< ?php
$inicioUrlImg="http://blog.fitopaldi.net/phoo/";// Inicio de la URI de IMGs
$newDirImg="./wp-content/files/photoblog/"; 	// Nuevo directorio de imágenes
$newUrlImG="http://blog.fitopaldi.net/wp-content/files/photoblog/"; // Nueva URI

function pasarImagenes($texto) {		// Devuelve un texto largo
	GLOBAL $inicioUrlImg, $newUrlImg, $newDirImg;
	$array=explode('!', $texto);

	for ($i=0; $i<sizeof($array); $i++) {
		$url=$array[$i];
		if(strncasecmp($url, $inicioUrlImg, strlen($inicioUrlImg))==0) {
			$url1=explode("(", $url);
			$ar=explode('/', $url1[0]);
			$fich=$ar[sizeof($ar)-1];
			if(copy($url1[0], $newDirImg.$fich))
			{
				$url1[0]=$newUrlImg.$fich;
				$url=implode("(", $url1);
			}
		}
		$array[$i]=$url;
	}

	return implode('!', $array);
}
?>

Aun así el proceso de pasar las imágenes no fue del todo limpio, y en textos con más de una “!” pegadas se liaba un poco, pero hizo bien su cometido y todas las imágenes fueron pasadas.

Para pasar téxto a UTF8 PHP nos provee de una función que ya lo hace por nosotrxs. Si no hacemos éste cambio corremos el riesgo de que nos aparezcan caracteres extraños o desaparezcan los caracteres con acentos.

La función que utilicé cada vez que iba a meter algo en la base de datos de Wordpress fue utf8_encode.

Así aquí teneis el script terminado.

Todxs calladitxs :(

Lo siento, los comentarios están cerrados actualmente.

¡Manifiestate!