Plone 4 Zope显示特定文件夹TALES的内容

时间:2013-03-27 13:31:09

标签: plone template-tal zpt

问题

如果搜索返回0结果,我的客户希望在其搜索页面上显示某个文件夹(包含图像)的全部内容。该文件夹位于mysite.com/images

设定:

作为测试环境,我设置了一个具有以下结构的单独站点:

ROOT
|-Folder1 <-- current directory I am viewing
| |-images
|-Other folders

我修改了folder_summar_view模板,以包含以下代码(我决定修改一个视图,看看我是否可以破解它以使其按照我想要的方式进行操作):

<div tal:define="image context/images/getFolderContents">
  <div tal:content="i" tal:repeat="i image" />
</div>

我看到了什么:

<Products.ZCatalog.Catalog.mybrains object at 0x9d2ddb8>

我尝试过的事情和进一步的解释

我假设当context/images/getFolderContents返回我的图像文件夹中的'对象'的大脑时,我可以使用其下面的tal:repeat语句迭代每个'对象'。然后在我的页面上显示它们。

如果我只使用以下代码:

<div tal:content="context/images/getFolderContents" />

我的输出与上面的“我看到的”部分非常相似:

<Products.ZCatalog.Catalog.mybrains object at [...]>

其中[...]是另一个号码

我一直在做一些研究并阅读Plone Theming书,但我的代码与第169页上的tal:repeat示例类似,似乎唯一的区别是它们不是在大脑上使用它(据我所知)。

我试过这个,虽然它产生了相同的结果(不知道我为什么不这样做):

<div tal:define="image python:context.images.getFolderContents()">
  <div tal:content="i" tal:repeat="i image" />
</div>

我似乎无法“进入”返回的大脑。我在网上寻找的所有东西都没有那么多帮助,我还浏览了atct_album_viewfolder_listings模板以了解情况。 - 我想我忽视或遗失了什么。

The first link I stumbled across was this,但是我已经继续前进,因为虽然类似,但这并不是我想做的事情。

在他们的聊天室里的Plone家伙很友好地给我context/images/getFolderContents声明,我试图继续按下而不再寻求帮助,但似乎我已经碰壁了。

我试过的更多东西

Using this link as inspiration我决定尝试以下方法:

<div tal:define="image context/images/getFolderContents">
  <div tal:content="image/getURL" />
</div>

但是当我尝试查看模板时会抛出错误。错误读取'getFolderContents大脑的行没有属性getURL' - 虽然image/Title显示文件夹的名称,但这不是我真正需要的。

I also found this link但是因为我正在使用默认搜索,我真的不想编辑python脚本,因为我担心它可能会对正常的Plone站点搜索产生负面影响。 Also in this link他们似乎正在使用更多的Python脚本。 - 为了扩展这一点,我不确定这些脚本如何与页面模板“链接”(他们如何知道彼此“交谈”)。

结论

总之,我需要显示位于我网站根目录的名为“images”的文件夹中包含的所有图像,我无法使用getFolderContents访问返回大脑的内容。除了显示“图像”文件夹的标题或大脑标识(<Products.ZCatalog.Catalog.mybrains object at 0x9d2ddb8>)之外,我没有运气。欢迎任何帮助或想法!

1 个答案:

答案 0 :(得分:2)

当getFoldercontents返回一个大脑列表时,我无法看到你的代码如何工作。 用这样的东西重复一遍:

<tal:block tal:repeat="image context/images/getFolderContents">
  <a tal:attributes="href image/getURL" tal:content="image/Title"/>
</tal:block>