Les directives ZCML

Comme vu plus haut, les différentes directives ZCML sont rendues disponibles par divers composants de Zope et Plone qui exposent leurs propres namespaces XML propres aux fonctionnalités que les dits composants fournissent.

Les namespaces standard

Les namespaces disponibles en standard avec Plone 4.1 sont les suivants :

Namespaces ZCML
Préfixe [1] URI Commentaire
browser http://namespaces.zope.org/browser Les directives de ce namespace permettent de déclarer des pages, vues viewlets, et parfois des menus de vos composants.
cache http://namespaces.zope.org/cache Ce namespace fournit deux directives permettant d'associer des règles de cache avec des types de contenus. Ce namespace est fourni par plone.app.caching qui est fourni en standard avec Plone 4.1
cmf http://namespaces.zope.org/cmf Une directive permet de déclarer un layer de skin CMF. Pour rappel, les layers de skins CMF sont une survivance facilitant le support de composants anciens pour lesquels une adaptation minimaliste à Plone 3 a été effectuée. Les nouvelles extensions pour Plone devront utiliser de préférence les ressources du namespace browser pour ceci.
five http://namespaces.zope.org/five Les directives spécifiques au composant Products.Five qui permettent de configurer des ressources spécifiques à Zope 2.
genericsetup http://namespaces.zope.org/genericsetup Les directives fournies permettent de déclarer les profils d'installation, d'exportation de configuration et de migration fournies par Products.GenericSetup.
i18n http://namespaces.zope.org/i18n L'unique directive de ce namespace permet de déclarer un répertoire de fichiers de traductions (fichiers *.mo) disposés selon le standard "gettext". Pour plus de précisions, voir le chapitre Internationalisation d'un composant.
kss http://namespaces.zope.org/kss Les directives kss permettent d'enregistrer des ressources Ajax.
meta http://namespaces.zope.org/meta Les directives fournies par ce namespace permettent de définir de nouveaux éléments ZCML (s'ils figurent dans un fichier meta.zcml) ou - plus rarement - de remplacer et personnaliser des éléments existants (s'ils figurent dans un fichier overrides.zcml).
monkey http://namespaces.plone.org/monkey Ce namespace est fourni par le composant collective.monkeypatcher. Ce composant permet de mettre en place des monkey patches de façon rationnelle et documentée. Les monkey patches actifs peuvent être vus dans le Control Panel Zope à l'aide du composant collective.monkeypatcherpanel.
plone http://namespaces.plone.org/plone Les directives fournies permettent de déclarer les portlets et les règles de contenus (content rules)
pluggableauthservice http://namespaces.zope.org/pluggableauthservice L'unique directive registerMultiPlugin permet de déclarer les plugins et multiplugins utilisables depuis PAS.
wicked http://namespaces.openplans.org/wicked Les directives de ce namespace permettent d'identifier les champs d'un type de contenu Archetypes qui peuvent se comporter comme une page Wiki.
z3c http://namespaces.zope.org/z3c Les deux directives du namespace z3c permettent de définir les widgets pour le gestionnaire de formulaires z3c.form
zcml http://namespaces.zope.org/zcml Les directives fournies par ce namespace permettent d'introduire des directives conditionnelles.
zope http://namespaces.zope.org/zope Namespace généralement choisi par défaut. Il est donc inutile de préfixer les éléments de ce namespace par zope si c'est le cas dans votre configuration ZCML. Les directives de ce namespace permettent de déclarer des fonctionnalités proposées par la ZCA, vue en détails dans Le guide complet de l'Architecture de Composants de Zope.

Zope 3 ou BlueBream disposent d'autres namespaces qui ne sont pas rendus disponibles aux applications Zope 2 à travers Products.Five. Nous ne les aborderons pas ici, mais les curieux pourront toujours se reporter au chapitre ZCML de la documentation de BlueBream (en).

[1]XML donc ZCML permet d'utiliser n'importe quel préfixe, mais pour des questions de lisibilité, il est recommandé de respecter la convention proposée.

Attention

Les namespaces provenant des composants de Zope 3 (plus précisément du "Zope toolkit") sont exposés par le biais de Products.Five. Du fait des particularités de Zope 2, les directives ZCML exposées par les composants du Zope toolkit intégrés dans Zope 2.12 ne sont pas toutes disponibles. C'est particulièrement le cas de préfixes apidoc, mail et xmlrpc.

Explorer les namespaces et directives

Comme l'auteur de ces lignes est soudain atteint d'une grosse fatigue au moment de détailler les diverses directives ZCML et leur utilisation, il a préféré réaliser un composant qui ajoute un tableau de bord Zope 2 qui affiche les détails des différents namespaces et directives mises à votre disposition.

aws.zope2zcmldoc

Je vous invite à installer sur vos instances de développement le composant aws.zope2zcmldoc et d'explorer depuis le tableau de bord la documentation au fur et à mesure de vos besoins.

Autre avantage : comme aws.zope2zcmldoc utilise la "réflectivité" des directives ZCML, pour ses différentes vues, vous pourrez également l'utiliser pour lire la documentation de namespaces et directives fournis par des composants de tierce partie comme iw.fss ou d'autres.

Quelques screenshots

../_images/controlpanels.png

Le nouveau lien dans le Control Panel Zope 2

../_images/allnamespaces.png

Les namespaces disponibles dans votre instance

../_images/namespacebrowser.png

Les différentes directives d'un namespace (ici "browser")

../_images/browsermenu.png

Le détail d'une directive ou sous-directive (ici "browser:menu)

Table des matières

Sujet précédent

Traitement des fichiers ZCML

Sujet suivant

Pour aller plus loin

Cette page


blog comments powered by Disqus