SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 325 visiteurs en ce moment

Accueil > Squelettes > Squelettes généralistes > SPIPr > Framework Z dans SPIPr

Framework Z dans SPIPr

23 mars 2015 – par Cerdic – commentaires

1 vote

Documentation source http://spipr.nursit.com/framework-z

Z pour SPIP

Le framework Z est disponible pour SPIP sous la forme du plugin Z-core. Il prend en charge tous les automatismes du framework, et intègre les briques de bases sur lesquelles sont construites SPIPr.

Organisation des blocs de page

Dans SPIPr il a été choisi de découper le corps de la page en 6 blocs déclinables page par page, nommés et organisés comme suit :

  • header est le bloc d’en-tête de la page ;
  • breadcrumb est le bloc de navigation fil d’Ariane de la page ;
  • content est le bloc de contenu principal de la page : cest lui qui pilote l’existence d’une page ;
  • aside est un bloc de contenu secondaire, plutôt dédié à ce qui est en relation avec le contenu principal de la page ;
  • extra est un autre bloc de contenu secondaire, pour ce qui n’a pas de rapport direct avec le contenu principal de la page ;
  • footer est le bloc de pied de la page ;

Par ailleurs, le plugin Z-core ajoute 2 blocs de meta-contenu supplémentaires, qui concernent la partie <head> de la page :

  • head est le contenu éditorial spécifique à la page (<title> et autres <meta> descriptions ;
  • head_js permet d’ajouter des scripts externes spécifiques à la page (ils ne seront pas concaténés avec les scripts communs à toutes les pages). Ces deux derniers blocs ne concernent pas du contenu visible de la page, mais fonctionnent de la même façon.

Ce découpage en blocs est une convention choisie et utilisée par SPIPr. Vous pouvez la modifier ou la personnaliser, mais alors il se peut que certains thèmes ou plugins ne fonctionnent plus automatiquement, et vous devrez adapter au cas par cas à votre convention de nommage des blocs.

Organisation des dossiers

Pour chaque bloc de la page, un dossier homonyme contient les squelettes de chaque page. On utilise donc 8 dossiers homonymes aux blocs :

  • header/
  • breadcrumb/
  • content/
  • aside/
  • extra/
  • footer/
  • head/
  • head_js/

En complément, on utilise le rangement dans les dossiers suivants :

  • inclure/ contient les squelettes inclus transverses, c’est à dire commun à plusieurs pages du site
  • img/ contient les images utilisées par les squelettes
  • css/ contient les feuilles de style au format CSS ou LESS
  • css/img/ contient les images décoratives utilisées par les feuilles de style

A la racine, subsistent certains squelettes utilies pour SPIP, comme 404.html, article.html, auteur.html, backend.html, breve.html, forum.html, mot.html, rubrique.html, site.html.

À l’exception du flux RSS (backend.html), tous ces squelettes sont réécrits de façon minimale pour inclure structure.html qui produira toutes les pages. Vous pouvez donc oublier tous ces squelettes issus de la dist : vous n’aurez plus besoin de les manipuler, sauf cas exceptionnel.

Z-core fournit le squelette structure.html qui sert à la fabrication de toutes les pages. Ce squelette pose la structure minimale de la page HTML, inclut les squelettes chargés de produire le head, puis le body.html qui définit le layout unique et sur lequel nous revenons ci-dessous plus en détail.

Layout unique

Le layout unique facilite l’homogénéité des pages du site, et simplifie la maintenance du site dans le temps.

Le framework Z permet donc d’organiser toutes les pages du site autour d’un layout unique décrit par le squelette body.html qui appelle les 6 blocs de contenus déclinables vu plus haut ainsi qu’une barre de navigation commune à tout le site et les organise à sa guise dans le HTML.

Le layout par défaut de SPIPr est simple :

Nous voyons que ce layout par défaut ne comporte qu’une unique colonne #aside, laquelle intègre le contenu des blocs de aside et extra.

Layouts spécifiques

Certaines pages du site peuvent nécessiter un layout spécifique, différent de celui utilisé sur le reste du site. Pour cela il suffit de créer un squelette de layout suffixé par le nom de la page.

Par exemple, si le layout body-sommaire.html existe, il sera utilisé pour la page sommaire et seulement pour celle-ci.

De même, si le layout body-article.html existe, il sera utilisé pour toutes les pages article du site.

Pages automatiques

Le framework Z intègre un mécanisme de génération automatique des pages complètes à partir du seul squelette de contenu principal.

Par exemple, il suffit d’écrire un squelette minimal content/inscription.html contenant simplement :

pour que la page complète spip.php?page=inscription soit disponible.

Pour réaliser cela Z utilise les éléments communs inclure/entete.html, inclure/barre-nav.html et inclure/pied.html.
Pour les autres parties de la page, Z utilise par défaut le squelettes aside/dist.html si aucun squelette aside/inscription.html, extra/dist.html si aucun extra/inscription.html n’est défini et ainsi de suite pour les blocs header, footer, ...

Ce mécanisme de pages automatiques permet d’ajouter, aussi rapidement que facilement, des pages spécifiques, en cohérence immédiate avec le reste du site. De même, il permet aux plugins SPIP de fournir des pages dédiées, utilisables sur tous les sites reposant sur Z, quelle qu’en soit leur structure, laquelle sera automatiquement fournie par le squelette.

Cette création rapide de page s’applique aussi bien à des pages particulières du site, isolées, comme la page inscription précédente, mais aussi aux pages des objets éditoriaux.
Il suffit de proposer par exemple un squelette content/evenement.html avec les boucles nécessaires pour créer une page de site pour chaque événement de la table spip_evenements

Echafaudage de page d’objet éditorial

Pour un nouvel objet éditorial associé à une table SQL, il est même possible de visualiser une page sans écrire une seule ligne de squelette.

Cette fonctionnalité est réservée aux webmestres, pour ne pas risquer de divulguer des informations non publiques aux autres utilisateurs du site (il faut avoir le statut webmestre, qui est affiché sur la page de chaque auteur dans l’interface de rédaction de SPIP).

En ayant le statut de webmestre, vous pouvez visualiser la page de tout nouvel objet éditorial existant. Si par exemple vous avez ajouté un objet evenement dans une table spip_evenements, vous pouvez visualiser sa page à l’url spip.php?page=evenement&id_evenement=1.

Z essayera alors de construire une page avec un squelette content/evenement.html. Si il ne le trouve pas, il va construire à la volée un squelette en se basant sur la structure de la table spip_evenements.

Ce squelette construit automatiquement vous permet de visualiser les données, et peut être utilisé comme point de départ à l’écriture de votre « vrai » squelette.

Pour ce faire, ajoutez &var_mode=inclure dans l’url pour visualiser le nom du squelette généré par Z et le copier ainsi dans votre dossier squelettes/ avant de le personnaliser.

Si vous utilisez le plugin SkelEditor cette opération est facilitée au maximum :

  • le bouton Squelettes&CSS vous permet de passer en &var_mode=inclure,
  • un clic sur le nom du fichier source échafaudé vous permet de l’éditer directement dans l’espace privé,
  • un clic sur Enregistrer vous permet d’en enregistrer une copie dans le dossier squelettes.

Notes

[1Le projet est né sous la forme d’un squelette pour SPIP, puis a pris son indépendance comme framework

Dernière modification de cette page le 23 mars 2015

Retour en haut de la page

Vos commentaires

  • Le 22 juillet 2015 à 11:55, par Yann En réponse à : Framework Z dans SPIPr

    Mon souci, c’est que je ne comprends pas ce que fait le système. Des fois cela a l’air de fonctionner comme avant et d’autres fois non. Je me suis dit que cela avait peut-être changé.
    Un exemple concret :
    -  j’ai créé un fichier squelettes/inclure/resume/article=2.html ;
    -  j’ai bien dans le même répertoire le fichier article.html ;
    -  le système appelle parfois cette page article=2.html pour les résumés, même si ce n’est pas depuis la rubrique 2 : c’est ce que fait sommaire.html ;
    -  mais ce n’est pas obligé : la rubrique 3, elle, appelle bien squelettes/inclure/resume/article.html pour ses résumés ;
    -  et, en effet, comme avant, par exemple j’ai aussi créé le fichier squelette/content/rubrique=2.html et seule cette rubrique y fait appel.

    Répondre à ce message

  • Le 9 juillet 2015 à 14:56, par Yann En réponse à : Framework Z dans SPIPr

    Bonjour,
    je découvre ce framework, je m’excuse par avance si ma question est naïve. J’ai eu beau chercher un peu partout, je n’ai pas trouvé s’il était possible d’avoir des variantes de pages avec ce framework, comme c’est expliqué dans http://www.spip.net/fr_article3445.html
    J’y ai très souvent recours, et j’ai bien tenté de mettre des fichiers avec cette nomenclature dans le répertoire « content » mais cela ne semble pas fonctionner.
    Si certains savent comment faire, je serais intéressé.
    Cordialement,

    • Le 9 juillet 2015 à 20:08, par Maïeul En réponse à : Framework Z dans SPIPr

      je viens de refaire un test. cela marche. Mais il ne faut pas oublier de mettre AUSSI le fichier article.html dans le dossier.

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Mailsubscribers

    16 janvier 2013 – 274 commentaires

    Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email. Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes (...)

  • noiZetier v2

    9 novembre 2012 – 36 commentaires

    Le noiZetier offre une interface d’administration permettant d’insérer au choix des éléments modulaires de squelettes (noisettes) et de les ajouter ainsi à ses squelettes. Compatibilité La version 2 du noizetier fonctionne sous SPIP 3. Elle est (...)

  • cirr : plugin « rédacteur restreint »

    29 octobre 2010 – 60 commentaires

    Ce plugin « cirr : rédacteur restreint » permet d’affecter des rubriques aux rédacteurs et modifie les droits afin qu’un rédacteur restreint (ou un administrateur restreint) voit dans l’espace privé uniquement les rubriques qui lui sont affectées (et leur (...)

  • Un retour d’expérience d’utilisation de Formidable

    26 octobre – commentaires

    Il s’agissait de créer un formulaire d’inscription à un évènement modérer les inscriptions dans le privé publier les inscriptions dans le public Nous avons discuté de cette présentation lors de l’apéro SPIP du 15 février 2016 à la Cantine (...)

  • Métas +

    3 décembre – 14 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

Ça spipe par là