Partager facilement ses noisettes

Comment faire de belles noisettes à partager ?

5 janvier 2006,
par Romy Têtue

Mots-clefs associés à cet article :

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 :

  1. déposer ses fichiers dans le dossier squelettes
  2. ouvrir le fichier inc-manoisette.txt et suivre les instructions
  3. inclure inc-manoisette.html dans le squelette (et hop, ça doit déjà fonctionner)
  4. importer la feuille de style inc-manoisette.css (là, non seulement ça fonctionne, mais en plus c’est beau !)
  5. 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.
{#TITRE,#URL_ARTICLE,#INTRODUCTION}

Vos commentaires

  • 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.

  • 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 ;)

  • 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.

  • 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 :

    En CSS2, les identificateurs (ainsi que les noms des éléments et ceux des classes et IDs des sélecteurs) ne peuvent contenir que des caractères parmi [A-Za-z0-9] et ISO 10646 supérieurs à 161, ainsi que le tiret (-) et le souligné (_)


    (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...

  • 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à.

  • 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 ?

  • 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

  • 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 ?

  • Le 17 février 2006 à 10:50, par Romy Têtue En réponse à : Partager facilement ses noisettes

    Grappe de 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.

  • 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.

  • 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)

  • 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

forum message

Raccourcis : {{gras}} {italique} -liste [bla->url] <q> <quote> <code>.

Qui êtes-vous ? (optionnel)

Suivre les commentaires : RSS 2.0 | Atom