[Plone-IT] domanda su browser view

Paolo Betti paolo a artifex.it
Mar 4 Giu 2013 10:03:01 UTC


Ciao,

Il 04/06/2013 10:52, Yuri ha scritto:
> se ho questa browser view (collective.lineage ma non è importante):
>
> class LineageUtils(BrowserView):
>
>     def getSwitcherDefault(self):
>         registry = getUtility(IRegistry)
>         settings = registry.forInterface(ILineageSettings)
>         if settings.menu_text:
>             return settings.menu_text
>         return "Jump to Child Site"
>
>     def isChildSite(self):
>         portal_state = 
> self.context.restrictedTraverse('plone_portal_state')
>         root_path = portal_state.navigation_root_path()
>         nav_root = self.context.restrictedTraverse(root_path)
>         return IChildSite.providedBy(nav_root)
>
> definita poi tramite zcml con permesso zope.Public e con nome 
> lineageutils, io posso andare all'url:
>
> miosito.com/@@lineageutils e mi ritorna la classe.
>
> Però andando su miosito.com/@@lineageutils/isChildSite o 
> miosito.com/@@lineageutils/getSwitcherDefault non ottengo nulla (torna 
> la pagina 404)
>
> ma posso fare in un template (di un'altra browserview, o view o credo 
> in un qualsiasi template, poiché qui è usato view per il contesto, 
> potevano usare anche view/context no?):
>
> <tal:block define="
>                    message view/@@lineageutils;">
> <option value="" tal:content="message/getSwitcherDefault">Jump to 
> child site</option>
> </span>
>
>
> Qualìcuno sa spiegarmi questo comportamento? Grazie :)

Spiegare esattamente no ma a volte a me è capitato (con Plone 3 non ho 
ancora provato con il 4) di dover definire tramite zcml una cosa del genere:

     <browser:page
     name="nome_vista"
     for="*"
     class=".views.ArtUtilsView"
     permission="zope2.View"
     layer=".interfaces.IThemeSpecific"
     allowed_attributes="metodo1 metodo2"
      />

e poi poter richiamare @@nome_vista/metodo1 o @@nome_vista/metodo2 
tramite indirizzo diretto.
{è "allowed_attributes" che fa la differenza  ;-)}

PB


Maggiori informazioni sulla lista Plone-IT