2011-05-05 17 views

Respuesta

7

Los portlets están registrados como utilidades con la interfaz IPortletType con la maquinaria de componentes zope. Estos registros se generan cuando registra portlets con portlets.xml. La interfaz de usuario de gestión de portlets utiliza estos registros de utilidad para enumerar los portlets que puede agregar.

Por suerte, plone.portlets.utils proporciona una API útil para anular el registro de estos portlets nuevo:

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. 
    """ 

El parámetro addview es una cadena, y es el mismo que el utilizado en un registro portlet.xml. Por ejemplo, el portlet de calendario está registrada como:

<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> 

Puede por lo tanto eliminar el portlet de calendario desde su sitio mediante la ejecución del siguiente fragmento de código:

from plone.portlets.utils import unregisterPortletType 
unregisterPortletType(site, 'portlets.Calendar') 

Usted también puede utilizar los portlets GenericSetup. archivo XML para eliminar los portlets durante el tiempo de preparación, simplemente enumerar los portlets addview parámetros y añadir un atributo al elemento remove:

<?xml version="1.0"?> 
<portlets> 
    <portlet addview="portlets.Calendar" remove="true" /> 
</portlets> 

Gracias a David Glick por encontrarnos uno para nosotros.

+5

Si estoy leyendo el código correctamente, también puede anular el registro del tipo de portlet a través de GenericSetup en portlets.xml; p.ej.

+0

Tiene toda la razón; Me perdí eso la primera vez porque usa el componente API directamente. Actualizaré la respuesta. –

Cuestiones relacionadas