如果搜索返回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
模板以了解情况。 - 我想我忽视或遗失了什么。
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>
)之外,我没有运气。欢迎任何帮助或想法!
答案 0 :(得分:2)
当getFoldercontents返回一个大脑列表时,我无法看到你的代码如何工作。 用这样的东西重复一遍:
<tal:block tal:repeat="image context/images/getFolderContents">
<a tal:attributes="href image/getURL" tal:content="image/Title"/>
</tal:block>