Plone 如何从“中删除Configlet”;站点设置-附加配置“;

Plone 如何从“中删除Configlet”;站点设置-附加配置“;,plone,Plone,我正在弃用站点设置加载项configlet。下面的过程是将remove=“true”属性添加到controlpanel.xml <!-- profiles/default/controlpanel.xml --> <configlet title="MyConfiglet" ... remove="true"> <permission>Manage portal</permission> </configlet

我正在弃用站点设置加载项configlet。下面的过程是将remove=“true”属性添加到controlpanel.xml

<!-- profiles/default/controlpanel.xml -->
<configlet
    title="MyConfiglet" ...
    remove="true">
        <permission>Manage portal</permission>
</configlet>

管理门户
然后执行一个升级步骤。我试过了

<!-- upgrades/configure.zcml -->
<genericsetup:upgradeSteps ...>
  <genericsetup:upgradeDepends
      title="Remove Configlet"
      import_steps="plone.app.registry controlpanel"
      />
</genericsetup:upgradeSteps>

但是在执行升级步骤之后,我仍然可以在/@@overview控制面板中看到configlet

我错过了什么?从控制面板中删除configlet需要什么


谢谢。

从Plone中删除某个内容的过程或多或少与添加该内容的步骤相同;在这种特定情况下,有两种方法可以实现这一点:编程方式或使用通用设置

以编程方式 我认为这更容易,因为只需要几行代码,如果出现问题,您可以进行调试

只需在升级步骤中使用以下代码:

def remove\u configlet(自):
从plone导入api
config\u tool=api.portal.get\u tool('portal\u controlpanel'))
configlet_id='MyConfigletId'
config\u tool.unregisterConfiglet(configlet\u id)
使用通用设置 在为升级步骤注册的配置文件中创建一个
controlpanel.xml
文件;此文件应包含与添加configlet加上
remove=“True”
属性所用的内容完全相同的内容

您可以在Products的upgrade_10_to_11配置文件中找到这方面的工作示例。TinyMCE:


管理门户
...    
def升级到11(设置工具):
“”“将TinyMCE从1.0升级到1.1”“”
...
#注销旧js并注册新js
setuptool.runAllImportStepsFromProfile('profile-Products.TinyMCE:将\u 10\u升级到\u 11')
如果有疑问,请看Luca Fabbri在上发表的精彩博客文章