cfg : referencias

Explicaciones de uso detalladas de cfg, el plugin de configuración.

CFG es un plugin para SPIP que facilita la parametrización de otros plugins o esqueletos permitiendo crear fácilmente formularios de configuración.

Este artículo explica las bases de creación de esos formularios y el manejo de información a través de ellos. Además se proponen enlaces para profundizar en funciones avanzadas de CFG.

Único archivo de configuración

CFG nació por la necesidad recurrente de gestionar configuraciones en plugins y esqueletos.

Su lema es la sencillez. Por lo tanto la configuración de « cualquier_cosa » (un plug-in, una esqueleto o lo que quieras) se basa en un solo archivo fonds/cfg_cualquier_cosa.html [1]

Este « fond » contiene un formulario y las propiedades/opciones que se transmiten a CFG.

La modificación de datos (para una administrador del sitios) se realiza fácilmente a través de la acción CFG como ecrire/?exec=cfg&cfg=cualquier_cosa o cualquier_cosa correspondiente al nombre de archivo fonds/cfg_cualquier_cosa.html.

El formulario

Se trata de un formulario HTML estándar, interpretado como un esqueleto. Los datos manejados son reconocidos mediante el atributo « name » del campo del formulario. Por ejemplo :

-  <input type="text" name="cosa"...>,
-  <select name="cosa"...>,
-  <textarea name="cosa" ...>

Notas sobre los valores del atributo « name »

-  Los nombre comenzado por _cfg_ se reservan al funcionamiento interno.
-  Los nombres comenzados por id_ pueden ser problemáticos.

Enviar una acción asegurada
La acción del formulario está asegurada. Simplemente se debe agregar al formulario <form ...> un campo oculto :
<form method="post" action="#SELF">[(#ENV{_cfg_}|form_hidden)]

Botones de envío y cancelación
Por último, el botón de submit y el de reset deben llamarse _cfg_ok y _cfg_delete respectivamente (nombres reservados).

Formulario mínimo

Un formulario mínimo sería el siguiente :

<form method="post" action="#SELF"><div>[(#ENV{_cfg_}|form_hidden)]

<input type="text" name="mi_texto" value="#ENV{mi_texto}" />
<textarea name="mi_area">[(#ENV{mi_area})]</textarea>

<input type="submit" name="_cfg_ok" value="<:OK:>" />
<input type="submit" name="_cfg_delete" value="<:Supprimer:>" />
</div></form>

Como se puede ver, los valores de los datos se recuperan con #ENV{cosa}

Importante : El método de análisis de los formularios de CFG implica respetar el orden de los atributos de los campos input, textarea, select : type y luego name ; luego opcionalmente class y luego el resto de los atributos si los hubiera.

Las propiedades del objeto cfg

Mediante comentarios HTML comenzado por propiedad= es posible específicar propiedades intrínsecas del objeto CFG que manipulará el formulario.

Por ejemplo, se puede definir el título del formulario [2]

<!-- titre=Título del formulario-->

Se pueden usar balizas SPIP y archivos de idiomas :

<!-- descriptif=<multi>[es] Descripción en español [fr]Descriptif français [en]In english</multi>-->
<!-- descriptif=<:prefijo_plugin:descripcion_del_plugin:>-->
Aquí, la descripción será completamente interpretarse como un esqueleto ... incluyendo bucles y toda la maquinaria de guerra SPIP.

Propiedad Descripción
titre Uno de los dos títulos, será el principal si boite también está presente
boite Título secundario del formulario
descriptif La descripción mostrada a la izquierda
nom El prefijo de nombre con el que se guarda la información en la base. El valor predeterminado es el nombre del formulario , xxx de fonds/cfg_xxx

Existen otras propiedades avanzadas que pueden estudiarse en el artículo API CFG : Paramètres des formulaires

Usando los datos

Los datos almacenados se serializan bajo el nombre « cualquier_cosa » dentro de la tabla spip_meta.

Para recuperarlos dentro de un esqueleto se utiliza la baliza #CONFIG que interpreta cfg para extraer los datos particulares mediante el separador /.
Por ejemplo #CONFIG{cualquier_cosa/mi_area} devolverá el valor del campo mi_area producido por el formulario fonds/cfg_cualquier_cosa.html

Desde PHP se realiza análogamente mediante lire_config('cualquier_cosa/mi_area')

#CONFIG{} o lire_config() admiten como
segundo parámetro el valor a retornar por defecto. Por ejemplo
#CONFIG{cualquier_cosa/mi_area, área por defecto} devolverá <code>área por defecto si cualquier_cosa no existe o mi_area está vacía.

Notes

[1El « fond » que CFG use será el primero encontrado según el orden de prioridad de directorios : squelettes, luego un plugin activo, luego dist/, luego ecrire/

[2note el espacio entre <!-- y el = precedido del nombre del parámetro

Por supuesto, toda contribución es bienvenida. Puedes solicitar convertirte en co-redactor.

cfg como ZIP en la zona

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