首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过portal_registry访问plone.app.theming

通过portal_registry访问plone.app.theming
EN

Stack Overflow用户
提问于 2014-08-08 01:56:30
回答 1查看 71关注 0票数 1

我试图在plone.app.theming主题控制面板中使用一个参数表达式,该表达式从portal_registry获取要在主题的rules.xml文件中使用的值。

目标是,如果在注册表中设置了布尔值,则主题可以允许/不允许某些内容。

所以我的参数表达式(在主题控制面板中)是

代码语言:javascript
复制
enable_ad_tags = python:context.portal_registry['lw.portal.enableadtags']

在portal_registry中有一个相应的布尔字段。

rules.xml文件具有以下规则:

代码语言:javascript
复制
<!-- Global Ad Tags -->
<drop css:theme="#globalAdTags" if="not($enable_ad_tags)" />

问题是,在我的本地机器上,我总是在控制台中得到这个错误:

代码语言:javascript
复制
c2014-08-08 09:49:19 ERROR plone.transformchain Unexpected error whilst trying to apply transform chain
Traceback (most recent call last):
  File "/Users/aaronwilliams/.buildout/eggs/plone.transformchain-1.0.3-py2.7.egg/plone/transformchain/transformer.py", line 48, in __call__
    newResult = handler.transformIterable(result, encoding)
  File "/Users/aaronwilliams/.buildout/eggs/plone.app.theming-1.1.1-py2.7.egg/plone/app/theming/transform.py", line 179, in transformIterable
    params = prepareThemeParameters(findContext(self.request), self.request, parameterExpressions, cache)
  File "/Users/aaronwilliams/.buildout/eggs/plone.app.theming-1.1.1-py2.7.egg/plone/app/theming/utils.py", line 630, in prepareThemeParameters
    params[name] = quote_param(expression(expressionContext))
  File "/Users/aaronwilliams/.buildout/eggs/Zope2-2.13.20-py2.7.egg/Products/PageTemplates/ZRPythonExpr.py", line 48, in __call__
    return eval(self._code, vars, {})
  File "PythonExpr", line 1, in <expression>
  File "/Users/aaronwilliams/.buildout/eggs/AccessControl-3.0.6-py2.7-macosx-10.8-x86_64.egg/AccessControl/ImplPython.py", line 675, in guarded_getattr
    v = getattr(inst, name)
AttributeError: 'DirectoryResource' object has no attribute 'portal_registry'

我试图在这里使用的模式有问题吗?

是否有更好/更安全的方法来实现这一目标?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-11 06:21:00

使用portal而不是context可以工作:

enable_ad_tags = python:portal.portal_registry['lw.portal.enableadtags']

IMHO context也应该工作,或者上下文不像它那样工作,或者命名是错误的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25194986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档