Bookmark and Share
Document Actions

Customizzazione Zope 3-style
medio

Obiettivo: customizzare dei componenti di Plone solo per i portali su cui è installato il nostro prodotto, utilizzando plone.browserlayer!

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 dobbiamo assicurarci che il suo codice ZCML sia caricato correttamente nel proprio pacchetto:

<include package="plone.browserlayer" />

Occorre quindi creare una marker interface per il proprio layer:

from zope.interface import Interface

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

Dopodiché bisogna registrare il proprio layer con GenericSetup, nel file browserlayer.xml:

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

Infine 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-12-03 12:15
 

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!