Plone

2011-05-05 16 views
7

Site genelinde portal uygulamacığı türlerini devre dışı bırakma Site genelinde portal uygulamacığı tiplerini devre dışı bırakmanın en iyi yolu nedir? Varsayılan kurulum ~ 10 portlet türü sağlar, ancak site kullanıcılarının sadece birkaç (statik metin, haber) kullanım durumu vardır.Plone

cevap

7

Portletler, zope bileşenli makinelerle IPortletType arabirimiyle yardımcı programlar olarak kaydedilir. Portletleri portlets.xml ile kaydederken bu kayıtlar sizin için oluşturulur. Portlet yönetimi kullanıcı arayüzü daha sonra ekleyebileceğiniz portletleri numaralandırmak için bu yardımcı program kayıtlarını kullanır.

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

addview parametresi bir dize ve bir portlet.xml tescil kullanılan aynıdır:

Neyse ki, plone.portlets.utils yine bu portletlerle kaydını için kullanışlı bir API sağlar. Böylece aşağıdaki kod parçacığını çalıştırarak sitenizden takvim portleti kaldırabilir

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

:

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

Ayrıca sadece GenericSetup portletlerini kullanabilirsiniz Örneğin, takvim portleti kaydedilir. xml dosyası sadece portletlerini addview parametreyi listelemek, kurulum süresince portletlerini kaldırıp elemana bir remove özelliği eklemelerini:

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

David Glick'e, bunu bizim için bulduğumuz için teşekkürler.

+5

Kodu doğru okuyorsam, portal uygulamacığı türünü portlets.xml dosyasında GenericSetup aracılığıyla da silebilirsiniz; Örneğin.

+0

Haklısınız; İlk kez bunu kaçırdım çünkü bileşen API'sini doğrudan kullanıyor. Cevabı güncelleyeceğim. –

İlgili konular