Plone 如何配置diazo,使其在被黑名单主机名请求时不使用jbot模板?
以下(zopeskel默认值)Plone 如何配置diazo,使其在被黑名单主机名请求时不使用jbot模板?,plone,diazo,Plone,Diazo,以下(zopeskel默认值)diazotheme包括一个jbot目录template\u覆盖。在此目录中有一个覆盖版本的plone.app.layout.viewlets.footer.pt 当我配置diazo(@@theming controlpanel)并将主机名列入黑名单时,黑名单主机名的diazo主题将不会显示(如预期的那样),但template\u overrides中的jbot模板仍处于活动状态 当从黑名单主机名请求时,如何配置diazo以不使用jbot模板 diazotheme是
diazotheme
包括一个jbot
目录template\u覆盖
。在此目录中有一个覆盖版本的plone.app.layout.viewlets.footer.pt
当我配置diazo
(@@theming controlpanel
)并将主机名列入黑名单时,黑名单主机名的diazo主题将不会显示(如预期的那样),但template\u overrides
中的jbot
模板仍处于活动状态
当从黑名单主机名请求时,如何配置diazo以不使用jbot模板
diazotheme是使用命令zopeskel diazotheme namespace.package创建的
有关档案包括:
namespace.package/namespace/package/interfaces.py
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
<?xml version="1.0"?>
<layers>
<layer name="namespace.package.customization.layer"
interface="namespace.package.interfaces.ICustomTheme" />
</layers>
...
<browser:jbot
directory="template_overrides"
layer=".interfaces.ICustomTheme"
/>
...
namespace.package/namespace/package/configure.zcml
<?xml version="1.0"?>
<layers>
<layer name="namespace.package.customization.layer"
interface="namespace.package.interfaces.ICustomTheme" />
</layers>
...
<browser:jbot
directory="template_overrides"
layer=".interfaces.ICustomTheme"
/>
...
。。。
...
namespace.package/namespace/package/template\u覆盖/plone.app.layout.viewlets.footer.pt
<div i18n:domain="plone" id="portal-footer">
my footer
</div>
我的页脚
层只是应用于请求的接口
为了完成您正在做的事情,可以使用request event根据主机名对请求动态应用一个层
警告,这都是未经测试的
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)