gpt4 book ai didi

python - 如果特定文件夹不存在,请调整 Plone 的宏以不显示任何内容?

转载 作者:太空宇宙 更新时间:2023-11-04 10:43:12 25 4
gpt4 key购买 nike

我在 Plone 上有一个用于研究人员配置文件的宏,如果所需的文件夹不存在,我想修改它以不显示任何内容。就像现在一样,如果“selected-publications”文件夹不存在,它会抛出一个错误。如果“context/selected-publications/...”为空或不存在,是否可以使宏不显示任何内容?这是我到目前为止的代码:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" i18n:domain="RDSLocal">
<body>

<div id="publications" metal:define-macro="publications" tal:omit-tag="">
<!--publications-->
<a href="selected-publications"><h2>Publications</h2></a>
<ul style="list-style: none; margin-left: 0px; margin-right: 0px;">

<tal:block tal:repeat="publication context/selected-publications/getFolderContents">
<li><tal:block tal:content="publication/Authors"/> (<tal:block tal:content="publication/publication_year"/>) <a tal:attributes="href publication/getURL" tal:content="publication/Title"/></li><br />
</tal:block>

</ul>
</div>
</body>
</html>

最佳答案

使用 tal:definetal:condition 获取并检查发布是否存在,然后再使用 tal:repeat 遍历它们。将您的代码逐字作为基准:

<div id="publications" metal:define-macro="publications" tal:omit-tag="">
<!--publications-->
<a href="selected-publications"><h2>Publications</h2></a>
<ul style="list-style: none; margin-left: 0px; margin-right: 0px;"
tal:define="publications nocall:context/selected-publications|nothing"
tal:condition="publications">

<tal:block tal:repeat="publication publications/getFolderContents">
<li><tal:block tal:content="publication/Authors"/>
(<tal:block tal:content="publication/publication_year"/>)
<a tal:attributes="href publication/getURL"
tal:content="publication/Title"/></li><br />
</tal:block>

</ul>
</div>

这是Zope templates中的常用习语.如果您查看 Plone 的源代码,您会发现该技术的示例宝库,您可以从中获取。

如果不存在出版物,也许您想隐藏 H2?如果是这样,请将 tal:definetal:condition 放在 div 上。

您是从其他模板调用它吗?如果不是,则无需将代码段定义为宏。

关于python - 如果特定文件夹不存在,请调整 Plone 的宏以不显示任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19274244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com