फोरम में कुछ के साथ plone.org पर documentation का उपयोग करके, मैं प्लोन 4.0.8 में अपनी सामग्री के नीचे एक कस्टम पोर्टलेट प्रबंधक प्राप्त करने में सक्षम था। लक्ष्य, वास्तव में, डैशबोर्ड की तरह व्यवस्थित सामग्री के नीचे 4 कस्टम प्रबंधक हैं।मैं अपने कस्टम पोर्टलेट मैनेजर में स्टॉक पोर्टल (plone.app.portlets से) कैसे जोड़ूं?
वैसे भी, मेरा प्रबंधक केवल मुझे स्थिर और संग्रह पोर्टल जोड़ने की अनुमति देता है। कोड में चारों ओर देखने के बाद, मैंने पाया कि जब सिस्टम पॉप्युलेट करने के लिए जाता है कि 'नया पोर्टलेट जोड़ें' ड्रॉपडाउन, यह सभी पोर्टलों के माध्यम से लूप करता है। फिर, यह प्रत्येक पोर्टलेट की 'for_' विशेषता जांच के माध्यम से देखता है कि इंटरफेस स्वयं - मेरे पोर्टलेट प्रबंधक द्वारा प्रदान किए जाते हैं या नहीं।
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
इंटरफेस की प्रत्येक पोर्टलेट की 'for_' सूची में मैं अपने प्रबंधक का इंटरफ़ेस कैसे जोड़ूं?
मैं 'वर्ग IBottomPortletManager (IPortletManager) से मेरे प्रबंधक के इंटरफेस बदल' को 'वर्ग IBottomPortletManager (IPortletManager, IColumn)' IColumn plone.app.portlets में परिभाषित किया गया है, इसलिए उन portlets पहले से ही के लिए पंजीकृत हैं प्रबंधकों जो IColumn प्रदान करते हैं। अब, क्या यह करने का यह आदर्श तरीका है? – Travv15