jueves, 10 de enero de 2008

Tenga Inciclopedia en su casa (V)

Bueno, bueno, bueno... después de un larga ausencia por las vacaciones de navidad, continuamos con la preparación del MediaWiki.

En este punto el MediaWiki ya tiene que estar funcionando y se podrá editar con el sin problemas, incluso también ya se puede importar la wiki quieras sin hacer nada más que bajarse la base de datos de la wiki en cuestión (o exportar las páginas mediante Special:Export) e importarla en tu wiki personal. Pero la mayoría de las wiki tienen extensiones y espacios que no bienen por defecto con el MediaWiki (por ejemplo, Incinoticias e Incicitas en Inciclopedia o Anexo en Wikipedia-es).

La falta de algunas extensiones, hace que algunas características especiales no funcionen, como pueden ser los listados dinámicos de páginas o el uso de funciones especiales como las ParseFunctions pero no debería afectar de forma drástica a la wiki; por otra parte el hecho de no crear los espacios añadidos tampoco es mucho problema, ya que en vez de crearse la distinción entre ese tipo de páginas simplemente las trata como página normales que comienzan por NombreEspacio:. El no tener los espacios también puede dar problemas en algunas extensiones que los usen como parámetros...

Así que básicamente si no quieres instalar las extensiones (que se puede hacer posteriormente sin ningún problema) o los espacios (que para hacerlos luego si que tienen un pequeño problema) puedes pasar a la siguiente entrada (cuando esté hecha XD).... Bueno, mejor no, primero configuremos algunas cosillas primero...

Pasos previos

Primero vamos a activar algunas cosillas que vienen desactivadas por defecto, para ello abre el archivo LocalSettings.php que tendrás en X:\XAMPP\htdocs\mediawiki y añade al final lo siguiente:
#--------- #Definimos el logo y el favicon para poder "subirlo" $wgLogo = "{$wgScriptPath}/images/Wiki.png"; $wgFavicon = "{$wgScriptPath}/images/favicon.ico"; #Activamos el AJAX (necesario para algunas extensiones) $wgUseAjax = true; #Activando subpáginasa los distintos espacios $wgNamespacesWithSubpages = array( -1 => 0, 0 => 1, 1 => 1, 2 => 1, 3 => 1, 4 => 1, 5 => 1, 6 => 1, 7 => 1, 8 => 1, 9 => 1, 10 => 1, 11 => 1); #Activamos que se pueda usar el JavaScript personalizado por el usuario $wgAllowUserJs = true; #Activamos que se pueda usar el CSS personalizado por el usuario $wgAllowUserCss = true; #Activamos la subida de archivos (y simplificamos su estructura) $wgEnableUploads = true; $wgStrictFileExtensions = false; $wgHashedUploadDirectory = false;
Los comentarios espero que sean autosuficientes, tal vez la más complicadas de entender sea $wgNamespacesWithSubpages. Ésta posibilita la creación de subpáginas (por ejemplo con el nombre Pagina/Subpágina/Subsubpágina) en todos los espacios menos en el -1 que es más especial. Los espacios tienen una numeración interna: (0 = Espacio principal, 1 = Discusión, 2 = Usuario, 3 = Usuario Discusión, etc)

Bien, hemos acabado con la configuración básica... así que podemos pasar a la instalación de extensiones, creación de espacio o simplemente importar los datos.

Creando los espacios adicionales

Si se tiene pensado crear espacios adicionales es mejor hacerlo antes de importar nada, ya que tiene un pequeño problema en caso de que se importe cuando hay páginas en la wiki. Dicho problema consiste en que si se va a crear el espacio "Incinoticias" pero ya existen páginas llamadas "Incinoticias:LoQueSea" cuando se cree el espacio nuevo esas páginas serán innaccesibles.

Para crear los espacios adicionales, se debe modificar el mismo archivo LocalSetting.php anterior.

Simplemente añade/modifica la variable $wgExtraNamespaces por la siguiente estructura:
$wgExtraNamespaces = array(
100 => "Espacio1",
101 => "Espacio1_Discusión",
102 => "Espacio2",
103 => "Espacio2_Discusión"
#etc.
);
A TODO espacio creado (numero par) también hay que crear su discusión (numero impar), aunque no tiene porque llamarse obligatoriamente "_Discusión" es recomendable para que siga la misma lína que los demás (si la wiki está en español, claro). Ademas estos espacios adicionales deben comenzar por un número superior a 100.

Extensiones

Instalación de extensiones se puede hacer en cualquier momento y no debería haber ningún problema para instalarlas incluso después de haber importado la wiki. La gran mayoría de las extensiones están listadas en MediaWiki.org navegando a partir de esta página. La instalación de las extensiones es algo complejo y manual ya que hay básicamente tres formas de conseguir los archivos dependiendo de la extensión:
  • Bajarse los archivos (por separado o en un zip/rar/7z). Puede ser en la propia página de MediaWiki.org u otra externa.
  • Usar el SVN (que tiene como ventaja la actualización)
  • Creando un archivo .php y copipegando directamente el código fuente que te listan en el archivo.
Aunque es recomendable seguir detalladamente las instrucciones de cada extensión y leer su ayuda, la idea básica para instalarlas es:
  1. Copiar el archivo .php de la extensión en la carpeta X:\WAMPP\htdocs\mediawiki\extensions (o en una subcarpeta si son varios archivos).
  2. Añadir al final del archivo LocalSetting.php:
require_once( "extensions/ruta_al_archivo.php" );
Y una vez hecho esto probar si funciona y no da errores...

Lo siento no ser más preciso, pero esto es un mundo a parte ya que cada extensión es hija de su padre y madre, y cada una puede tener algunos requerimientos especiales que estarán explicados en su página correspondiente (las hay incluso muy difíciles de hacerlas funcionar).

Por otra parte añadir que si quieres conocer que extensiones están instaladas en la wiki que quieres importar puedes verlo en la página Special:version, y que instales aquellas que tengan uso y utilidad.

De entrada independientemente de si son usadas en la wiki original o no, recomendaría añadir las siguiente extensiones, que casi actualmente son básicas para cualquier wiki:
  • CategoryTree: Permite expandir las subcategorías de las distintas categorías y otras cosas.
  • Cite: Para poder poner notas al pie. (bueno... ésta no es tan básica... XD)
  • DynamicPageList: Para hacer listados dinámicos de páginas.
  • ParseFunctions (en un futuro estará aquí): Extensión básica para hacer contenido dinámico basándose en funciones y demás (casi todas las plantillas hacen uso de esta extensión).
Mientras buscaba los enlaces a estas extensiones he visto una nueva llamada ExtensionManager que parece que es para hacer que la instalación de las extensiones sea cosa de coser y cantar, pero no la he probado...

Bueno pues con una vez hecho esto ya tenemos el MediaWiki completito, tan solo queda llenarlo de contenido, ya sea manualmente o a base de importaciones XD :P y en la siguiente entrada os pondré los enlaces de donde se pueden descargar la bases de datos de distintas wikis, o que se puede hacer en caso de éstas no estén disponibles.

Actualización: he probado ExtensionManager y la verdad... lo único que evita es la edición del LocalSettings.php ya que detecta las extensiones en el directorio extensions automáticamente... Es algo complicadilla de instalar ya que requiere instalar la extensión StubManager antes (ambas deben ser instaladas de forma normal) y una vez instaladas basta con bajar los archivos.

Actualización 2: Ahora también hay un nuevo sistema para bajarse las extensiones llamado PEAR (que parece ser un símil al SVN pero orientado al código PHP)
<- Anterior - Siguiente ->

1 comentario:

  1. Increible guía que te has currado.

    Oye, te he dejado un meme en mi blog, allí tienes las instrucciones.

    Saludos.

    ResponderEliminar