Il 04/06/2010 11:50, Manuele Pesenti ha scritto: > ciao a tutti, > sto cercando di richiamare da un template di un mio pacchetto una > funzione, secondo un po' di informazioni che ho raccolto in giro questi > sono i passi logici che ho seguito: > > 1) in una libreria (file customMap_macros.py) sotto > src/progetto.pacchetto/progetto/pacchetto/browser ho dichiarato una > classe che eredita BrowserView come segue a cui ho assegnato un metodo > che richiama la funzione in questione: > > from progetto.pacchetto.utility import * #<- qui si trova la funzione > # getJsonMapset usa sotto > > class jsonstringMacros(BrowserView): > > def getJsonString(self, myMap): > jstring = getJsonMapset(myMap) > return jstring > > 2) in src/progetto.pacchetto/progetto/pacchetto/browser/configure.zcml > ho dichiarato la view come segue: > > <browser:page > name="jsonstring-macros" > for="*" > template="jsonstring.pt" > class=".customMap_macros.jsonstringMacros" > permission="zope2.View" > /> > > 3) ora nel template jsonstring.pt (anche lui in .../browser/) dovrei > richiamare il metodo getJsonString della classe nota come > jsonstring-macros/jsonstringMacros e passargli come parametro il > documento plone corrente, il mio dubbio è proprio questo: come la > richiamo? > > mi è stato detto "view/mymethod nel template è tutto ciò di cui hai > bisogno" e così ho inserito quanto segue in jsonstring.pt: > > <div id="my_map" metal:define-macro="getJson"> > <div tal:define="jsonString > jsonstring-macros/getJsonString/context;"> >
togli /context inoltre devi usare la sintassi view/getJsonString e ottieni la chiamata al metodo. oppure puoi fare python:view.getJsonString(parametro1=valore1, etc etc) > <div tal:replace="jsonString">pippo</div> > </div> > </div> > > <div metal:use-macro="getJson">pippo</div> > > ma dall'errore che ottengo è evidente che la funzione non è chiamata > correttamente: > > - Warning: Compilation failed > - Warning: zope.tal.taldefs.TALError: Invalid variable name "context" > in expression 'jsonstring-macros/getJsonString/context', at line 6, > column 5 > PTRuntimeError: ['Compilation failed', 'zope.tal.taldefs.TALError: > Invalid variable name "context" in expression > \'jsonstring-macros/getJsonString/context\', at line 6, column 5'] > 2010-06-04 11:46:19 ERROR PageTemplateFile Error in template Compilation > failed > zope.tal.taldefs.TALError: Invalid variable name "context" in expression > 'jsonstring-macros/getJsonString/context', at line 6, column 5 > 2010-06-04 11:46:19 ERROR PageTemplateFile Error in template Compilation > failed > zope.tal.taldefs.TALError: Invalid variable name "context" in expression > 'jsonstring-macros/getJsonString/context', at line 6, column 5 > > ogni suggerimento sarà apprezzato > > Grazie molte > scusate lo sproloquio ma ho già cercato di ridurre al minimo... > > Manuele > > _______________________________________________ > 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
