Cómo hacer esqueletos fáciles de instalar y compartir

Con la versión 1.8.2 de SPIP se vuelve más simple hacer esqueletos fáciles de instalar (y de difundir sobre todo!) si se tiene en mente una organización clara.

Preámbulo

Este artículo no pretende proporcionar una guía perfecta, sino brindar algunos consejos que serán útiles para el mantenimiento de su sitio, y valiosísimos si quiere compartir sus esqueletos con la comunidad SPIP.

Los comentarios ayudarán a mejorarlo, y es seguro que va evolucionar gracias ustedes.

La baliza #DOSSIER_SQUELETTE

La baliza #DOSSIER_SQUELETTE es una novedad de spip 1.8.2 (ver. «SPIP 1.8.2» en spip.net).

En los esqueletos spip, los vínculos hacia la hoja de estilo o hacia las imágenes deben definirse desde la raíz del sitio, lo que obligaba hasta ahora a poner el nombre del directorio de esqueletos “a mano” en el código HTML. Por ejemplo una llamada a la hoja de estilo
mis_estilos.css colocada en el directorio mis_esqueletos/css se hacía de la siguiente forma:

<link href="mis_esqueletos/css/mis_estilos.css"... />

La baliza #DOSSIER_SQUELETTE sirve para sustituir la llamada textual del nombre de directorio con el objetivo de volver los esqueletos fáciles de difundir.

Así se escribirá ahora:

<link href="#DOSSIER_SQUELETTE/css/mis_estilos.css"... />

y el resultado será el mismo (véase más abajo cómo definir el directorio de esqueletos).

Continuando con la hoja de estilos, no olviden indicar adentro ruta hacia las imágenes eventualmente utilizadas (fondo de página, viñetas, etc...) de manera “relativa”.

Por ejemplo, tomemos en una carpeta de esqueletos que esté estructurada así:

mis_esqueletos
        css
          mis_estilos.css
        imagenes
          fondo.png
        article.html
        rubrique.html
        [...demás ficheros...]

Dentro de mis_estilos.css la llamada a la imagen de fondo debe realizarse de esta forma:

body {
 background-image: url(../imagenes/fondo.png);
}

En este caso poco importa el nombre del directorio de esqueletos, ya que si cualquier esqueleto puede encontrar la ruta de su hoja de estilo (mediante #DOSSIER_SQUELETTE), la hoja de estilos encontrará siempre sus imagenes.

El fichero page.php3

El fichero «page.php3», en la raíz del sitio, es una llamada dinámica al esqueleto determinado por la variable $fond. Esta variable puede haberse llamado por URL o como “criterio” para los <INCLURE()>

Entonces se puede utilizar este fichero para todos aquellos esqueletos que no tienen fichero de llamada .php3 propio (como si es el caso de “article.php3” para los artículos).

Suponga que se dispone de un esqueleto llamado galerie.html en el directorio de esqueletos. Lo normal sería tener un archivo galerie.php3 (generalmente ubicado en el raiz) que invoca al esqueleto en cuestion, pero eso puede ser reemplazado por este “invocador” general:

Por ejemplo el código de inclusión
<INCLURE(galerie.php3){id_article}>

puede ser reemplazado por

<INCLURE(page.php3){fond=galerie}{id_article}>

premitiendo al webmaster prescindir de galerie.php3.

Tenga en cuenta que no se puede invocar a un esqueleto que se encuentre en una subcarpeta del directorio de esqueletos

El directorio de esqueletos

Por defecto, SPIP va a buscar los esqueletos en un directorio llamado squelettes [1]. Si el sistema no lo encuentra (o no contiene los esqueletos buscados) busca los esqueletos en la raíz del sitio, y como tercera opción en el directorio dist, que es donde se incluyen los esqueletos de “fábrica”.

También se puede nombrar el directorio de esqueletos como se quiera si se lo indica a SPIP en el fichero mes_fonctions.php3 de la siguiente manera:

$GLOBALS[ 'dossier_squelettes' ] = "mis_esqueletos" ;

(ver «Las variables de personalización»).

Nuestro objetivo es poner todos los ficheros necesarios para el funcionamiento del sitio en un mismo directorio. Así será muy fácil compartir sus esqueletos con otras personas y otros sitios.

Se incluirán entonces:

  • todos los ficheros de esqueletos
  • los formularios modificados;
  • las hojas de estilo;
  • los javascript;
  • las imágenes de los esqueletos
  • los ficheros de idioma personalizados (ver «Internacionalizar los esqueletos», Método de ficheros de idioma).

Algunas observaciones

Los ficheros incluidos dentro de los esqueletos (con ) pueden estar en este directorio, como así también su fichero .php3 correspondiente, aunque se puede adoptar el uso de page.php3 como se describió anteriormente.

La «norma» adoptada por numerosas contribuciones es llamar a estos ficheros de la forma inc-algo. Entonces, dentro de la carpeta de esqueletos se tendrá la pareja inc-algo.php3 y inc-algo.html y este esqueleto puede ser incluido dentro de otro de la siguiente forma :

<INCLURE(inc-algo.php3){parametro}>.

Se puede también poner estos ficheros dentro de un subdirectorio si se precisa la ruta de acceso al fichero .php3 en la llamada, y la ruta al esqueleto en la variable $fond [2] (esto complica un poco las cosas, pero para los fanáticos del orden puede ser útil).

He aquí un ejemplo:

Todos mis esqueletos de inclusión están en dentro de un subdirectorio llamado inclusions, conteniendo también php3 están en dicho directorio y de la forma:

<?php
$fond = "inclusions/nom_du_fichier";
$delais = 24 * 3600;
include ("inc-public.php3");
?>

Los ficheros fond_fonctions.php3

Es posible gestionar mes_fonctions.php3 particularizados mediante ficheros llamados fond_fonctions.php3, donde fond corresponde al nombre del esqueleto donde se aplicarán los filtros en cuestión.
Estos archivos contienen funciones en php (filtros) igual lo hace mes_options.php3, pero no pueden ser utilizados sino por un único esqueleto. Por ejemplo article_fonctions.php3 existe y se encuentra en el directorio de esqueletos, entonces se llamará para aplicar los filtros que sean llamados desde article.html.

Esta posibilidad puede resultar práctica a veces para filtros que no son comunes a todos los esqueletos, permitiendo «distribuir» estos esqueletos sin tener que manipular mes_fonctions.php3 para que funcione.

Balance

Sólo nos resta el fichero mes_fonctions.php3 en la raíz del sitio (si es necesario), que contiene los filtros y funciones vinculadas a todos los esqueletos (así como el nombre del directorio que contiene los esqueletos)

La instalación se resume entonces, para el usuario:

-  subir todo el directorio de esqueletos a la raíz del sitio a través de ftp
-  y actualizar el fichero mes_fonctions.php3 si es necesario.

Para ir más lejos: Variables en la hoja de estilo

El sistema de esqueletos spip no se limita a generar código HTML, ya que tambíen pueden crearse esqueletos que generen hojas de estilo o ficheros javascript utilizando información de la base de datos. Veamos un ejemplo con una hoja de estilo que utiliza bucles spip:

1. Crear un fichero stylecss.php3 un poco especial

<?php
$fond = "stylescss";
$delais = 2 * 24 * 3600;
$flag_preserver = true;
@header("Content-type: text/css");
include ("inc-public.php3");
?>

-  Para una hoja de estilo es importante la línea: @header("Content-type: text/css");. Según el tipo de fichero generado se debe cambiar esta línea.

2. Crear un fichero stylecss.html que contiene la hoja de estilo, pudiendo incluir bucles si es necesario.

3. Y como este fichero se encuentra en el directorio de esqueletos, la llamada a esta hoja de estilo será:

<link href="#DOSSIER_SQUELETTE/stylecss.php3"... />

¡No te olvides de comentar tus esqueletos!

Finalmente, comentarle una última baliza poco documentada ya que es toda una novedad: la baliza #REM permite poner comentarios en el esqueleto sin que estos aparezcan o afecten al código generado:

[(#REM) este es el comentario que explica lo que hace este bucle]

Usarlo mucho permite clarificar su código y ayudará a los principiantes que quieran personalizar a su gusto los esqueletos.

Que esperas?...¡A compartir!

Footnotes

[1atención a la s final

[2que debe ser relativa al directorio de esqueletos


Traducción por Martín Gaitán

updated on 7 October 2005

Discussion

Aucune discussion

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom