[Plone-IT] feature molto interessante in Diazo

Simone Orsi simahawk a gmail.com
Ven 31 Maggio 2013 09:54:33 UTC


Ciao,

On 05/31/2013 09:50 AM, Yuri wrote:
> Ciao!
>
>  analizzando il tema quintagroup.sunrain ho trovato nel suo rules.xml 
> questo:
>
> <replace css:theme="#portal-slogan">
> <span id="portal-slogan"><xsl:value-of select="$slogan" /></span>
> </replace>
>
> notare "$slogan". Dal loro readme, leggo:
>
> =======
>  If you need your slogan to be displayed in non-ASCII characters, go 
> to *Site Setup -> Theming*, open *Advanced settings* tab. In 
> *Parameter expressions* change the following field
>
>  ``slogan = string:Type your slogan here``
>
>  to
>
>  ``slogan = python:path('context/slogan|string:').decode('utf-8', 
> 'ignore')``
>
>  and in *Site Setup -> Zope Management Interface settings -> 
> Properties* tab add a new property *slogan*, type ``string``, value 
> ``your slogan`` and save.
> =======
>

> la cosa interessante non è tanto quella sulle accentate ma il fatto 
> che si possono usare script e proprietà per riempire dei valori che 
> vanno nel tema.
>
> Quindi potete creare una variabile nel pannello di controllo Theming 
> -> advanced settings -> Altri parametri (expressions).
>
> La variabile può ritornare qualsiasi html, e può avere una qualsiasi 
> provenienza. Quindi possiamo usare il tema di Plone come "template" e 
> metterci dei pezzi con varia provenienza che non necessariamente 
> stanno nella pagina. Ad esempio, si può creare una Pagina e poi 
> inserirne il contenuto in una qualsiasi parte del tema, in base a 
> certe condizioni, utile quando il sistema di view/portlet è complicato 
> o troppo oneroso (buildout, riavvii, etc etc). Oppure decidere che il 
> titolo degli oggetti plone può, in base a certe condizioni, essere 
> differente. Posso, inoltre, anche agire su classi, id, dei vari tag 
> usando le variabili.
>
> Penso sia una feature di Diazo presente da tempo ma che non avevo mai 
> considerato e che va usata con parsimonia perché credo che il tema sia 
> cachato in qualche modo e quindi non si ha quella dinamicità che ci si 
> aspetta.
>
> Qualcuno ha esperienze a riguardo?

in realtá per fare queste cose penso sia meglio usare 
href="/@@vista-che-ti-sputa-fuori-html" (e dovrebbe funzionare anche con 
script e template), vedi 
https://pypi.python.org/pypi/plone.app.theming#advanced-modification:

<!-- Pull in extra navigation from a browser view on the Plone site root -->
<after
     css:theme-children="#leftnav"
     css:content=".navitem"
     href="/@@extra-nav"
     />

Di sicuro l'utilizzo delle variabili é molto utile per porre delle 
condizioni nelle regole. Ad esempio, per un nostro cliente dovevamo 
nascondere il link di login per il mondo, tranne che per l'istanza degli 
editor che gira su admin.domain.it.

Farlo é stato molto semplice con il parametro

show_login = python: 'admin' in request['URL']

e poi

<prepend if="$show_login"
       css:theme="#foo
       css:content-children="div#portal-personaltools-wrapper"
       />

Chiaramente é comodo anche per inserire piccole parti di testo, come uno 
slogan, e puó essere un ottimo strumento per soluzioni 'on-the-fly' da 
parte del siteadmin... basta non abusarne :)



Maggiori informazioni sulla lista Plone-IT