Plone:我可以让@manage portlet使用main\u template.pt以外的模板吗?
我有一个备用的主页模板,homepage.pt,它有不同的布局。但是,当我单击manageportlets链接编辑portlet时,它使用main_template.pt而不是homepage.pt。有没有办法让@manage portlet使用您正在编辑portlet的页面所使用的模板?这是可行的,但布局与页面实际外观大不相同。我们为此注册了另一个页面,并注册了一个门户\u操作对象操作 zcml: 行动:Plone:我可以让@manage portlet使用main\u template.pt以外的模板吗?,plone,Plone,我有一个备用的主页模板,homepage.pt,它有不同的布局。但是,当我单击manageportlets链接编辑portlet时,它使用main_template.pt而不是homepage.pt。有没有办法让@manage portlet使用您正在编辑portlet的页面所使用的模板?这是可行的,但布局与页面实际外观大不相同。我们为此注册了另一个页面,并注册了一个门户\u操作对象操作 zcml: 行动: <object name="homepage portlets" meta_typ
<object name="homepage portlets" meta_type="CMF Action">
<property name="title">Homepage-portlets</property>
<property name="url_expr">string:${portal_url}/@@manage-homepageportlets</property>
<property name="available_expr">python: here.absolute_url() == portal_url</property>
<property name="visible">True</property>
</object>
主页portlet
字符串:${portal\u url}/@@manage homepageportlets
python:here.absolute\u url()==portal\u url
真的
模板:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:metal="http://xml.zope.org/namespaces/metal"
xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:i18n="http://xml.zope.org/namespaces/i18n"
metal:use-macro="context/main_template/macros/master"
i18n:domain="plone">
<body>
<div metal:fill-slot="main">
<h1 class="documentFirstHeading">Manage Homepage Portlets</h1>
<h2>Top portlets</h2>
<span tal:replace="structure provider:project.homepagetop" />
<h2>Middle portlets</h2>
<span tal:replace="structure provider:project.homepagemiddle" />
<h2>Bottom portlets</h2>
<span tal:replace="structure provider:project.homepagebottom" />
</div>
</body>
</html>
管理主页portlet
顶级Portlet
中间Portlet
底部portlet
所以,答案是肯定的,只是有点混乱。您可以为plone.app.portlets中的manage-context.pt使用备用模板,并更改metal:use macro属性以使用自定义宏。我使用jbot并命名文件:
plone.app.portlets.browser.templates.manage-context.pt
做它应该做的。这将替换所有页面的manage Portlet视图,包括使用main_template.pt的页面。不是不可逾越的,但有点烦人。我可以想出一些解决办法:
<object name="homepage portlets" meta_type="CMF Action">
<property name="title">Homepage-portlets</property>
<property name="url_expr">string:${portal_url}/@@manage-homepageportlets</property>
<property name="available_expr">python: here.absolute_url() == portal_url</property>
<property name="visible">True</property>
</object>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:metal="http://xml.zope.org/namespaces/metal"
xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:i18n="http://xml.zope.org/namespaces/i18n"
metal:use-macro="context/main_template/macros/master"
i18n:domain="plone">
<body>
<div metal:fill-slot="main">
<h1 class="documentFirstHeading">Manage Homepage Portlets</h1>
<h2>Top portlets</h2>
<span tal:replace="structure provider:project.homepagetop" />
<h2>Middle portlets</h2>
<span tal:replace="structure provider:project.homepagemiddle" />
<h2>Bottom portlets</h2>
<span tal:replace="structure provider:project.homepagebottom" />
</div>
</body>
</html>