Plone 集合的自定义模板
我想创建一个页面模板,列出某个值为true的所有特定内容类型 我认为最好的方法是为集合创建自定义页面模板 因此,我遵循以下说明: 但我得到一个错误“宏扩展失败”,如下所述: 然而,这个答案对我来说毫无意义。我不确定在哪里定义宏,它在类型的.py文件中吗 这两个环节的结合描述了整个过程还是更重要? 我可以在其他任何地方完整描述流程吗Plone 集合的自定义模板,plone,dexterity,Plone,Dexterity,我想创建一个页面模板,列出某个值为true的所有特定内容类型 我认为最好的方法是为集合创建自定义页面模板 因此,我遵循以下说明: 但我得到一个错误“宏扩展失败”,如下所述: 然而,这个答案对我来说毫无意义。我不确定在哪里定义宏,它在类型的.py文件中吗 这两个环节的结合描述了整个过程还是更重要? 我可以在其他任何地方完整描述流程吗 或者我的想法是错误的,我是不是应该使用一个集合,只是一个内容类型的新视图,它本身进行排序?在将教程的示例代码粘贴到门户网站\u skins/custom/coll
或者我的想法是错误的,我是不是应该使用一个集合,只是一个内容类型的新视图,它本身进行排序?在将教程的示例代码粘贴到门户网站\u skins/custom/collection\u minimal\u视图中之后,您会收到错误消息,对吗 这是因为Zope试图预测您正在做什么,但它不知道变量“context”将是什么,也不能确定“context”将具有“standard_view”属性 无论如何,如果忽略错误消息,并按照本教程的其余部分进行操作,则新视图实际上可以正常工作 但是,在自定义文件夹中保存长期自定义项,或者实际上在门户网站皮肤中保存长期自定义项,这并不是最佳做法。更好的方法是将模板放在一个包中,并在ZCML中注册:
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:browser="http://namespaces.zope.org/browser"
xmlns:zcml="http://namespaces.zope.org/zcml"
i18n_domain="plone">
<browser:page
name="minimal_view"
permission="zope2.View"
for="plone.app.collection.interfaces.ICollection"
template="collection_minimal_view.pt"
/>
<browser:menuItems
for="plone.app.collection.interfaces.ICollection"
menu="plone_displayviews">
<browser:menuItem
title="Minimal view"
action="minimal_view"
/>
</browser:menuItems>
</configure>
Ok,这很有意义。zcml如何知道.pt文件在哪里?上面的zcml将在configure.zcml所在的目录中查找模板。如果要将它们放在一个名为“templates”的目录中,该模板属性将类似于“template=“templates/collection\u minimal\u view.pt”。