1

问题

我有一个客户希望在他们的搜索页面上显示某个文件夹(包含图像)的全部内容,如果搜索返回 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_view模板folder_listings以了解是否有用。- 我认为我忽略或遗漏了一些东西。

我偶然发现的第一个链接是 this,但是从那以后我继续前进,尽管相似,但这并不是我想要做的。

他们聊天室里的 Plone 人很友好地给了我这个context/images/getFolderContents声明,我试图在没有再次寻求帮助的情况下继续前进,但似乎我碰壁了。

更多我尝试过的东西

使用此链接作为灵感,我决定尝试以下方法:

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

但是当我尝试查看模板时会引发错误。错误的意思是“getFolderContents 大脑没有属性 getURL”——虽然image/Title显示了文件夹的名称,但这并不是我真正需要的。

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

结论

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

4

1 回答 1

2

当 getFoldercontents 返回一个大脑列表时,我看不到你的代码是如何工作的。只需用类似的东西重复它:

<tal:block tal:repeat="image context/images/getFolderContents">
  <a tal:attributes="href image/getURL" tal:content="image/Title"/>
</tal:block>
于 2013-03-27T13:50:28.923 回答