Adapter un squelette pour être compatible avec le noiZetier

Il est préférable d’avoir lu Fonctionnement par défaut du noiZetier au préalable.

Deux cas de figures peuvent se présenter :

  • Votre squelette organise ses contenus d’une manière analogue à Zpip [1] : les contenus des différents blocs sont définis par des squelettes portant le nom de la page et situés dans un sous-répertoire portant le nom du bloc.
  • Votre squelette suit une toute autre logique organisationnelle.

Squelette avec une organisation analogue à Zpip

Deux éléments devront, selon le cas, être personnalisés :

  • le répertoire à examiner pour lister les pages pouvant recevoir des noisettes et
  • la liste des blocs par défaut de chaque page.

Personnaliser le répertoire contenant les pages du site

Ce répertoire peut être facilement défini dans un fichier d’options en lui ajoutant :

define('_NOIZETIER_REPERTOIRE_PAGES','mon_repertoire/');

Si ce répertoire contient à la fois des squelettes qui correspondent à des pages et des squelettes inclus, il est possible de restreindre la liste uniquement aux pages décrites par un fichier XML en définissant dans un fichier d’options la constante _NOIZETIER_LISTER_PAGES_SANS_XML à false.

Personnaliser les blocs de chaque page

Les blocs ajoutés par défaut à chaque page peuvent être définis facilement à l’aide du pipeline noizetier_blocs_defaut.

Une autre manière de procéder consiste à décrire chaque page à l’aide d’un fichier XML et d’inclure la définition des blocs dans ce fichier avec des balises <bloc /> de la forme :

<bloc id="sousrepertoire" nom="plugin:chainelange"  description="plugin:chainelange"  icon="img/fichier.png" />

Autre type de squelette

Si votre squelette suit une toute organisation, il est toujours possible d’utiliser le noiZetier à condition de lui définir les pages et les blocs et de lui préciser dans vos squelettes où inclure les noisettes.

Définition des blocs et des pages

Le plus souvent, à chaque page du site correspond un squelette situé à la racine. Dès lors, le plus simple consiste à décrire toutes les pages pouvant recevoir des noisettes à l’aide de fichiers XML situés à la racine, les blocs étant définis dans ces fichiers. Dans le fichier d’options, il suffit dès lors de définir les constantes _NOIZETIER_REPERTOIRE_PAGES et _NOIZETIER_LISTER_PAGES_SANS_XML comme suit :

define('_NOIZETIER_REPERTOIRE_PAGES','/');
define('_NOIZETIER_LISTER_PAGES_SANS_XML',false);

Si cette approche n’est pas adaptée à votre squelette, il est toujours possible d’utiliser le pipeline noizetier_lister_pages pour transmettre au noiZetier la description adéquate des pages et des blocs.

Insérer les noisettes au bon endroit

Tout d’abord, vous pouvez désactiver l’insertion automatique des noisettes à la fin des squelettes bloc/page.html en définissant dans un fichier d’options la constante _NOIZETIER_RECUPERER_FOND à false.

Ensuite, le plus simple consiste à inclure au bon endroit dans vos squelettes le fichier noizetier-generer-bloc.html de la manière suivante :

<INCLURE{fond=noizetier-generer-bloc}{bloc=nombloc}{type=nompage}{composition=nom_composition}{env}>

ATTENTION : cette inclusion ne permet pas de bénéficier de la fonctionnalité d’édition des noisettes depuis l’espace public. Pour pouvoir bénéficier de cette fonction, utilisez plutôt le code ci-dessous :

[(#ENV{voir}|=={noisettes}|et{#AUTORISER{configurer,noizetier}}|oui)
    <INCLURE{fond=noizetier-generer-bloc-voir-noisettes}
    {bloc=nombloc}{type=nompage}{composition=nom_composition}{env}>
][(#ENV{voir}|=={noisettes}|et{#AUTORISER{configurer,noizetier}}|non)
    <INCLURE{fond=noizetier-generer-bloc}
    {bloc=nombloc}{type=nompage}{composition=nom_composition}{env}>
]

Notes

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

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.

Qui êtes-vous ?
[Se connecter]

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

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

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom