SPIP Blog

Du logiciel libre et de la tendresse

Accueil > Développement > ToDo > Partager un squelette SPIP ... réflexion

Partager un squelette SPIP ... réflexion

lundi 2 janvier 2006, par Ben.

Partager un squelette, pas si facile !

Le contexte : un copain veut faire un site et a déjà entendu parler de SPIP. On en discute un peu ensemble et je lui propose de donner un coup de main : il s’occupe de remplir son site et de l’organiser, je m’occupe du squelette.

Ayant déjà fait l’expérience, je me dis « facile » il suffit de choisir un design sur Open Source Web Design puis de le « boucler » avec des boucles SPIP. Je lui demande donc d’aller se balader et de choisir un thème qui lui plaît. Il me revient avec celui-ci. Je le télécharge, je jette un rapide coup d’œil, OK il est propre et sera donc pas trop compliqué à SPIPer.

Avant de continuer je lui demande s’il est bien sûr que c’est le thème qu’il a choisi (genre, une semaine plus tard, « ah au fait tu as vu celui là il est pas mal aussi » ;-) ). Il me confirme. S’ensuit une petite discussion sur le libre. Oui ce thème est libre on peut le prendre et l’adapter. Mais je lui propose d’aller plus loin et de le placer sur spip-zone pour que d’autres SPIPeurs/euses puissent utiliser ce thème [1]. On en discute donc un peu par irc et je fini par le convaincre. Sachant que dans la discussion l’élément sur lequel nous étions d’accord est que le seul gros « risque » est de voir apparaître d’autres sites (francophones) ayant le même look.

Bon, donc, dans mon enthousiasme débordant je commit tout de suite la version originale du template et je commence à me mettre au boulot. Aujourd’hui j’ai une page sommaire qui ressemblera sûrement à la page finale.

Mais aujourd’hui j’ai aussi un problème. Bien sur je peux commiter ce que j’ai fait mais bon j’hésite. Pour la bonne et simple raison que dans le squelette j’ai par exemple

ou

et encore

Donc, comment partager le boulot que je suis en train de faire mais sans non plus intégrer des éléments spécifiques au site, et aussi — surtout, diront des mauvaises langues — comment faire pour qu’il soit le plus simple possible afin de limiter le « support » du squelette.

Bon évidemment, je ne suis sûrement pas le premier à me poser la question [2] mais je cherche une réponse.


[1squelette en langage SPIP

[2Je pense à tous les squelettes déposés sur spip-contrib, eva, biospip, blip et pleins d’autres

Messages

  • Moi j« ai des »noisettes" specifiques à mes trucs persos et j’ai aussi des squelettes qui ne sont pas pour l’instant sur la zone ...

  • Hello Ben !

    Pas moyen de poster un commentaire sur SpipBlog ce soir, grrr ! Alors
    je te réponds direct via mail.

    Ouaip, partager un squelette, pas si facile !
    Et même ouh-la-la ! vaste problème ! Ça fait quelques mois (ben oui)
    que je me prends le choux avec cette question, et pas en rêve, non, les
    mains dans le cambouis.
    Je n’ai pas LA réponse à ta question, mais j’ai peut-être une piste.
    À force de faire des squelettes spécifiques pour tel site puis tel
    autre...
    J’ai commencé à nettoyer un squelette par défaut, pour le rendre le
    plus simple, le plus standard possible, de façon à ce qu’il ne soit pas
    nécessaire d’y retoucher... Mais auquel on peut ajouter autant de
    « noisettes » que souhaitable, pour le personnaliser, et l’adapter aux
    besoins spécifiques de tel ou tel site.

    Ça ne répond pas à ta question, je sais, mais ça permettrait de ne plus
    avoir à se la poser à l’avenir ;)

    À partir de cette semaine, je vais commencer à publier progressivement
    quelques articles pour partager ma réflexion et mes découvertes pleines
    de cambouis. 2006 commence fort !

    Et à propos, meilleurs vœux & à très bientôt !

  • Ben justement :

    Maintenant, le projet de Nathan est sur la zone et ça serait une tres bonne solution pour ces histoires de noms de mots clefs, titre de section, bandeau publicitaire(qui pourrait être une contrib à part entière apres tout) , etc...

    Z’êtes les bienvenus.

  • D’une manière plus générale, je pense que pour faire un squelette transposable, il faut :

    • mettre dans l’archive un dump de la base avec les mots-clés utlisés, les rubriques spéciales s’il y en a, et des articles de documentation sur le squelette (oui, dans le site, directement)
    • éviter comme la peste de mettre des numéros d’articles, de mots clés de groupes de mots dans les boucles. On leur préférera des filtres à base de mot et groupe de mot, qui survivront à un erreur de la part du webmestre (effacement d’un mot clé par exemple. Il suffit de le recréer avec le même nom. Facile puisque le nom est dans l’article de documentation).
    • User et Abuser des balises [(#REM) commentaire de code ] dans les squelettes, pour expliquer ce que l’on fait (et mettre des liens vers la doc en ligne pour les trucs tordus / ou pour guider le débutant).
    • doubler ces commentaires de code avec des noms de boucles explicites. Pas de BOUCLE_0, mais BOUCLE_exclure_rubriques_privees.
    • tant qu’à faire, produire un code (X)HTML et CSS simple, accessible et valide.
    • indiquer dans un des article le but du squelette et l’idée-force de sa conception.

    On a une bonne base là...

  • Pour ma part, j’utilise une configuration par titre de mots clefs (comme suggéré par Olivier) et j’ai réalisé une moulinette d’exportation et d’importation de ces mots clefs.

    En allant dans ecrire/postconfig.php3, les mots clefs sont installés et modifiés si le titre existe déjà.

    Voir en ligne : Importation et synchronisation de mots clefs entre sites

  • Faut arreter ... c’est pas si compliqué que ça

  • Imposer des mots-clés, pire, une base de données ; obliger un webmaster à suivre une arborescence de rubriques prédéfinie et rigide, c’est pil-poil le contraire de l’objectif recherché, à savoir apporter de la souplesse dans l’utilisation d’un squelette et ça détourne de leur usage les mots-clés qui ont à l’origine un but éditorial. Ce serait domage de faire une croix sur un des atouts majeur de spip (la souplesse de l’organisation éditoriale de son site)

    Petit rappel du contexte : le copain remplit son site

  • là, je me permet un pinaillage de principe et de vocabulaire :

    thème et squelette, ce sont deux concepts différent, même dans spip.

    un thème, c’est l’aspect : les couleurs, la taille des caractères, bref, pour le web c’est du CSS.

    un squelette, c’est un fichier ou un ensemble de fichier qui vont générer des pages dans un format à priori quelconque (xhtml, c’est un exemple, mais on peut imaginer le mail, des pdf, des zips, des svg, de l’OpenDocument, du rtf... du javascript et pourquoi pas un ldif pour un annuaire ldap... du coup, où est le thème dans tout ça ?)

    Exemple : ce site a souvent changé d’apparence et le modèle de document est toujours le même : On a change les thèmes sans jamais avoir changer le squelette.

    D’ou, finalement ma question : vous voulez proposer des css interchangeables ou des squelettes modifiables ?

  • James, tu as raison.

    Moi je prends maintenant pour regle quand je dois démarrer un squelette par defaut de lui donner d’abord une equivalence au squelette par defaut ( et c’est deja énorme) en utilisant des noisettes. Puis je style en CSS et j’ajoutes des bidouilles en js. Et ensuite je personalise . Comme cela j’ai une version standard... apres il faut voir si j’ai envie d’assurer les service aprés vente.

    Dans les squelettes SPIP ont 2 familles.

    Par exemple Bones et Bliip, les squelettes se ressemblent beaucoup à la base mais ils ont deux conceptions differentes. Bones est un equivalent à « dist », il en fait pas plus. Bliip est tres complet
    Bones est plus personalisable et bliip est plus riche.

    Et en plus cent20 est une poule mouillé parce que il veut pas jouer à warcraft avec moi :)

  • les mots-clés pour le squelette, c’est mal.

    Je ne suis pas sûr de partager ce point de vue car le mot-clé est bien commode pour paraméter un squelette. et puis quelle autre solution ?

    Le fait de réserver quelques mots ou groupe de mots pour le squelette n’est pas une réelle contrainte. Bien entendu, une fois le squelette choisi et les mots clés massivement utilisés, il devient difficile de revenir en arrière mais c’est vrai de n’importe quel choix de mot-clé.

    ça détourne de leur usage les mots-clés qui ont à l’origine un but éditorial.

    Pourquoi le mot clé Album d’un squelette, par exemple, n’aurait-il pas un sens éditorial ? Ne permet-t-il pas de naviguer transversalement, çàd par un autre moyen que les rubriques, au même titre que d’autres mot-clé ?

  • D’ou, finalement ma question : vous voulez proposer des css interchangeables ou des squelettes modifiables ?

    Ta question présuppose que le css est un fichier séparé, or il peut ne pas l’être. Le squelette peut venir déjà habillé au moins en partie.

  • L’essentiel est donc de pouvoir commiter un squelette parametrable.

    J’ai le pb avec mon squelette CahierSpip.
    Pour moi l’ideal serait de pouvoir avoir des variable php de config genre $id_rubrique_exposer=3 mais il est impossible d’utiliser les variables php dans une boucle . . .

    Je ne me suis pas encore resolu a faire cela avec des mots cles,c a ne me semble pas une solution de configuration simple et rapide comme de poser une variable php dans un fichier de config.

    Pour l’instant je conseille donc de modifier les numeros de rubrique a exposer dans les boucles concernees.

    Si il est dificile/impossible d’avoir des variables php dans les boucles, il faudrait un autre systeme de variables de config/environnement spip qui seraient utilisables pour un critere de boucle comme id_rubrique=xxxx

    http://www.spip-contrib.net/ecrire/articles.php3?id_article=1183&bonjour=oui semble etre une piste tres interessante.

    Voir en ligne : CahierSpip

  • Mon opinion toute personnelle, c’est que les mots-clés détournés, c’est un piège à éviter : les mots clés s’appliquent à des objets éditoriaux et, que je sache, un squelette est un fichier. C’est une différence de concept assez grande à mes yeux pour chercher une piste ailleurs. (balise #META à définir par exemple...)

    Reservez des mots-clés, c’est un peu pareil : si j’utilisais « album » avant de chercher à employer ton squelette, c’est foutu. Soit je me rhabille, soit je bricole ton squelette (et c’est pas le but recherché autour de cette discussion) soit je défais une partie de « mon » site pour rentrer dans « tes » cases : c’est raté encore une fois, au lieu de gagner en souplesse, je suis prisonnier de ta façon de concevoir un site... et j’en conclus hativement que spip c’est pâbon...

  • Réponse à James,

    META est peut-être une solution. Peux tu expliciter ?

    Pour les mots clé, ma question reste entière : en quoi Album n’aurait-il pas un sens éditorial ?

    Le fait que l’on utilise un fichier sous-jacent est accessoire aux yeux du visiteur pour qui la différence de concept Squelette/mot-clé est invisible. et le fait d’utiliser un mot clé réservé n’est qu’un problème mineur puisqu’on peut renommer un mot-clé. D’ailleurs, le choix d’un squelette en fonction du mot-clé est au libre choix du Webmestre qui peut nommer comme il veut ses variantes dans mon squelette (Epona pour être précis) on peut avoir une variante article-toto.html pour peu que l’on ait un mot-clé toto dans un groupe « _Article ». Est-ce une réelle contrainte ?

  • On pourrait peut être ajouter à la liste d’Olivier eviter le refactoring à gogo avec des inclusions dans tous les sens comme c’est le cas sur BliP afin de faciliter la compréhension du squelette et d’éviter d’avoir à jouer au petit poucet pour modifier une ligne de code.

  • Je trouve aberrante l’idée de mettre des variables ou instructions de php pour créer des automatismes, dans le but d’éviter à l’utilisateur d’avoir à modifier les squelettes...

    Pour un utilisateur un peu habitué à spip ça veut dire seretrouver avec des squelettes encapsulés avec des instructions qu’il ne pas savoir modifier sans avoir peur de tout « casser »...
    le résultat c’est qu’il perd la liberté de faire évoluer le squelette en fonction de ses besoins... juste en intervenant sur les boucles et le fichier html et il devient encore plus dépendant du support du créateur du squelette ...

    Si c’est ça c’est plus un spip... c’est un kit... pourquoi pas faire un xoops avec des modules tout prets... (berk)
    On s’éloigne de l’esprit de spip.

    Dans l’idée, le squelette il doit juste pouvoir changer d’habillage via css et prévoir quelques options d’affichage générées intutivement par mot clé...

    et je trouve que pouvoir choisir des types de squelettes inclus ou affichés en fonction de mots clés et boucles c’est une solution tout à fait facile à appréhender pour un utilisateur. c’est pas difficile de créer un groupe de mots clés réservé à l’admin et aux paramètres d’affichage
    Mettre sur une rubrique un mot clé « annuaire » qui affiche un squelette spécial si c’est un annuaire.... c’est quand meme assez logique, même pour le webmestre éditorial

    Même un utilisateur débutant fini par apprendre, et apres il a envie de fignoler son squelette et c’est important qu’à l’intérieur du squelette on ait toujours du spip « normal » avec des boucles compréhensibles pas plein de php ou de js partout... où dès qu’on change un truc on a une parse error etc...

    le besoin... il est simple à la base... Proposer un squelette fonctionnel, présentable et personnalisable.
    Ca c’est l’important,
    En revanche si on cherche à trop automatiser, pour que cela soit « Facile » je crains que l’on ne perde en liberté.

    On aura un spip à deux vitesses avec des initiés de plus en plus éloignés des spipeurs d’en bas...

  • Bon alors... je n’ai pas encore abouti dans mes recherches perso pour trouver comment partager un squelette facilement, mais j’ai réussi à poser une méthode pour partager des fragments de squelette (un menu, un pied de page, un calendrier...), les fameuses « noisettes ». C’est facile, c’est beau, c’est propre, c’est clean.

    Ça peut être un début intéressant. Qui pourrait permettre de penser le reste plus facilement.

    Yep, j’vous envoie ça dès aujourd’hui ;-)

    Voir en ligne : Atelier Spip

  • Nat 33 disait : « Je trouve aberrante l’idée de mettre des variables ou instructions de php ... , dans le but d’éviter à l’utilisateur d’avoir à modifier les squelette »

    Exactement. Un bon squelette doit se prêter aux modifications, sans imposer un quelconque paramétrage pour être fonctionnel. Pour moi, le seul problème est que le Logo de site, celui qu’on veut mettre dans un bandeau, se confond avec le logo de la rubrique racine qui est généralement accolé aux articles comme logo par défaut.

  • Ayé, voici ce que je propose comme méthode pour partager facilement des fragments de squelettes, les fameuses « noisettes ».

    Voir en ligne : Atelier Spip

Un message, un commentaire ?

Qui êtes-vous ?
Se connecter
Votre message

Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.