Sử dụng documentation trên plone.org cùng với một số trong diễn đàn, tôi đã có thể nhận được trình quản lý portlet tùy chỉnh bên dưới nội dung của tôi trong Plone 4.0.8. Thực tế, mục tiêu là có 4 người quản lý tùy chỉnh bên dưới nội dung được sắp xếp như trang tổng quan.Làm cách nào để thêm các portlet stock (từ plone.app.portlets) vào trình quản lý portlet tùy chỉnh của tôi?
Dù sao, người quản lý của tôi chỉ cho phép tôi thêm các portlet tĩnh và tập hợp. Sau khi nhìn xung quanh trong đoạn mã, tôi thấy rằng khi hệ thống chuyển sang trình đơn thả xuống 'Add new portlet', nó lặp qua tất cả các portlet. Sau đó, nó lặp qua từng thuộc tính 'for_' của portlet để kiểm tra xem các giao diện có được cung cấp bởi trình quản lý portlet của tôi hay không.
def getAddablePortletTypes(self):
addable = []
for p in getUtilitiesFor(IPortletType):
# BBB - first condition, because starting with Plone 3.1
#every p[1].for_ should be a list
if not isinstance(p[1].for_, list):
logger.warning("Deprecation Warning ..." % p[1].addview)
if p[1].for_ is None or p[1].for_.providedBy(self):
addable.append(p[1])
elif [i for i in p[1].for_ if i.providedBy(self)]:
addable.append(p[1])
return addable
Làm cách nào để thêm giao diện người quản lý của tôi vào danh sách giao diện 'for_' của mỗi portlet?
tôi đã thay đổi giao diện quản lý của tôi từ lớp 'IBottomPortletManager (IPortletManager)' để lớp 'IBottomPortletManager (IPortletManager, IColumn)' IColumn được định nghĩa trong plone.app.portlets, vì vậy những portlet đã đăng ký cho các nhà quản lý cung cấp IColumn. Bây giờ, đây có phải là cách lý tưởng để làm điều này không? – Travv15