Installer Zpip
Zpip se charge et s’installe comme un plugin. Pour installer Zpip et jouer avec sans plus attendre, il suffit de suivre le guide d’installation pas à pas.
Une fois installé, vous pourrez vous faire plaisir en téléchargeant des thèmes déjà existants, et revenir lire la suite de cet article au moment de mettre un peu les mains dedans pour le personnaliser !
Le projet Zpip
Plus qu’un squelette, Zpip est un exemple d’un système de squelette qui met en application les idées exposées dans Modèle de squelette réutilisable. Il propose une organisation des squelettes visant à le rendre :
- habillable par des thèmes indépendants du squelette
- maintenable dans le temps, par une duplication minimale du code
- rapidement déployable, au prix d’un petit apprentissage initial sur son organisation
Zpip s’adresse aussi bien aux débutants qui veulent profiter d’une galerie de thèmes prêts à l’emploi, qu’aux webmestres avancés pour qui il propose un fonctionnement et des mécanismes productifs.
Toute l’organisation et le fonctionnement de Zpip peuvent être réutilisés pour construire de nouveaux squelettes qui bénéficieront des mêmes avantages.
Organisation des fichiers
Zpip redéfinit tous les squelettes par défaut de la dist de SPIP, à la racine de son dossier : 404.html
, article.html
, auteur.html
, backend.html
, breve.html
, forum.html
, login.html
, mot.html
, page.html
, plan.html
, recherche.html
, rubrique.html
, site.html
, sommaire.html
, et spip_pass.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.
Nous voici donc avec deux squelettes supplémentaires à la racine : structure.html
et body.html
.
Le premier, structure.html
, 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.
Zpip contient de plus six sous dossiers.
Deux sont génériques :
-
img/
qui contient toutes les images de décoration -
inclure/
qui contient les squelettes communs et partagés entre les différentes pages du site.
Les quatre autres dossiers déclinent des morceaux de la page html en fonction de la page du site sur laquelle on se trouve :
-
head/
qui contient les squelettes de la section<head>
personnalisée pour chaque page, lorsque c’est nécessaire, qui s’ajoute à un<head>
commun situé dansinclure/
-
contenu/
dans lesquels seront mis tous les squelettes produisant le contenu principal de chaque page -
extra/
dans lesquels seront mis tous les squelettes produisant les informations extra contextuelles pour chaque page -
navigation/
dans lesquels seront mis tous les squelettes produisant les informations de navigation propres à chaque page
Layout Unique
Zpip est donc organisé autour d’un layout unique décrit par body.html
qui intègre 6 entités logiques de contenu et les structure à sa guise dans le HTML.
Les 6 entités sont nommées selon la convention ci-dessous, eu égard à leur contenu informationnel et sans préjuger de la dénomination et de la structure englobante définie par le thème :
- entête fournit la présentation de la page et d’identité du site
- barre-nav constitue la navigation principale du site ; peut être vide
- contenu contient l’information principale de la page, déclinée par type de page
- navigation fournit des éléments de navigation secondaire, déclinés par type de page
- extra fournit des éléments d’information connexes contextuels, déclinés par type de page
- pied fournit des éléments de repérages et de rappels secondaires
Le layout par défaut de Zpip est simple :
<div id="page">
<div id="entete">
<INCLURE{fond=inclure/entete,env}>
</div>
<div id="nav">
<INCLURE{fond=inclure/barre-nav,env}>
</div>
<div id="conteneur">
<div id="contenu">
<INCLURE{fond=contenu/#ENV{type},env}>
</div>
<div id="navigation">
<INCLURE{fond=navigation/#ENV{type},env}>
<INCLURE{fond=extra/#ENV{type},env}>
</div>
</div>
<div id="pied">
<INCLURE{fond=inclure/pied,env}>
</div>
</div>
Nous voyons que ce layout ne gère qu’une unique colonne #navigation
, laquelle intègre le contenu des blocs de navigation
et extra
.
Pages automatiques
Zpip intègre un mécanisme de génération automatique des pages complètes à partir d’un seul squelette de contenu.
Par exemple, il suffit d’écrire un squelette minimal contenu/page-inscription.html
contenant seulement :
#FORMULAIRE_INSCRIPTION
pour que la page complète spip.php?page=inscription
soit disponible.
Pour réaliser cela Zpip utilise les éléments communs inclure/entete.html
, inclure/barre-nav.html
et inclure/pied.html
. Pour les éléments de navigation et d’extra, Zpip utilise par défaut les squelettes navigation/dist.html
et extra/dist.html
si aucun squelette navigation/page-inscription.html
ou extra/page-inscription.html
n’est défini.
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 à des plugins de fournir des pages dédiées, utilisables sur tous les sites quelle qu’en soit leur structure, laquelle sera automatiquement fournie par Zpip.
Par exemple, un plugin de newsletter peut facilement fournir un squelette contenu/page-abonnement.html
(permettant à l’abonné de gérer son abonnement), qui pourra être utilisé tel quel par tous les sites reposant sur Zpip.
Menu de navigation principale
Zpip permet de gérer votre navigation principale directement dans l’espace privé à l’aide du plugin Menus. Il suffit de créer un menu avec l’identifiant barrenav
pour qu’il soit automatiquement inséré à la place de la navigation principale, sans modifications de fichiers.
Compositions
Zpip est naturellement conçu pour fonctionner avec le plugin Compositions qui permet d’utiliser plusieurs types de composition par objet, et de décliner les cœurs de page en fonction des besoins.
Thèmes
Grâce à sa structure, Zpip est utilisable directement avec une galerie de thèmes interchangeables.
Pour faciliter l’écriture de nouveaux thèmes pour Zpip, un certain nombre de conventions ont été documentées qui permettent de définir un socle commun.
Les thèmes qui respectent ces conventions pourront être utilisés indifféremment avec Zpip ou tout autre squelette reposant sur la même structure et les mêmes conventions.
Discussions par date d’activité
168 discussions
Bonjour,
La syntaxe des boucles me semble obscure. Par exemple, que signifie exactement ou pourquoi certaines pages du contenu on le préfixe page-...
Où il y a t il de la doc à ce sujet afin que je puisse progresser ?
Répondre à ce message
Bonjour,
Je ne sais pas si c’est exprès mais les formulaires tels d’intégration d’un site ou d’inscription sur le site n’ont pas les
[()]
.Du coup, même si on a désactivé l’option, ils apparaissent.
Merci.
[(#FORMULAIRE_INSCRIPTION)]
et#FORMULAIRE_INSCRIPTION
sont équivalents.Par ailleurs, je viens de vérifier, en désactivant l’inscription des visiteurs sur le site public, le formulaire disparaît bien. N’utiliserais-tu pas SPIP-Listes qui force l’inscription possible ?
Répondre à ce message
Oui, c’est bien ce que j’ai fait (copie de sommaire.html et contenu/page-sommaire.html dans squelettes + modif de ce dernier) ;). En plus du fait de vouloir garder l’intérêt de zpip, je ne voulais pas bidouiller dans le plugin.
Question : le couple Composition/Zpip est vraiment terrible. Mais :
- j’ai l’habitude d’utiliser le squelette par mot clé
- je trouve plus intuitif pour le rédacteur d’utiliser un mot clé
Me déconseilleriez vous d’utiliser SPMC au lieu de Compositions ?
Si tes mots clés ne servent qu’aux compositions , pour quoi pas.
Si les mots clés servent en tant que mots de themes (tags), ca risque de mélanger.
Mais si tes rédacteurs sont habitué, pour quoi changer ?
:)
inutile de copier le sommaire.html de la racine. Il encombre ton dossier squelette pour rien, et tu prends le risque de ne pas profiter d’un upgrade si le fichier d’origine de Zpip change légèrement. Sauf cas exceptionnel, il n’est plus nécessaire d’utiliser les squelette à la racine avec Zpip.
Super mec, ça roule. C’est dingue comme ça marche tout seul...
Répondre à ce message
bonjour,
Si Zpip et Composition fonctionne parfaitement, en revanche je n’arrive pas à faire varier une partie du contenu d’un article avec le plugin composition : je perds la structure du layout principal (entête et colonnes latérales)
la page article de zpip contient :
et les explications du plugin composition nous renseigne avec ceci :
<INCLURE{fond=#COMPOSITION|compositions_selectionner{article}}{env}>
qui doit être dans une boucle article.
Que faut-il changer ?
Il ne faut rien changer. J’ai mis a jour le plugin Compositions pour qu’il fonctionne naturellement avec Zpip, en selectionnant les compositions en remplacement de
contenu/article.html
uniquement.C’est donc le fonctionnement par défaut avec Zpip+Compositions.
effectivement déconcertant de facilité !
- En activant la banche du couteau suisse qui met à jour les plugins,
- de configurer le chemin d’accès au dossier « composition » dans les préférences du module composition, en
squelettes/compositions
il ne reste plus qu’à placer article-test.html et article-test.xml dans le dossier
/squelettes/compositions
merçi, merçi, merci …
Répondre à ce message
Zpip, z’est l’avenir, bienn zûr... tttt
Une idée... Z veut dire peut-être Zen... (j’ai pas tout suivi)
Il se trouve que dans mes squelettes, j’avais identifié les blocs par un nom préfixé par z, comme Zone : zNavigation, zMenu, zContenu, ...
Ne serait-il pas intéressant d’indentifier tous les blocs du squelette Zpip ainsi zBarrenav, zContenu, zNavigation, zSidebar-wrap, ... pour bien identifier les styles qui sont propres à Zpip ??
Répondre à ce message
Après quelques recherches, j’ai avancé. Le plugin composition n’est absolument pas adapté au but recherché. Par contre, la solution la plus propre que j’ai trouvé serait de créer un fichier sommainre dans /squelettes.
AInsi, je pourrais personaliser mon sommaire sans toucher à zpip.
Si ce n’est que pour enlever les derniers articles c’est dans :
squelettes/contenu/sommaire.html
Comme ca tu garde l’intéret de zpip ;)
Répondre à ce message
Bonjour et merci pour ta réponse.
Le plugin compositions fonctionne bien chez moi. Il faut respecter scrupuleusement la doc (sur ce site) et il n’y a pas de problème. Tu as peut être oublié un truc en route ? Il sera peut être plus rapide de recommencer l’install du plugin, de tes compos...
Pour mon problème, je pensais que composition ne servais qu’à faire des squels perso pour les rubriques et les articles. OK merci, je vais essayer de faire la même chose pour le sommaire.
Répondre à ce message
Comme je ne souhaite pas intégrer les derniers articles à ma page d’accueil, je pense que je devrais modifier directement le squelette. Je n’ai pas trouvé d’autres solution.
Si je comprends bien la documentation de Zpip, cela devrait être faisable en utilisant le plugin « Compositions ». Or je n’ai jamais vraiment réussi à le faire fonctionner. Quelqu’un pourrait-il nous éclairer là-dessus ?
Répondre à ce message
Bonjour et merci pour ce(s) plugin(s) qui me réconcilient avec Spip.
J’ai juste une question : comment personnaliser sa page d’accueil sans avoir à trifouiller dans le squelette zpip ?
Merci
Répondre à ce message
après tests et recherche, voilà ce que je peux dire
il faut effectivement le plugin menu installé
et donner comme identifiant (et non titre) barrenav au menu créé
et voilà, ça fonctionne
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |