下面(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
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>namespace.package/namespace/package/configure.zcml
...
<browser:jbot
directory="template_overrides"
layer=".interfaces.ICustomTheme"
/>
...
namespace.package/namespace/package/template_overrides/plone.app.layout.viewlets.footer.pt
<div i18n:domain="plone" id="portal-footer">
my footer
</div>发布于 2014-05-05 14:58:10
层只是应用于请求的接口。
为了完成您正在做的事情,可以通过使用请求事件,根据主机名动态地将一个层应用于请求。
警告,这都是未经检验的..。
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)https://stackoverflow.com/questions/23391233
复制相似问题