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 !

Notes

[1atención a la s final

[2que debe ser relativa al directorio de esqueletos


Traducción por Martín Gaitán

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom