zcml:condition
Up to Table of Contents
Ipotizziamo di aver scritto un prodotto redomino.prodotto1 che contiene un semplice archetype. Questo prodotto non ha dipendenze obbligatorie, quindi se installato da solo funzionerà correttamente. Tuttavia se dovesse essere installato anche un altro prodotto per Plone (per esempio un prodotto per la generazione di pdf chiamato redomino.prodotto2), vorrei fornire una mia vista personalizzata per la generazione di report via web.
Come fare?
Nel prodotto redomino.prodotto1 potrei creare un package contenente il codice per customizzare alcune view o form; condiziono il caricamento di questo package SOLO se è installato redomino.prodotto2 (altrimenti otterrei un errore di import all'avvio oppure dovrei mettere farcire il codice di inutili controlli).
Ecco l'estratto del configure.zcml di redomino.prodotto1 come apparirebbe:
...
<include package=".prodotto2"
zcml:condition="installed redomino.prodotto2" />
...
Dall'esempio risulta chiaro che il package prodotto2 verrà considerato solo se redomino.prodotto2 sia installato.
Altri statement disponibili oltre a quello visto installed sono have e not-have e naturalmente not-installed.