1 - Son squelette : inc-manoisette.html
Il s’agit d’un fichier HTML contenant un fragment de code : une (ou des) boucle(s), balises SPIP et code HTML.
Ce fichier sera de préférence ainsi nommé inc-manoisette.html, où « manoisette » est à remplacer par le nom de la noisette. En commençant par « inc- » (abréviation de INCLURE) on retrouvera plus facilement ses noisettes parmi ses autres squelettes.
La noisette doit être autonome. On doit pouvoir l’ajouter et la retirer très facilement, indépendamment du reste [1]. C’est-à-dire qu’elle contient une boucle complète, avec ses balises de code optionnel, sans oublier les class ou id qui permettent de contrôler son apparence.
Le code qu’elle contient ressemblera par exemple à ceci (sur ce modèle) :
<B_maboucle>
<div class="bellenoisette">
<h2>Titre de ma noisette</h2>
<ul>
<BOUCLE_maboucle(TYPE){critère1}{critère2}...{critèrex}>
<li>
...
</li>
</BOUCLE_maboucle>
</ul>
</div>
</B_maboucle>
Elle peut être ajoutée n’importe où, dans n’importe quel squelette [2].
Elle sera appelée simplement par cette ligne, ajoutée au squelette à l’endroit souhaité [3] :
<INCLURE(page.php3){fond=inc-manoisette}>Au besoin, il sera précisé s’il faut ajouter le critère {id_rubrique} si on l’inclut dans un squelette de rubrique, {id_article} si on l’inclut dans un squelette d’article, etc...
2 - Ses filtres spécifiques : inc-manoisette.php3
Si la noisette utilise des filtres spécifiques, ne pas oublier de les fournir avec, sous la forme d’un fichier PHP du même nom : inc-manoisette.php3, en indiquant qu’il doit être renommé en mes_fonctions.php3 pour être fonctionnel (si ce dernier existe déjà, il suffira simplement d’y copier-coller le code).
3 - Son apparence : inc-manoisette.css
Son apparence est contrôlée à part, en CSS. Ce peut être laissé à la charge de l’utilisateur de la noisette, ou fourni avec celle-ci, directement dans le code HTML ou mieux : sous la forme d’une petite feuille de style.
La feuille de style sera nommée de la même façon : inc-manoisette.css
Le code qu’elle contient ressemblera à ceci :
.bellenoisette { ... }
.bellenoisette h2 { ... }
.bellenoisette ul { ... }
.bellenoisette li { ... }Veiller à bien respecter le principe de l’héritage, pour ne pas interférer sur les autres styles déjà définis pour le reste du site. Les classes (« bellenoisette », etc.) sont librement nommées, en évitant toutefois de leur attribuer des noms déjà en usage dans les feuilles de style par défaut de SPIP.
Si ces définitions de style utilisent des images, ne pas oublier de les fournir avec ;)
Elle est appelée par cette ligne, à ajouter au début de la feuille de style principale [4] :
@import url("inc-manoisette.css");
4 - Son mode d’emploi : inc-manoisette.txt
Pour être partagée facilement, elle doit être livrée avec son mode d’emploi : soit ajouté en commentaires dans chacun des deux fichiers précédents, soit dans un fichier texte à part.
Ce fichier texte sera nommé de la même façon : inc-manoisette.txt
Il contient les informations suivantes :
- à quoi sert cette noisette, que fait-elle ?
- la façon de l’inclure au squelette
- le nom et le contact (url ou mail) de l’auteur(e)
Comment s’en servir ?
Ainsi conçue, une noisette devrait être d’un emploi très facile :
- déposer ses fichiers dans le dossier squelettes
- ouvrir le fichier
inc-manoisette.txtet suivre les instructions - inclure
inc-manoisette.htmldans le squelette (et hop, ça doit déjà fonctionner) - importer la feuille de style
inc-manoisette.css(là, non seulement ça fonctionne, mais en plus c’est beau !) - en cas de pépin, relire le mode d’emploi et recommencer attentivement. Et si ça ne fonctionne toujours pas, contacter l’auteur(e) de la noisette.












Vos commentaires
1. Le 5 janvier 2006 à 14:21, par mortimer
Génial Romy !!!
il faudrait peut être aussi un manoisette_fonctions.php3 pour les noisettes qui utilisent des filtres perso.
2. Le 5 janvier 2006 à 14:38, par Romy Duhem-Verdière
Ah, zut, j’avais pas pensé à ça, grml ;( Bon, j’m’y colle ;)
3. Le 5 janvier 2006 à 16:56, par Fil
Pas mal du tout ; mais est-ce que les noms de class avec des underscores sont licites ? Regarde aussi du côté de hBones, les noms de class peuvent être sémantiques.
4. Le 5 janvier 2006 à 18:35, par Romy Duhem-Verdière
Tiens, justement... je change le souligné en tiret, pour rester dans la logique de nommage de SPIP, qui emploie plutôt "
inc-" habituellement (avec un tiret donc).Tiret ou underscore, c’est du pareil au même, ça fonctionne :
(Cf. : YoyoDesign : Les caractères et la casse)
Ceci dit, c’est vrai qu’on pourrait choisir autre chose que
class="inc-manoisette"qui n’est pas très joli-joli...class="manoisette"? Après tout, chacun-e fera comme il l’entend...C’est très joli, hBones, le code est clean, superbe ! J’vas essayer, tiens...
5. Le 5 janvier 2006 à 19:58, par Stephane Deschamps
Juste un petit truc : le tiret et le sous-tiret sont tous les deux valides effectivement.
Il fut un temps où j’aurais bondi : Netscape 4 avat la fâcheuse manie de planter dès qu’il lisait un sous-tiret dans une CSS (qu’elle soit appelée dans un fichier à part ou incluse dans une balise
style).C’est sans doute pour cette raison au fond qu’on continue à avoir peur des sous-tirets.
Pour autant je trouve que le sous-tiret est plus lisible dans les CSS, j’en abuse donc. Voilà, voilà.
6. Le 5 janvier 2006 à 22:13, par Fil
Oui je dirais qu’il faut conseiller de laisser libre le nom des classes, mais donner une indication qu’on peut souvent ajouter des classes microformats (type hBones) aux classes librement nommées. Pour avoir à la fois l’adressage « direct » pour les CSS, et l’information « sémantique » pour faire web 2.0
PS : ce forum est très chouette, on peut avoir la noisette ?
7. Le 23 janvier 2006 à 22:12, par Romy Duhem-Verdière
Pour répondre à Fil, première noisette, ce forum est disponible ici : Noisette de forum celadon
8. Le 17 février 2006 à 06:00, par Iago
Super !
Je carburais aux noisettes sans le savoir !
J’aime bien la notion de noisette autonome à partager. De définir un protocole d’echange est à encourager.
Mais que faire des noissettes en grappe ? Une grappe de noisettes ;-) Ça sonne drôle...
Personnellement, je divise souvent celles-ci en plusieurs niveaux logiques pour terminer avec l’affichage.
Est-ce que ma réserve de noisettes serait trop hors protocole pour nourrir la collectivité ?
Peut-être qu’il serait possible d’établir des règles de partage pour de petits sacs de noisettes autonomes ?
9. Le 17 février 2006 à 10:50, par Romy Duhem-Verdière
... évidemment ! En fait, il suffit simplement de considérer que c’est une « grosse noisette »... elle-même truffée d’inclure, hop, emballé-pesé !
Une noisette, c’est juste un fragment de code. Peu importe que celui-ci soit lui-même fait d’inclusions (pourvu qu’elles soient livrées avec). Pourvu que le tout demeure autonome.
10. Le 17 février 2006 à 15:23, par marabbeh
Ben je pensais juste a ca - les noisettes - car j’ai des boucles repetitives (mais non recursives) dans un squelette. Mais evidemment Spip va coincer car il trouvera plusieurs boucles du meme nom.
11. Le 17 février 2006 à 15:44, par Romy Duhem-Verdière
Même pas ! Deux boucles homonymes, l’une dans la page, l’autre dans une noisette incluse, ne posent aucun problème à SPIP. Si c’est pas le bonheur ;o)
Un message, un commentaire ?
Suivre les commentaires :
| 