When rendering the following template:
<li class="current"
tal:define="subProviderName view/subMenuProviderName">
<tal:block condition="subProviderName"
replace="structure provider:${subProviderName}">sub menu items</tal:block>
</li>
I get this exception:
Traceback (most recent call last):
File "/Users/mac/Documents/eggs/zope.testing-3.7.1-py2.5.egg/zope/testing/doctest.py", line 1356, in __run
compileflags, 1) in test.globs
...
File "/Users/mac/Documents/eggs/zope.publisher-3.5.6-py2.5.egg/zope/publisher/publish.py", line 108, in mapply
return debug_call(obj, args)
File "/Users/mac/Documents/eggs/zope.publisher-3.5.6-py2.5.egg/zope/publisher/publish.py", line 114, in debug_call
return obj(*args)
File "/Users/mac/Documents/eggs/z3c.pagelet-1.0.2-py2.5.egg/z3c/pagelet/browser.py", line 55, in __call__
return layout(self)
File "/Users/mac/Documents/eggs/z3c.pt-1.0b12-py2.5.egg/z3c/pt/pagetemplate.py", line 196, in __call__
_ob=_ob, **kwargs)
File "/Users/mac/Documents/eggs/z3c.pt-1.0b12-py2.5.egg/z3c/pt/pagetemplate.py", line 105, in __call__
return bound_pt(**kwargs)
File "/Users/mac/Documents/eggs/z3c.pt-1.0b12-py2.5.egg/z3c/pt/pagetemplate.py", line 215, in __call__
return self.im_func(**kw)
File "/Users/mac/Documents/eggs/z3c.pt-1.0b12-py2.5.egg/z3c/pt/pagetemplate.py", line 96, in render
return self.render(**context)
File "/Users/mac/Documents/eggs/chameleon.core-1.0b23-py2.5.egg/chameleon/core/template.py", line 222, in render
return super(TemplateFile, self).render(**kwargs)
File "/Users/mac/Documents/eggs/chameleon.core-1.0b23-py2.5.egg/chameleon/core/template.py", line 112, in render
return self.render_template(template, **kwargs)
File "/Users/mac/Documents/eggs/chameleon.core-1.0b23-py2.5.egg/chameleon/core/template.py", line 131, in render_template
__template__.source, repr(self), kwargs, sys.exc_info())
File "/Users/mac/Documents/eggs/chameleon.core-1.0b23-py2.5.egg/chameleon/core/template.py", line 128, in render_template
return __template__.render(**kwargs)
File "/var/folders/SR/SRmqqK4THC0XA5jzpFcGCU+++TM/-Tmp-/tmpcOSOS_", line 50, in render
_content = _get_content_provider(context, request, view, 'main-menu')
File "/Users/mac/Documents/eggs/z3c.pt-1.0b12-py2.5.egg/z3c/pt/expressions.py", line 39, in __call__
return cp.render()
File "/Users/mac/Documents/eggs/zope.viewlet-3.5.0-py2.5.egg/zope/viewlet/manager.py", line 169, in render
return u'\n'.join([viewlet.render() for viewlet in self.viewlets])
File "/Users/mac/Documents/eggs/z3c.menu.ready2go-0.6.0-py2.5.egg/z3c/menu/ready2go/item.py", line 122, in render
return self.template()
File "/Users/mac/Documents/eggs/z3c.template-1.2.0-py2.5.egg/z3c/template/template.py", line 64, in __call__
return self.im_func(im_self, *args, **kw)
File "/Users/mac/Documents/eggs/z3c.template-1.2.0-py2.5.egg/z3c/template/template.py", line 86, in __call__
return template(instance, *args, **keywords)
File "/Users/mac/Documents/eggs/z3c.pt-1.0b12-py2.5.egg/z3c/pt/pagetemplate.py", line 196, in __call__
_ob=_ob, **kwargs)
File "/Users/mac/Documents/eggs/z3c.pt-1.0b12-py2.5.egg/z3c/pt/pagetemplate.py", line 105, in __call__
return bound_pt(**kwargs)
File "/Users/mac/Documents/eggs/z3c.pt-1.0b12-py2.5.egg/z3c/pt/pagetemplate.py", line 215, in __call__
return self.im_func(**kw)
File "/Users/mac/Documents/eggs/z3c.pt-1.0b12-py2.5.egg/z3c/pt/pagetemplate.py", line 96, in render
return self.render(**context)
File "/Users/mac/Documents/eggs/chameleon.core-1.0b23-py2.5.egg/chameleon/core/template.py", line 222, in render
return super(TemplateFile, self).render(**kwargs)
File "/Users/mac/Documents/eggs/chameleon.core-1.0b23-py2.5.egg/chameleon/core/template.py", line 111, in render
template = self.cook_check(parameters=kwargs)
File "/Users/mac/Documents/eggs/chameleon.core-1.0b23-py2.5.egg/chameleon/core/template.py", line 106, in cook_check
template = self.cook(parameters=parameters, **kwargs)
File "/Users/mac/Documents/eggs/chameleon.core-1.0b23-py2.5.egg/chameleon/core/template.py", line 198, in cook
raise exception
RuntimeError: Caught exception rendering template.
- Expression: "main-menu"
- Instance: <ViewPageTemplateFile /Users/mac/Documents/tmp/icemac.addressbook/src/icemac/addressbook/browser/layout.pt>
- Arguments: template: <ViewPageTemplateFile - at 0x43915d0>
exists: <function evaluate_exists at 0x3211870>
modules: {...} (1977)
nothing: <NoneType - at 0x1076a0>
path: <function evaluate_path at 0x3203bb0>
xincludes: <XIncludes - at 0x4391610>
request: <BrowserRequest - at 0x47013f0>
context: <_Proxy AddressBook at 0x4969a30>
view: <SimplePagelet index.html at 0x4969b90>
options: {...} (2)
target_language: <NoneType - at 0x1076a0>
SyntaxError: ${subProviderName} is not a valid content provider name. (/Users/mac/Documents/eggs/z3c.menu.ready2go-0.6.0-py2.5.egg/z3c/menu/ready2go/item.pt)
I seems that a variable provider name expression is not yet supported.
That's true; but it can quite easily be supported.
On 14/03/2009, Michael Howitz <email address hidden> wrote: "subProviderNam e view/subMenuPro viderName" > "subProviderNam e" ${subProviderNa me}">sub menu mac/Documents/ eggs/zope. testing- 3.7.1-py2. 5.egg/zope/ testing/ doctest. py", mac/Documents/ eggs/zope. publisher- 3.5.6-py2. 5.egg/zope/ publisher/ publish. py", mac/Documents/ eggs/zope. publisher- 3.5.6-py2. 5.egg/zope/ publisher/ publish. py", mac/Documents/ eggs/z3c. pagelet- 1.0.2-py2. 5.egg/z3c/ pagelet/ browser. py", mac/Documents/ eggs/z3c. pt-1.0b12- py2.5.egg/ z3c/pt/ pagetemplate. py", mac/Documents/ eggs/z3c. pt-1.0b12- py2.5.egg/ z3c/pt/ pagetemplate. py", mac/Documents/ eggs/z3c. pt-1.0b12- py2.5.egg/ z3c/pt/ pagetemplate. py", mac/Documents/ eggs/z3c. pt-1.0b12- py2.5.egg/ z3c/pt/ pagetemplate. py", **context) mac/Documents/ eggs/chameleon. core-1. 0b23-py2. 5.egg/chameleon /core/template. py", **kwargs) mac/Documents/ eggs/chameleon. core-1. 0b23-py2. 5.egg/chameleon /core/template. py", template( template, **kwargs) mac/Documents/ eggs/chameleon. core-1. 0b23-py2. 5.egg/chameleon /core/template. py", _.source, repr(self), kwargs, sys.exc_info()) mac/Documents/ eggs/chameleon. core-1. 0b23-py2. 5.egg/chameleon /core/template. py", _.render( **kwargs) SR/SRmqqK4THC0X A5jzpFcGCU+ ++TM/-Tmp- /tmpcOSOS_ ", provider( context, request, view, mac/Documents/ eggs/z3c. pt-1.0b12- py2.5.egg/ z3c/pt/ expressions. py", mac/Documents/ eggs/zope. viewlet- 3.5.0-py2. 5.egg/zope/ viewlet/ manager. py", [viewlet. render( ) for viewlet in self.viewlets]) mac/Documents/ eggs/z3c. menu.ready2go- 0.6.0-py2. 5.egg/z3c/ menu/ready2go/ item.py" , mac/Documents/ eggs/z3c. template- 1.2.0-py2. ...
> Public bug reported:
>
> When rendering the following template:
>
> <li class="current"
> tal:define=
> <tal:block condition=
> replace="structure provider:
> items</tal:block>
> </li>
>
> I get this exception:
>
> Traceback (most recent call last):
> File
> "/Users/
> line 1356, in __run
> compileflags, 1) in test.globs
> ...
> File
> "/Users/
> line 108, in mapply
> return debug_call(obj, args)
> File
> "/Users/
> line 114, in debug_call
> return obj(*args)
> File
> "/Users/
> line 55, in __call__
> return layout(self)
> File
> "/Users/
> line 196, in __call__
> _ob=_ob, **kwargs)
> File
> "/Users/
> line 105, in __call__
> return bound_pt(**kwargs)
> File
> "/Users/
> line 215, in __call__
> return self.im_func(**kw)
> File
> "/Users/
> line 96, in render
> return self.render(
> File
> "/Users/
> line 222, in render
> return super(TemplateFile, self).render(
> File
> "/Users/
> line 112, in render
> return self.render_
> File
> "/Users/
> line 131, in render_template
> __template_
> File
> "/Users/
> line 128, in render_template
> return __template_
> File "/var/folders/
> line 50, in render
> _content = _get_content_
> 'main-menu')
> File
> "/Users/
> line 39, in __call__
> return cp.render()
> File
> "/Users/
> line 169, in render
> return u'\n'.join(
> File
> "/Users/
> line 122, in render
> return self.template()
> File
> "/Users/