Re: [Zope-dev] Setting vars in expression eval() namespace
On Wed, Feb 21, 2001 at 10:24:57PM +, Steve Alexander wrote: > Julio Maia wrote: > > > Hi, > > > > I'm trying to create a tag to evaluate the expression passed to it, > > adding in the expression eval namespace a variable that contains > > the result of dtml processing of the tag's block. For instance, the > > following construct: > > > > > > some text > > > > > > would invoke the expression "foo(a=1)" with a variable named 'block' > > set to 'some text 3' in the expression's namespace (btw, is it > > possible to achieve this using regular dtml?). > > This may be too simple example, but how about: > > This is not going to be handy once the block is composed by a large dtml block. I wonder if dtml-var shouldn't support the syntax I've described above. > > -- > Steve Alexander > Software Engineer > Cat-Box limited > http://www.cat-box.net > > ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Setting vars in expression eval() namespace
On Wed, Feb 21, 2001 at 10:53:54PM +, Steve Alexander wrote: > Julio Maia wrote: > > > > > This is not going to be handy once the block is composed by a large dtml > > block. I wonder if dtml-var shouldn't support the syntax I've described > > above. > > I suggest instead using a PythonScript, and using the DTML class that you > can import from the Products.PythonScripts.standard module. > > You can use this to render DTML on the fly, as you wish. I guess it would be better to allow constructs as: Some text Where 'table' and 'font' are PythonScripts that return the implicit blocks passed to them (these blocks may have a default variable name in the expression's namespaces) enclosed by the correspondent html blocks, with the format ('main, 'standard') mapped to html attributes/values using some dictionaries. This could help to separate logic and presentation in dtml code with a minor syntax addition. ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
Re: [Zope-dev] Setting vars in expression eval() namespace
On Wed, Feb 21, 2001 at 10:53:54PM +, Steve Alexander wrote: > Julio Maia wrote: > > > > > This is not going to be handy once the block is composed by a large dtml > > block. I wonder if dtml-var shouldn't support the syntax I've described > > above. > > I suggest instead using a PythonScript, and using the DTML class that you > can import from the Products.PythonScripts.standard module. > > You can use this to render DTML on the fly, as you wish. I guess it would be better to allow constructs as: Some text Where 'table' and 'font' are PythonScripts that return the implicit blocks passed to them (these blocks may have a default variable name in the expression's namespaces) enclosed by the correspondent html blocks, with the format ('main, 'standard') mapped to html attributes/values using some dictionaries. This could help to separate logic and presentation in dtml code with a minor syntax addition. ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
[Zope-dev] Setting vars in expression eval() namespace
Hi, I'm trying to create a tag to evaluate the expression passed to it, adding in the expression eval namespace a variable that contains the result of dtml processing of the tag's block. For instance, the following construct: some text would invoke the expression "foo(a=1)" with a variable named 'block' set to 'some text 3' in the expression's namespace (btw, is it possible to achieve this using regular dtml?). However, I couldn't find a way to set a variable in the namespace used in the evaluation of the expression. I've tried to insert an entry in the mappings passed to the expression eval() method as follows: def __init__(self, blocks): tname, args, section = blocks[0] self.section = section.blocks ... # code that sets self.blockvar as the "var" attribute # code that sets self.expr as the tag's expression def render(self, md): ... d[self.blockvar] = render_blocks(self.section,md) # process the dtml block d={}; md._push(d) e = Eval(self.expr, expr_globals).eval(md) return render_blocks([e],md) But this doesn't seem to do it. Any hints on how to make this work? Julio ___ Zope-Dev maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )