Vous avez un squelette en kit, truffé d’<INCLURE>
? mettez-les à disposition ! Voici une méthode pour partager facilement des fragments de squelettes SPIP, les fameuses « noisettes ».
Idéalement une noisette devrait être constituée de petits fichiers prêts à l’emploi, à glisser tels quels dans le dossier « squelettes ».
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.txt
et suivre les instructions - inclure
inc-manoisette.html
dans 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
En réponse à : Comment faire de belles noisettes à partager ?
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 Têtue
En réponse à : Comment faire de belles noisettes à partager ?
Ah, zut, j’avais pas pensé à ça, grml ;( Bon, j’m’y colle ;)
3. Le 5 janvier 2006 à 16:56, par Fil
En réponse à : Comment faire de belles noisettes à partager ?
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 Têtue
En réponse à : Comment faire de belles noisettes à partager ?
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 Stéphane Deschamps
En réponse à : Comment faire de belles noisettes à partager ?
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
En réponse à : Comment faire de belles noisettes à partager ?
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 Têtue
En réponse à : Comment faire de belles noisettes à partager ?
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
En réponse à : Partager facilement ses noisettes
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 Têtue
En réponse à : Partager facilement ses noisettes
... é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
En réponse à : Partager facilement ses noisettes
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 Têtue
En réponse à : Partager facilement ses noisettes
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)
12. Le 26 juillet 2011 à 13:32, par Julie
En réponse à : Partager facilement ses noisettes
Merci ! Je ne savais pas qu’on appelait cela une noisette !
Répondre à cet article
Suivre les commentaires :
| 