Bookmark and Share
Document Actions

zcml:condition

Up to Table of Contents

Introduciamo un comodo statement ZCML per effettuare degli include condizionali, ad esempio per far lavorare bene insieme due prodotti differenti.

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.

by Davide Moro last modified 2008-10-21 12:26

errata

Posted by Davide Moro at 2009-10-20 17:07
Ricordarsi anche di mettere il namespace:

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

Supporto

Ottieni un
aiuto veloce e mirato sul forum, gratis!

partecipa al forum

 

Segui le icone

 

Livelli di difficoltà

livello guruSolo per i "guru"!
livello avanzatoPer configuratori e sviluppatori
livello medioPer chi ha già familiarità
livello basePer tutti!

 

I video

video

Il documento è supportato da un video!