Un composant ACS est une page ou un morceau de squelette Spip configurable par l’interface web du site.
- Composant Fond
Webmestre, web-designer
Le webmestre ou le web-designer configure l’apparence et le fonctionnement du site en configurant ACS et les composants du modèle ACS choisi à partir du menu Configuration de l’espace privé, sous-menu Configurer le Site. La première chose à faire est de paramétrer le composant qui définit le style général de tout le site (le composant Fond, dans le modèle Cat), de choisir quels composants optionnels on décide d’activer, puis éventuellement d’insérer ceux-ci dans un composant conteneur (Comme une instance du composant Module du modèle Cat).
Développeurs
Un composant respecte les critères de ce qui définit un objet, en programmatiion :
l’encapsulation : tout ce qui concerne un composant se trouve dans le dossier du composant.
le polymorphisme : chaque composant utilise des noms de propriétés unifiés ; l’apparence et le fonctionnement d’un composant peuvent différer selon le squelette où ils sont intégrés, selon le contexte, etc.
l’héritage : un composant peut "hériter" certaines de ces propriétés d’un autre composant.
Pour la partie publique du site, un composant est un simple morceau de squelette Spip. Pour la partie "ecrire", un composant est un objet avec des propriétés configurables par interface web.
Insérer un composant ACS dans un squelette
Tous les composants du modèle ACS actifs peuvent être intégrés aux pages de squelettes nouveaux ou existants, avec la balise INCLURE de Spip :
<INCLURE{fond=composants/<composant>/<sous-composant>}>
On peut passer des paramètres aux composants :
<INCLURE{fond=composants/<composant>/<sous-composant>}{self=#SELF}{autres paramètre(s)}>
Dans cet exemple, passer self permet à Spip de différencier les caches, pour assure un bon fonctionnement quand un même composant est utilisé sur plusieurs pages, et cette petite subtilité permet aux composants ACS "ajaxifiés" de bénéficier en mode Ajax
d’un cache Spip différent de celui de leur conteneur.
Créer ou modifier composant ACS
Le plus simple est de créer un dossier squelettes et d’y créer un sous-dossier composants, ou de créer directement un sous-dossier composants dans le dossier des squelettes existants, puis d’y copier/coller un ou plusieurs composants d’un modèle ACS existant et d’y créer un fichier composants/config.php avec la liste des composants que vous voulez rendre disponibles. En déclarant ce dossier des squelettes dans ACS (Onglet Administration), les composants de votre squelette seront automatiquement utilisés à la place des composants homonymes du modèle ACS actif. Votre squelette pourra donc ainsi utiliser les composants du modèles ACS actif, vos composants "hérités" du modèle actif modifiés par vos soins, et vos nouveaux composants.
Un seul fichier est réellement indispensable pour définir un composant, c’est le fichier composants/<composant>/ecrire/composant.xml
Dossiers et fichiers d’un composant :
composants/composant : racine
composants/composant/composant.html : squelette du composant
composants/composant/composant.css.html : feuille de style du composant
composants/composant/lang/ : fichiers de langue du composant (espace public)
composants/composant/composant.php : définition optionnelle d’une classe
composants/composant/composant_balises.php : définition optionnelle de balises spip propres au compoant
composants/composant/ecrire/ : éléments de l’espace ecrire
composants/composant/ecrire/composant.xml : fichier de définition du composant
composants/composant/ecrire/lang/ : dossier des traductions du composant pour l’espace privé
composants/composant/ecrire/composant.php : définition optionnelle d’une classe
composants/composant/img_pack/ : images et icônes du composant
Le fichier composant.xml
Le composant C est défini par son fichier composant.xml (dossier composants/C du squelette actif). Ce fichier définit les caractéristiques, les paramètres et les variables du composant C. Sa syntaxe est copiée sur celle des fichiers plugin.xml de Spip.
nom : nom du composant (nom canonique dans la langue choisie par le développeur du composant, de préférence le français, l’anglais, ou l’espéranto)
auteur : auteur(s) du composant
version : version du composant (doit correspondre à la version d’ACS)
version_acs_min : version minimale d’ACS.
version_acs_max : version max d’ACS.
version_spip_min : version minimale de Spip.
version_spip_max : version max de Spip.
param :
optionnel : true (absent= false, par défaut),
ou nom de variable meta (activation si la variable vaut "oui"),
ou plugin(s) nom_de_plugin (activation du composant si le plugin nom_de_plugin est actif)
preview : true (absent=false, par défaut). Hauteur de preview si numérique.
variable :
nom : nom de la variable
type : type de variable : img, couleur, textarea, widget ...
valeur : valeur par défaut. Peut être le nom d’une variable ACS : dans ce cas, la valeur est par défaut la valeur de la variable ACS.
chemin : "chemin de la variable". C’est le chemin par défaut des images pour une variable de type image. Chemin relatif à partir de $GLOBALS[’ACS_CHEMIN’] (accessible par la balise #ACS_CHEMIN{mondossier/monimage.png} depuis un squelette).
label : "non" pour ne pas afficher de label pour cette variable.
type de variable | usage | contrôle ACS |
Color | choix d’une couleur |
![]() |
Img | choix d’une image, upload |
![]() |
LargeurBord | Choix d’une largeur de bordure |
![]() |
StyleBord | Choix d’un style de bordure |
![]() |
Nombre | saisie d’un nombre | |
Text | saisie d’un texte court (input de type texte) |
![]() |
Textarea | saisie d’un texte long (textarea) |
![]() |
Choix | choix entre plusieurs alternatives |
![]() |
Widget | choix de composants (conteneur) |
![]() |
Hidden | input de type hidden |
Exemple :
<composant>
<!-- Nom du composant -->
<nom>MonComposant</nom>
<!-- Auteur du composant -->
<auteur>Nous © 2008 - licence GPL</auteur>
<version>0.3</version>
<version_acs_min>0.3</version_acs_min>
<version_acs_max>0.3</version_acs_max>
<version_spip_min>1.9207</version_spip_min>
<version_spip_max>1.9208</version_spip_max>
<param>
<nom>optionnel</nom>
<valeur>true</valeur>
</param>
<variable>
<nom>Color</nom>
<type>color</type>
</variable>
</composant>
Le composant MonComposant définit une couleur. Cette couleur est accessible partout dans les squelettes : c’est la variable #CONFIG{acsMonComposantColor} (en général, une couleur sera utilisée plutôt dans la feuille de style du compoant (fichier.composants/composant/composant.css.html).