Portlets werden als Dienstprogramme mit dem IPortletType
Schnittstelle mit der Zope-Komponenten-Maschinerie. Diese Registrierungen werden für Sie generiert, wenn Sie Portlets mit portlets.xml registrieren. Die Portlet-Verwaltungsoberfläche verwendet dann diese Dienstprogrammregistrierungen, um die Portlets aufzulisten, die Sie hinzufügen können.
Zum Glück, plone.portlets.utils
bietet eine praktische API, um die Registrierung dieser Portlets wieder aufzuheben:
def unregisterPortletType(site, addview):
"""Unregister a portlet type.
site is the local site where the registration was made. The addview
should is used to uniquely identify the portlet.
"""
Le site addview
ist eine Zeichenkette und entspricht der in der portlet.xml-Registrierung verwendeten. Zum Beispiel wird das Kalender-Portlet registriert als:
<portlet
addview="portlets.Calendar"
title="Calendar portlet"
description="A portlet which can render a calendar."
i18n:attributes="title;
description"
>
<for interface="plone.app.portlets.interfaces.IColumn" />
<for interface="plone.app.portlets.interfaces.IDashboard" />
</portlet>
Sie können also das Kalender-Portlet von Ihrer Website entfernen, indem Sie das folgende Code-Snippet ausführen:
from plone.portlets.utils import unregisterPortletType
unregisterPortletType(site, 'portlets.Calendar')
Sie können auch einfach die Datei GenericSetup portlets.xml verwenden, um die Portlets während der Installation zu entfernen, indem Sie die Portlets auflisten addview
Parameter und fügen Sie ein remove
Attribut an das Element:
<?xml version="1.0"?>
<portlets>
<portlet addview="portlets.Calendar" remove="true" />
</portlets>
Vielen Dank an David Glick, der diesen Artikel für uns gefunden hat.