Sektionen
Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Support Dokumentation docs Bedingte ZCML-Anweisungen (zcml:condition)

Bedingte ZCML-Anweisungen (zcml:condition)

Mittels zcml:condition kann die Ausführung von zcml-Anweisung in Zope gesteuert werden.

Problem

Eine zcml-Anweisung wird in Zope immer beim Systemstart ausgewertet. Wenn man z.B. ein global utility registriert, welches Recourcen eines anderen Packages verwendet, wird dies scheitern wenn das entsprechende Package nicht installiert ist.

Lösung

Mit Hilfe einer zcml:condition läßt sich prüfen ob ein Package installiert ist oder nicht. Abhängig davon kann die zcml-Anweisung dann ausgeführt werden.

<include
zcml:condition="installed zope.app.zcmlfiles"
package="zope.app.zcmlfiles"
/>
<include
zcml:condition="not-installed zope.app.zcmlfiles"
package="zope.app"
/>

Die Bedingung kann sowohl installed als auch not-installed sein. Damit die zcml:condition zur Verfügung steht, muss der folgenden Namespace im Kopf der zcml eingebunden sein.

xmlns:zcml="http://namespaces.zope.org/zcml"

 

Diese Infos stammen aus dem Zope3 Wiki:

http://wiki.zope.org/zope3/FAQ2007