首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当被列入黑名单的主机名请求时,我如何配置diazo不使用jbot模板?

当被列入黑名单的主机名请求时,我如何配置diazo不使用jbot模板?
EN

Stack Overflow用户
提问于 2014-04-30 14:45:58
回答 1查看 100关注 0票数 2

下面(zopeskel默认值) diazotheme包含一个jbot目录template_overrides。在这个目录中有一个超限版本的plone.app.layout.viewlets.footer.pt

当我配置diazo (@@theming-controlpanel)并将主机名列入黑名单时,就不会为黑名单中的主机名显示重氮主题(如预期的那样),但是template_overrides中的jbot模板仍然是活动的。

当从黑名单中的主机名请求时,我如何配置diazo不使用jbot模板?

重氮主题是使用命令zopeskel diazotheme namespace.package创建的。

有关档案如下:

namespace.package/namespace/package/interfaces.py

代码语言:javascript
复制
from zope.interface import Interface
class ICustomTheme(Interface):
    """Marker interface that defines a Zope 3 browser layer.
    """

namespace.package/namespace/package/profiles/default/browserlayer.xml

代码语言:javascript
复制
<?xml version="1.0"?>
<layers>
    <layer name="namespace.package.customization.layer"
      interface="namespace.package.interfaces.ICustomTheme" />
</layers>

namespace.package/namespace/package/configure.zcml

代码语言:javascript
复制
  ...
  <browser:jbot
      directory="template_overrides"
      layer=".interfaces.ICustomTheme"
      />
  ...

namespace.package/namespace/package/template_overrides/plone.app.layout.viewlets.footer.pt

代码语言:javascript
复制
<div i18n:domain="plone" id="portal-footer">
    my footer
</div>
EN

回答 1

Stack Overflow用户

发布于 2014-05-05 14:58:10

层只是应用于请求的接口。

为了完成您正在做的事情,可以通过使用请求事件,根据主机名动态地将一个层应用于请求。

警告,这都是未经检验的..。

代码语言:javascript
复制
from ZPublisher.interfaces import IPubStart
from zope.component import adapter
from zope.interface import alsoProvides

@adapter(IPubAfterTraversal)
def applyLayer(event):
    req = event.request
    if req.URL == 'something':
        alsoProvides(req, IMyLayerThatHasJBOTCustomizations)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23391233

复制
相关文章

相似问题

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