¿Cuál es la mejor forma de deshabilitar tipos de portlets en todo el sitio en Plone 4.1? La configuración predeterminada proporciona ~ 10 tipos de portlet, pero los usuarios del sitio tienen casos de uso solo para unos pocos (texto estático, noticias).Deshabilitar tipos de portlet en todo el sitio en Plone
Respuesta
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.
- 1. Cómo deshabilitar la memoria caché del portlet Liferay?
- 2. Permitir selectivamente etiquetas html inseguras en Plone
- 3. ¿Cómo configurar variables de todo el sitio en php?
- 4. SSL en todo el sitio o solo parte de él?
- 5. ¿Cómo modifico robots.txt en Plone?
- 6. ¿Posiciona absolutamente todo en un sitio web?
- 7. Identificación de archivos en Plone BlobStorage
- 8. Restricciones de carpeta Plone
- 9. ¿Cómo obtener Portlet Id usando el nombre del portlet en Liferay?
- 10. JQuery Portlet: ¿Es posible tener diferentes tamaños de portlet?
- 11. Rascar todo un sitio web
- 12. Sin modo de edición en el portlet Liferay
- 13. No se pueden activar las discusiones en los tipos de Destreza Plone (carpeta)
- 14. Eliminar www en todo el sitio, forzar https en ciertos directorios y http en el resto?
- 15. Tipo de enlace en Plone 4.0.2 dejado de funcionar
- 16. Django: Prefijo de URL para todo el sitio
- 17. Deshabilitar todos los tipos de optimizaciones en VS2010
- 18. Datos de Plone de embalaje
- 19. ¿Dónde debo almacenar la configuración de configuración de todo el sitio para una aplicación de Rails?
- 20. ¿Cómo se puede deshabilitar todo el código de clasificación en JTable en 1.6
- 21. Deshabilitar el complemento Vim para ciertos tipos de archivos
- 22. notificación de error en Plone 4
- 23. cómo deshabilitar todo el cuerpo que no sea un div
- 24. ¿Cómo configurar una cookie en el portlet Liferay?
- 25. ¿Cómo obtener la clase css de portlet-hash para un portlet de calendario asignado para un administrador de portlet personalizado?
- 26. Hacer que el cuadro de diálogo de selección de imágenes TinyMCE apunte a una carpeta predeterminada en Plone
- 27. ¡Todo el sitio web secuestrado! ¿Cómo evitar ser secuestrado?
- 28. Deshabilitar el almacenamiento en caché, las cookies y todo lo demás en un WebView
- 29. solo usa ssl en el inicio de sesión? o todo el sitio?
- 30. ¿Cómo se anula el valor predeterminado de un campo en un comportamiento de destreza en Plone?
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. –
Tiene toda la razón; Me perdí eso la primera vez porque usa el componente API directamente. Actualizaré la respuesta. –