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}>
]

Notas

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én es usted?
[Conectarse]

Para mostrar su avatar con su mensaje, guárdelo en gravatar.com (gratuit et indolore) y no olvide indicar su dirección de correo electrónico aquí.

Añada aquí su comentario

Este formulario acepta los atajos de SPIP, [->url] {{negrita}} {cursiva} <quote> <code> y el código HTML. Para crear párrafos, deje simplemente una línea vacía entre ellos.

Añadir un documento

Seguir los comentarios: RSS 2.0 | Atom