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