Plone Batch 使用方式

poliyka
Apr 11, 2020

browser/configure.zcml

<!-- Set overrides folder for Just-a-Bunch-Of-Templates product -->
<include package="plone.app.contentmenu" />
<browser:pages
for="plone.dexterity.interfaces.IDexterityContainer"
class=".qa_folder.FolderView"
permission="zope2.View"
layer="jp.shionogi.interfaces.IJpShionogiLayer">
<browser:page
name="QA"
template="templates/QA.pt"
menu="plone_displayviews"
title="QA View"
/>

</browser:pages>

將plone.app.contenttype.browser.folder.py複製到專案中

b_size => 調整頁面顯示個數b_strart => 調整頁面起始個數

將new_folder 加入 profiles/default/types/folder.xml

<!-- View information -->
<property name="add_view_expr">string:${folder_url}/++add++Folder</property>
...
<element value="news_folder"/>
</property>

再news_folder.pt 中 define batch

<tal:results define="batch view/batch"><tal:page tal:repeat="page batch">...
最後插入上下頁條
<div metal:use-macro="context/batch_macros/macros/navigation" />

修改上下頁條樣式 overrides

plone.batching.batchnavigation.ptoverrides這個pt 檔

排除batch 不需要的content_type

folder.py 內找到result method 修改以下代碼

def results(self, **kwargs):
...
friendly_types = ['Collection', 'Document', 'Event', 'File', 'Image', 'Link', 'News Item', 'info_page']kwargs.update(self.request.get('contentFilter', {}))if 'object_provides' not in kwargs: # object_provides is more specific
kwargs.setdefault('portal_type', friendly_types)
...

--

--