6

这个按钮给我的客户带来了很多问题,因为它总是使用预定义的模式。我找不到使用编辑器配置删除此按钮的方法。我已经用其他按钮做到了这一点,但这些按钮是在某种子组中实现的。

在我的个人沙盒机器上,我尝试在 ../WebUI/Editors/CME/Controls/Toolbars/Tabs/CreateRibbonPage.ascx 文件的提取中删除注释掉的控件,如下所示:

<c:RibbonSplitButton runat="server" CommandName="NewComponent" 
   Title="<%$ Resources: Tridion.Web.UI.Strings, NewComponent %>" 
   Label="<%$ Resources: Tridion.Web.UI.Strings, NewComponent %>"
   ID="NewComponentBtn1">
  <c:RibbonContextMenuItem runat="server" ID="NewComponentCMI2" 
     Command="NewComponent" 
     Title="<%$ Resources: Tridion.Web.UI.Strings, NewComponent %>" 
     Label="<%$ Resources: Tridion.Web.UI.Strings, NewComponent %>" />
  <c:RibbonContextMenuItem runat="server" ID="NewMultimediaComponentCMI2" 
     Command="NewMultimediaComponent"  
     Title="<%$ Resources: Tridion.Web.UI.Strings, NewMultimediaComponent %>" 
     Label="<%$ Resources: Tridion.Web.UI.Strings, NewMultimediaComponent %>" />
  <!--
  <c:RibbonUploadContextMenuItem runat="server" 
     ID="NewBasicMultimediaComponentCMI2" Command="NewBasicMultimediaComponent"  
     Title="<%$ Resources: Tridion.Web.UI.Strings, NewBasicMultimediaComponent %>"
     Label="<%$ Resources: Tridion.Web.UI.Strings, NewBasicMultimediaComponent %>" />
  -->
</c:RibbonSplitButton>

这似乎有预期的结果,但我想如果我在客户环境中这样做,这可能会使我们的支持协议无效。这是否可以以受支持的方式进行,还是我必须像这样破解 UI 文件才能实现我的目标?

4

3 回答 3

7

解决方案之一是为NewBasicMultimediaComponent命令创建扩展,该扩展为它们扩展isAvailableisEnabled方法并返回false。在这种情况下,“上传 MM 组件”仍将作为“新建组件”按钮的选项出现,但将被禁用。

于 2012-05-23T14:44:29.247 回答
6

我以前使用 css 来隐藏功能区项目的显示。纯粹是因为我找不到合适的解决方案。

于 2012-05-22T16:46:35.053 回答
2

我添加这个答案是因为我需要使用完整的功能区工具栏做类似的事情。

我需要删除完整的功能区工具栏“创建”以添加它的更简单版本,看来您可以通过创建新扩展并在扩展配置中使用它来完成删除部分:

<?xml version="1.0"?>
<Configuration xmlns="http://www.sdltridion.com/2009/GUI/Configuration/Merge" xmlns:cfg="http://www.sdltridion.com/2009/GUI/Configuration" xmlns:ext="http://www.sdltridion.com/2009/GUI/extensions" xmlns:cmenu="http://www.sdltridion.com/2009/GUI/extensions/ContextMenu" xmlns:edt="http://www.sdltridion.com/2009/GUI/Configuration/Merge">
    <resources>
        <cfg:groups />
    </resources>
    <definitionfiles />
    <extensions>
        <ext:editorextensions>
            <ext:editorextension target="CME">
                <ext:editurls />
                <ext:listdefinitions />
                <ext:itemicons />
                <ext:taskbars />
                <ext:commands />
                <ext:commandextensions />
                <ext:contextmenus />
                <ext:lists />
                <ext:tabpages>
                </ext:tabpages>
                <ext:toolbars>
                </ext:toolbars>
                <ext:ribbontoolbars>
                    <ext:remove>
                        <ext:extension id="CreatePage">
                            <ext:apply>
                                <ext:view name="DashboardView">
                                    <ext:control id="DashboardToolbar" />
                                </ext:view>
                            </ext:apply>
                        </ext:extension>
                    </ext:remove>
                </ext:ribbontoolbars>
                <ext:extendedareas />
            </ext:editorextension>
        </ext:editorextensions>
        <ext:dataextenders />
    </extensions>
    <commands />
    <contextmenus />
    <localization />
    <settings>
        <dependencies />
        <defaultpage />
        <editurls />
        <listdefinitions />
        <theme>
            <path>/Themes/</path>
        </theme>
        <customconfiguration />
    </settings>
</Configuration>

要使按钮工作,您可能可以做同样的事情(尚未测试过),方法是在 ext:extension id 属性中提供按钮 id。

于 2012-08-27T14:29:12.353 回答