Cómo crear una piel de MediaWiki a partir de cero

Muchos sitios utilizan el software MediaWiki, ¡y wikiHow es uno de ellos! Como podrás ver, a pesar de que MediaWiki ya viene con un conjunto de pieles (skin) listas para usar, muchos sitios, como por ejemplo wikiHow, deciden crear su propia piel para darle al sitio una apariencia única. Existen muchas formas de personalizar el aspecto de un sitio basado en MediaWiki y todas ellas involucran las pieles. Normalmente, para gran parte de los niveles de personalización no es necesario crear una piel nueva desde cero. En otros casos, bastará con modificar una piel ya existente ajustándola a las necesidades de cada uno. Sin embargo, si quieres hacer un cambio radical en el diseño del wiki, será necesario que crees tu propia piel a partir de cero. Este artículo te guiará para que puedas hacer esto de forma organizada, sencilla y sistemática. Con fines demostrativos, el artículo asumirá que tu piel nueva se llamará TrialSkin . Debes reemplazar todas las referencias a "TrialSkin" por el nombre de tu piel.

Pasos

  1. Crea la estructura de archivos básica necesaria para tu piel nueva. Esto implica crear los siguientes archivos y carpetas (todas las cuales se deben añadir a la carpeta skins de tu instalación MediaWiki):
    • Un archivo TrialSkin.php. Aquí es donde pondrás la mayor parte del código y definirás el diseño de las páginas.
    • Un archivo TrialSkin.deps.php. Este es un archivo estándar que muy probablemente contenga el mismo código. Se crea para arreglar cualquier problema con el archivo PHP.
    • El directorio trialskin. En este directorio se almacenarán el resto de los archivos relacionados con tu piel, incluyendo las hojas de estilo y las imágenes.
    • Un archivo /skins/trialskin/main.css, el cual contendrá la hoja de estilo principal para la piel. Este archivo es opcional, pero es muy probable que tengas que usarlo.
    • Archivos de hojas de estilo de reparación específicos del navegador, como por ejemplo /skins/trialskin/IE60Fixes.css. Estos archivos son opcionales, pero se recomienda utilizarlos.
  2. Agrega el código de inicialización como se ejemplifica luego en la subsección "Código de inicialización" de este artículo. Reemplaza TrialSkin por el nombre de tu piel y trialskin por el nombre de tu piel luego de haber convertido todas las letras en minúsculas.
  3. Agrega el código "Fijación de lista de categorías" como se muestra en la subsección correspondiente de este artículo.
  4. Define la función execute(), la cual será llamada para dar salida a los contenidos de las páginas en los navegadores de los clientes.
  5. Declara la variable global $wgUser en la función execute() y utiliza el método getSkin() para obtener un objeto o variable $skin. Seguramente necesites esa variable. Sin embargo, si no la necesitas, entonces no tendrás necesidad de realizar este paso. Encontrarás un ejemplo típico sobre cómo declarar la función execute() con el código más utilizado en la subsección "Declaración de la función execute()".
  6. Comienza añadiendo código (tanto PHP como XHTML) para crear páginas en tu wiki. Aun en el caso en el que quieras realizar un cambio radical del diseño, lo más probable es que tengas que crear el mismo conjunto de datos que utilizan las pieles normales (quizás con algunas modificaciones). Los elementos, componentes y bloques más comunes para una página son (mira las subsecciones correspondientes para obtener más detalles o códigos de ejemplo):
    • El código XHTML que abre (y finalmente cierra) la salida HTML que se enviará al navegador del cliente
    • El elemento de encabezado, el cual importa las hojas de estilo, scripts, define los metadatos de la página y determina el título a mostrar en la barra de títulos del navegador para la página específica que se esté viendo.
    • La etiqueta que indica el comienzo del cuerpo. Esta etiqueta abre el elemento cuerpo de la página y especifica qué sucede cuando la página carga o se le hace un doble clic, en caso de existir ese manejador.
    • El bloque del nombre del sitio
    • La imagen del logo del sitio
    • El eslogan del sitio
    • Bloque de aviso del sitio
    • Bloque de notificación de mensaje del usuario (en caso de ser necesario)
    • La barra de herramientas del usuario
    • Bloque de navegación intra-página
    • Búsqueda
    • Caja de herramientas
    • Enlaces de idioma
    • Nombre de la página
    • Subtitulo de la página
    • Aviso de recuperación de página
    • Contenidos de la página
    • Enlaces de categoría
    • Barra de herramientas de la página
    • Pie de página
    • Código de cierre

Código de inicialización

Código de fijación de lista de categorías

Código del método principal execute()

Código de la estructura XHTML principal

Elementos comunes del código del sitio

Elementos comunes del código de la página

Código de las barras de herramientas comunes

Portlets (bloques de navegación principales)

Consejos

  • A medida que tu código crezca, podría ser conveniente que separes una parte de este en un archivo distinto y luego lo incluyas en el archivo principal de tu piel.
  • Puedes usar funciones separadas para crear partes específicas de la interfaz. Esto es especialmente útil para las partes que necesitan gran cantidad de código y requieren modificaciones de tu parte.
  • Podría ser útil implementar una piel con el contenido mínimo y luego usarla como clase base para el resto de tus pieles.
  • Todo el código que se muestra en este artículo brinda una implementación estándar mínima. Tiene el propósito de mostrarle al lector cómo extraer información de la clase plantilla de la piel y qué es lo que debe considerar sobre cada pieza de información. Puedes (y seguramente lo harás) modificar los comportamientos predeterminados que se incluyen en este implementación.

Advertencias

  • Antes de intentar crear o cambiar tu piel nueva, crea siempre una copia de seguridad de la base de datos, del directorio de instalación y de cualquier otro elemento relacionado con tu MediaWiki.
  • Este procedimiento lo debe realizar alguien (o al menos debe estar supervisado por alguien) que tenga un conocimiento moderado del software MediaWiki y el lenguaje PHP. Los errores en el código podrían generar fallos y resultados inesperados.
Información
Usuarios que están en este grupo no pueden dejar comentarios en la página