Cosa voglio fare?
Risolvere il problema dell'Acquisition che ho descritto in altri thread di oggi.

La mia idea è questa

Innanzitutto il context_state.canonical_object_url() e il request.ACTUAL_URL sono differenti nei casi in cui l'Acquisition fa danni e, più importante, context_state.canonical_object_url() contiene sempre la URL corretta che doveva essere invocata (tanto è vero che il meta canonical è generato correttamente)

L'idea di base sarebbe generare un redirect 301 al context_state.canonical_object_url() quando differisce dal request.ACTUAL_URL

Il problema vero, però, è che quando una pagina presenta più nodi di Plone, come il caso di una lista di news, ovviamente ogni news listata ha un context_state.canonical_object_url() distinto dal request.ACTUAL_URL, che, nei casi corretti combacia con il context_state.canonical_object_url() della pagina "lista news" Questo cosa comprorta? Che rischio di generare 301 a loop se non gestisco l'unico caso che mi interessa, cioè quello del contenuto "principale" della pagina che voglio mostrare.

Quindi, se io riuscissi a limitare l'esecuzione del mio codice per il solo "contenuto principale" forse potrei aver almeno risolto la proliferazione delle URL malevoli, forzando il 301 all'URL corretta.

Sarò stato chiaro? Spero di sì

P.S.: L'Acquisition dovrebbe essere eliminata dalla versione 5 di Plone...

*Diego Purpo*
cel. +39 393 9869631
[email protected] <mailto:[email protected]>

*INFOCUBE srl*
via gino doria, 84 | 80128 napoli
tel. +39 081 3412051 | fax. +39 081 19305669
www.infocube.it <http://www.infocube.it>
blog.infocube.it <http://blog.infocube.it>


Il 18/11/2010 17.09, Riccardo Lemmi ha scritto:
On Thursday 18 November 2010, Diego Purpo wrote:
Ciao a tutti

Ho questa necessità

Ad ogni request http al mio sito Plone vorrei eseguire del codice che
verifica delle cose prima di consentire al sistema di servire la pagina.
E vorrei che questo codice:
   - sia eseguito una sola volta per request
   - sia eseguito solo su request HTTP e non anche durante gli accessi
alle entità di Plone via catalog
   - abbia le stesse funzionalità messe a disposizione a BrowserView e
Viewlet (senza limitazioni di accesso alle entità di Plone e Zope)

Ho provato l'access_rule, ma mi sembra un po' limitata.

Qualche suggerimento?

Grazie
Ti sono state suggerite diverse possibilità e sicuramente una semplice browser
view definita for="*", senza template e chiamata dentro il main template
(simile a plone_context_state) può essere fatta però a seconda del motivo per
cui hai necessità di "eseguire del codice... prima... di servire la pagina"
ci possono essere soluzioni più adatte.


_______________________________________________
Plone-IT mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/plone-it
http://www.nabble.com/Plone---Italy-f21728.html
_______________________________________________
Plone-IT mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/plone-it
http://www.nabble.com/Plone---Italy-f21728.html

Rispondere a