Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Plone 集合的自定义模板_Plone_Dexterity - Fatal编程技术网

Plone 集合的自定义模板

Plone 集合的自定义模板,plone,dexterity,Plone,Dexterity,我想创建一个页面模板,列出某个值为true的所有特定内容类型 我认为最好的方法是为集合创建自定义页面模板 因此,我遵循以下说明: 但我得到一个错误“宏扩展失败”,如下所述: 然而,这个答案对我来说毫无意义。我不确定在哪里定义宏,它在类型的.py文件中吗 这两个环节的结合描述了整个过程还是更重要? 我可以在其他任何地方完整描述流程吗 或者我的想法是错误的,我是不是应该使用一个集合,只是一个内容类型的新视图,它本身进行排序?在将教程的示例代码粘贴到门户网站\u skins/custom/coll

我想创建一个页面模板,列出某个值为true的所有特定内容类型

我认为最好的方法是为集合创建自定义页面模板

因此,我遵循以下说明:

但我得到一个错误“宏扩展失败”,如下所述:

然而,这个答案对我来说毫无意义。我不确定在哪里定义宏,它在类型的.py文件中吗

这两个环节的结合描述了整个过程还是更重要? 我可以在其他任何地方完整描述流程吗


或者我的想法是错误的,我是不是应该使用一个集合,只是一个内容类型的新视图,它本身进行排序?

在将教程的示例代码粘贴到门户网站\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”。