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.

Esatto, perchè non ha un metodo __call__ e perchè manca la definizione del template nello zcml (immagino sia una vista con dei metodi di utilità tipo plone_context_state, ecc).


Però andando su miosito.com/@@lineageutils/isChildSite o miosito.com/@@lineageutils/getSwitcherDefault non ottengo nulla (torna la pagina 404)

Probabilmente non è uno dei metodi descritti in allowed_interface e quindi non richiamabile direttamente via traversing. Puoi provare a creare un'interfaccia fittizia con quei metodi, dichiarare l'implements e provare a vedere se così riesci? Sono curioso :)


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>

E'corretto, definisci la tua vista e usi i suoi metodi.


Ciao,

davide


--
Davide Moro
Technical Development Manager
http://linkedin.com/in/davidemoro82

Redomino Srl
http://redomino.com
HQ Largo Valgioie 14, Turin IT
Phone +39 0117499875

_______________________________________________
Plone-IT mailing list
[email protected]
https://lists.plone.org/mailman/listinfo/plone-plone-it
http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html

Rispondere a