[SPIP Zone] creation d'un composant ACS

Le Monday 28 July 2008 07:30:20 webmaster@genealogie-kuhn.org, vous avez
écrit :

Bonjour

est ce que vous pourriez m'expliquer comment on créer un composant parce
que je ne comprend pas tout.

Pierre KUHN
Webmaster

Vous trouverez ci-dessous quelques explications pas à pas.

Un résumé sur la création de composants (ACS 0.3) est disponible là :

IMPORTANT : C'EST PLUS SIMPLE AVEC LA VERSION DEV qu'avec ACS 0.3, mais la
version dev n'est pas encore recommandée en production, ni documentée.
Choisissez selon l'échéance de votre projet. De toute façon les changements
ne sont pas énormes, et vont dans le sens d'une simplification.
___________________________________________________________________

Pour créer un nouveau compoant, il faut créer un nouveau dossier mon_composant
dans le dossier "composants" des squelettes actifs
(le dossier des squelettes actifs est le dossier de modèles ACS actifs ou - en
option - le dossier de squelettes personnalisés en surcharge d'ACS, qui doit
dans ce cas etre déclaré dans la page Administration du plugin ACS).

Créer composant.xml :
Dès qu'il trouve un fichier
<mes_squelettes_actifs>/composants/<mon_composant>/ecrire/composant.xml , le
plugin ACS (version dev) y reconnait un nouveau composant.
(Dans la version stable d'ACS, la 0.3, il faut en plus déclarer le composant
dans le fichier <mes_squelettes_actifs>/composants/config.php , qui n'existe
plus en 0.4 (simplification)).
En prenant modèle sur des composants existants, vous trouverez comment y
définir des variables configurables par ACS.

Créer le html du composant :
ACS cherche le fichier
<mes_squelettes_actifs>/composants/<mon_composant>/<mon_composant>.html
qui est un squelette SPIP standard. Vous pouvez le copier/coller à partir du
html existant que vous voulez transformer en composant configurable.
Les variables définies dans composant.xml sont accessibles dans le squelette
du composant par
#CONFIG{acsMonComposantMaVariable, ma_valeur_par_defaut_optionnelle}

En option : créer une feuille de style configurable :
Sur le meme principe, on peut, en option, créer une feuille de style
configurable propre au composant :
<mes_squelettes_actifs>/composants/<mon_composant>/<mon_composant>.css.html

Ajouter des traductions :
Chaque composant possède des fichiers de langues qui gèrent les textes
affichés. Ces traductions ne sont pas requises pour qu'un composant
fonctionne, mais elles sont nécessaires pour un affichage propre à la langue
active dans la partie privée de SPIP. Ce sont les fichiers de langue contenus
dans <mes_squelettes_actifs>/composants/<mon_composant>/ecrire/lang
nommés
Avec acs 0.3 :
<mes_squelettes_actifs>/composants/<mon_composant>/ecrire/lang/<mon_composant>_adm_fr.php
Avec acs 0.4 :
<mes_squelettes_actifs>/composants/<mon_composant>/ecrire/lang/<mon_composant>_ecrire_fr.php
Vous pouvez partir des exemples fournis dans Cat pour créer les vôtres.

Voilà, c'est tout pour les bases. En gros, il suffit de copier/coller des
fichiers depuis un composant déjà crée, puis de renommer les fichiers et ce
qu'il y a dedans en fonction de votre nouveau composant. C'est plus simple
que ça en à l'air dans ce mail ! :wink:

Ensuite, le compossant est utilisable dans n'importe quel page du squelette
SPIP actif avec une balise SPIP INCLURE :
<INCLURE {fond=compoants/mon_composant/mon_sous_compoant}>

Utilisation avancée :
Les composants peuvent définir leurs propres balises, options, et fonctions.
Ils possèdent - en option - une feuille de style CSS personnalisée, et leurs
javascripts à insérer dans la section <head> de la page web
Si vous avez besoin de tels composants, n'hésitez pas à explorer les
composants existants du modèle Cat pour trouver des exemples de code.
A ce jour, le code source de l'existant (dans Cat) reste la meilleure doc
disponible :wink:

Voilà, ça devrait vous suffire pour démarrer. Ensuite, n'hésitez pas à laisser
vos questions sur les forums du site http://acs.geomaticien.org/
car j'attends avec impatience les premiers messages sur ce site pour y activer
nos forums :wink: et puis les réponses publiées là-bas profiteront à tout le
monde, ce qui n'est pas le cas d'échanges par mail ou de messages sur les
listes de développeurs.

--
Daniel FAIVRE