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

Rispondere a