¿Dónde poner los archivos de esqueletos?

En la carpeta squelettes/, pués :-)

Desde SPIP 1.8, los esqueletos se sitúan en su propio directorio, llamado dist/. El directorio squelettes/ guardará tus esqueletos personalizados.

Las ventajas de esta organización son evidentes: mejor separación entre el código de SPIP y la estructura del sitio, posibilidad de cambiar todo un conjunto de esqueletos de golpe, etc.

Histórico: En las versiones anteriores a SPIP 1.8, los ficheros de esqueletos incluidos en la distribución de SPIP estaban situados en la raíz. Ver: «¿Qué son los archivos «dist»?».

Los esqueletos por omisión: dist/

Desde SPIP 1.8, los esqueletos de la distribución — es decir los incluidos de serie en la instalación de SPIP — se agrupan en el directorio dist/. Estos archivos contienen las información sobre la compaginación por omisión del sitio y no deben modificarse nunca. Puedes examinar el contenido de ese directorio y basarte en este juego de esqueletos para adaptar la compaginación a tus necesidades [1].

De todas formas, sobre todo no hay que modificar los archivos del directorio dist/, si no ¡te arriesgarías a perder todas tus modificaciones en cada actualización de SPIP!
Para evitarlo, haz una copia de los archivos que quieras modificar, y sitúalos en otro directorio, como se indica a continuación.

El directorio squelettes/

Desde SPIP 1.8, los esqueletos personalizados deben situarse en un directorio llamado squelettes/ (¡cuidado con la «s» final!), que tienes que crear en la raíz del sitio SPIP. Es lo mismo si quieres instalar un juego completo de esqueletos (sacado de SPIP - Contrib o de otro lugar), o aportar una ligera modificación a los esqueletos por omisión, pon tus esqueletos en este directorio.

Así, un usuario que quiera crear su propia paginación, desarrollará sus propios archivos article.html, rubrique.html, etc. en el directorio squelettes/. Fíjate bien en que no es indispensable poner un juego completo de esqueletos en este directorio.

Para mostrar las páginas del sitio, SPIP busca los esqueletos prioritariamente en el directorio squelettes/; si SPIP no halla un archivo .html que necesita, irá a buscar el de la distribución en el directorio dist/.
Así, si has puesto un solo archivo en el directorio squelettes, por ejemplo article.html, SPIP utilizará ese esqueleto para mostrar los artículos, y los del directorio dist para el resto de páginas del sitio.

El directorio squelettes/ está destinado a recibir todos los archivos necesarios para la compaginación de un sitio. Por lo tanto recogerá:

  • los esqueletos, es decir los archivos .html con código de SPIP;
  • los archivos incluidos en los esqueletos (así como, para las versiones anteriores a SPIP 1.9, su archivo php3 correspondiente) y los modelos (desde SPIP 1.9);
  • los formularios modificados, preferiblemente en un subdirectorio formulaires/
  • las hojas de estilo CSS que crean la envoltura gráfica; personalizarlas permite variar, a veces espectacularmente, el aspecto de un sitio sin intervenir sobre los esqueletos. Ver: «¡Pon tu propio estilo!»;
  • las imágenes utilizadas en los esqueletos;
  • el archivo mes_fonctions.php que contiene los filtros y las variables de personalización propias de ese juego de esqueletos;
  • los archivos javascript;
  • los archivos de idioma personalizados (cf.: «Internacionalizar los esqueletos», método de los ficheros de idiomas), preferiblemente en un subdirectorio lang/;
  • etc...

Utilizar otro directorio de esqueletos

Desde SPIP 1.5 es posible organizar los esqueletos en un directorio que tenga un nombre cualquiera, declarándolo en el archivo ecrire/mes_options.php, con la variable de personalización $dossier_squelettes, como se explica en la documentación correspondiente. SPIP irá prioritariamente a buscar los esqueletos en el directorio declarado de esta forma.

Esto te permite, por ejemplo, probar un nuevo juego de esqueletos sin borrar el antiguo, o manejar dinámicamente varios juegos de esqueletos.

Prioridad de los directorios de esqueletos

Siendo más exhaustivos y en resumen. Grosso modo, cuando SPIP tiene que utilizar un archivo, lo busca en diferentes directorios en el siguiente orden:

  1. en primer lugar en la lista de directorios designados en la variable $dossier_squelettes, si esta está definida;
  2. luego en el directorio squelettes/ situado en la raíz del sitio;
  3. después (desde SPIP 1.9) en la lista de directorios de la variable $plugins;
  4. luego en la raíz del sitio;
  5. en el directorio dist/;
  6. y por fin en el directorio ecrire/.

«Grosso modo», porque a esto se añaden varias sutilezas [2], con un orden de prioridad por archivo de esqueleto, lo que permite variantes más finas: por sección, por rama o por idioma, como se explica en la documentación correspondiente.

Observación: Desde SPIP 1.9 : De hecho, el mecanismo descrito más arriba para elegir el emplazamiento de un archivo no sólo se aplica a los esqueletos, sino también al conjunto del código de SPIP. En la jerga de los desarrolladores se llama «sobrecargar el código», y el orden de elección de los directorios está en el «SPIP_PATH». Esto sitúa el cuadro y las normas de desarrollo para los «plug-ins», extensiones de las características de SPIP que cualquier miembro de la comunidad puede aportar.

Así, se puede modificar a voluntad cualquier característica del comportamiento de SPIP sin privarse por eso en un futuro de las evoluciones de la distribución y del soporte de la comunidad. ¡SPIP se ha hecho modular!

Histórico: La razón de que SPIP busque esqueletos en la raíz es histórica, por ser el primer lugar donde estuvieron situados. Esto tenía la ventaja de hacer los esqueletos «visibles» en un navegador, ya que los enlaces a los .css y otras envueltas gráficas tenían que escribirse forzosamente «en duro» desde la raíz.
Además, hasta SPIP 1.8.3, SPIP buscaba los esqueletos en la raíz antes que en el directorio squelettes/.

Y los archivos .php3 (o .php) a todo esto?

Recordemos ante todo que a partir de SPIP 1.9, ya no hay archivo .php3 (o .php) para los esqueletos: SPIP calcula todas sus páginas a partir de un script único spip.php. Por lo tanto, lo que sigue es histórico.

En SPIP 1.8.2 y SPIP 1.8.3, existía un archivo page.php3 precursor del spip.php y de la forma de inclusión de SPIP 1.9. En efecto, page.php3 permitía, por sí solo, llamar a cualquier esqueleto pasando como parámetro la variable de fondo, es decir el archivo de esqueleto .html a utilizar:

Por lo tanto, lo más sencillo era utilizar una llamada de ese tipo [3] para todo esqueleto distinto a los de los objetos de base (artículo, breve, sección, sumario,...) para los cuales existe un archivo .php3 en la raíz, lo que permitía la llamada habitual de la forma:

Hasta SPIP 1.8 hacía falta crear un archivo .php3, para servir de soporte a tu .html en la antigua estructura de los esqueletos de SPIP, este debía estar situado forzosamente en la raíz del sitio [4].

Notas

[1Incluso se aconseja encarecidamente usar este método, pues este juego de esqueletos está pensado para ser tan modular como sea posible.

[2Como una nomenclatura de archivos en función de su rol, lo que hace, por ejemplo, que SPIP vaya a buscar los archivos de idioma en un subdirectorio lang/, como hemos visto más arriba.

[3Hay que notar que este método también funciona para las llamadas con la baliza <INCLURE(page.php3){fond=inc-entete}>.

[4Salvo, eventualmente, los que sólo se utilizasen en una llamada <INCLURE(squel.php3)> y no directamente por una URL. En este caso, el archivo squel.php3 podía moverse también al directorio de esqueletos.

Autor o autora dani Publicado el: Actualizado: 26/10/12

Traducciones: عربي, català, corsu, English, Español, français, italiano, Nederlands, Türkçe, українська