Personal tools
You are here: Home Documentazione Ricette Customizzazione Zope 3-style
Document Actions

Customizzazione Zope 3-style

Obiettivo: come customizzare dei componenti di Plone, ma solo per i portali su cui è installato il nostro prodotto!

Utilizzando la ZCA è possibile fare l'override degli adapter registrati precedentemente da altri componenti software, customizzandoli.

E'possibile fare ciò in diversi modi:

  • registrare un proprio zcml di override globale (per tutti i portali dell'istanza)
  • utilizzare plone.browserlayer

In questa guida esploreremo la seconda via: plone.browserlayer.

Prerequisiti

Attualmente (versione 3.0.6) è necessario scaricare separatamente il package plone.browser.layer ed installarlo come prodotto Plone; nelle versioni successive di Plone (>=3.1) dovrebbe essere incluso di default.

Passo passo

Prima di tutto, dobbiamo modificare l'egg del nostro prodotto:

install_requires=[
...
       'plone.browserlayer',
...
      ],

Poi assicurarsi che il suo codice ZCML sia caricato correttamente nel proprio pacchetto:

<include package="plone.browserlayer" />

Creare una marker interface per il proprio layert:

from zope.interface import Interface

class IWorkgroupLayer(Interface):
""" IWorkgroup Layer """

Registrare il proprio layer con GenericSetup, nel file browserlayer.xml:

<layers>
<layer name="redomino.workgroup"
interface="redomino.workgroup.interfaces.IWorkgroupLayer" />
</layers>

Fare l'override del componente desiderato da codice ZCML, per esempio.:

<!-- overrides -->
<browser:page
for="*"
name="pas_search"
class=".search.PASSearchView"
permission="zope2.View"
allowed_interface="Products.PlonePAS.interfaces.browser.IPASSearchView"
layer="redomino.workgroup.interfaces.IWorkgroupLayer"
/>

In questo modo sarà possibile customizzare il componente desiderato (in questo caso una vista) solo per i portali Plone che avranno installato il proprio prodotto.

Ulteriori informazioni

 

by Davide Moro last modified 2008-02-25 17:50

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: