[Plone-IT] Template differente per la homepage

Vito Falco vitofalco a gmail.com
Ven 17 Lug 2009 17:33:43 UTC


Errata corrige.
Facendo un copia/incolla del codice ho dimenticato (quindi fallo tu) di
sostituire il "eves.skin" con "plone.tema" tuo.

V.

Il giorno 17 luglio 2009 19.32, Vito Falco <vitofalco a gmail.com> ha scritto:

> Ciao,
> allora chiarisco un po'.
> Innanzitutto dovrai lavorare sui files che hai creato per il tuo pacchetto
> di tema, che non conoscendo lo identificherò come "plone.tema".
>
> 1. possiamo non utilizzare una nostra marker interface per uno scopo poco
> complesso. Quindi utilizzeremo l'interfaccia già presente in plone chiamata
> "Products.CMFCore.interfaces.ISiteRoot". Questa interfaccia è presente (is
> provided by) l'oggetto "plone site".
>
> 2. in browser/configure.zcml aggiungi:
>
>> <browser:page
>>         for="Products.CMFCore.interfaces.ISiteRoot"
>>         name="hp"
>>         class=".hp.hpView"
>>         permission="zope2.View"
>>     />
>>
> Quindi così facendo gli stai dicendo di usare la classe contenuta nel file
> "hp.py" chiamata "hpView", ogni qualvolta incontra un contesto dove
> l'interfaccia "Products.CMFCore.interfaces.ISiteRoot" è utilizzata, quindi
> nella home di un plone site ;-)
> Andiamo così a definirla...
>
> 3. nella cartella browser crea un file py chiamato "hp.py" e inserisci:
>
>> from Acquisition import aq_inner
>> from Products.Five.browser import BrowserView
>> from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
>> from plone.memoize.instance import memoize
>>
>> from zope.interface import implements
>>
>> from DateTime import DateTime
>> from Products.Five import BrowserView
>> from Products.CMFCore.utils import getToolByName
>>
>> from eves.skin.browser.interfaces import IHpView
>>
>> class hpView(BrowserView):
>>
>>     template = ViewPageTemplateFile('hp.pt')
>>     implements(IHpView)
>>     @memoize
>>     def __call__(self):
>>         return self.template()
>>
>
> Con questo file stiamo definendo la classe della BrowserView che come
> rendering userà il nostro bel pagetemplate chiamato "hp.pt" (che devi
> creare scopiazzando il codice di main_template.pt presente di default
> nell'istallazione di Plone).
>
> Fai il refresh di della tua istanza plone, e meglio sarebbe una
> disinstallazione-reinstalalzione del tema sulla tua istanza di test.
>
> Spero di non aver tralasciato niente...
> Vito
>
> P.S. Utilizzando invece una marker interface apposita e non quella
> Products.CMFCore.interfaces.ISiteRoot dovremmo a manina settare tale
> interfaccia via tab "interfaces" (in ZMI) presente tra quelli dell'oggetto
> Plone site obiettivo.
> Il metodo che invece ti ho indicato - ovvero sfruttando l'ISiteRoot - rende
> tutto più "magico"...
>
>
>


-- 
"Design is the method of putting form and content together. Design, just as
art, has multiple definitions; there is no single definition. Design can be
art. Design can be aesthetics. Design is so simple, that's why it is so
complicated." by Paul Rand
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.plone.org/pipermail/plone-plone-it/attachments/20090717/b8adc3f1/attachment.html>


Maggiori informazioni sulla lista Plone-IT