-2

我需要在 tridion 功能区中创建一个位于另一个下方的按钮。

我创建了一个用户控件,它出现在功能区上,但处于禁用模式。在“http://tridiondeveloper.com/ribbon-item-group”;有人提到<ext:issmallbutton>true</ext:issmallbutton>在配置中包含我的扩展元素。我已将它包含在 extension.config 文件中。但我面临类似“加载扩展失败 - 有无效的子元素'issmallbutton'的错误。所以,目前我忽略了这一步,按钮处于禁用模式。

您能否让我了解我需要在哪里添加这个。(<ext:issmallbutton>true</ext:issmallbutton>)并启用按钮。

4

2 回答 2

5

正如 Jeremy 的回答所表明的那样,您不需要ext:issmallbutton启用按钮(您提到了我在 Tridion Developer 上的文章,我在其中特别指出,ext:issmallbutton当您想将按钮堆叠在彼此之上时,不要使用)。

您可能应该尝试调试您的 JavaScript 并查看您的_isAvailable(selection, pipeline)_isEnabled(selection, pipeline)方法中发生了什么。

isAvailable 方法应指示该命令是否适用于所选项目,isEnabled 方法应指示该命令是否可以执行。我通常只是让 isEnabled 方法返回 isAvailable 的结果(因为当按钮可用时,它应该大部分时间也被启用)。选择页面后如何启用按钮的示例如下所示:

Example.PageBtn.prototype._isAvailable = function PageBtn$_isAvailable(selection, pipeline) {
    if (pipeline) {
        pipeline.stop = false;
    }

    if (selection.getCount() == 1) {
        var itemType = $models.getItemType(selection.getItem(0));
        return itemType && (itemType == $const.ItemType.PAGE);
    }
    return false;
};
Example.PageBtn.prototype._isEnabled = function PageBtn$_isEnabled(selection, pipeline) {
    if (pipeline) {
        pipeline.stop = false;
    }
    return this._isAvailable(selection);
}; 

现在ext:issmallbutton元素与这一切无关,但如果你想知道应该在哪里准确使用它,它应该ext:extension像这样进入元素内部:

<ext:extension assignid="PageBtn" groupid="MyGroup" name="Example" pageid="HomePage">
    <ext:command>PageBtn</ext:command>
    <ext:title>Example</ext:title>
    <ext:issmallbutton>true</ext:issmallbutton>
    <ext:dependencies>
        <cfg:dependency>Example.Commands</cfg:dependency>
    </ext:dependencies>
    <ext:apply>
        <ext:view name="DashboardView">
            <ext:control id="DashboardToolbar" />
        </ext:view>
    </ext:apply>
</ext:extension>

您可以在通过 8 个步骤设置 SDL Tridion 2011 GUI 扩展中找到更多信息。

于 2012-08-10T08:41:56.490 回答
4

要启用按钮,您需要其 isEnabled 方法返回 true。issmallbutton 仅确定工具栏中按钮的大小。有关如何创建按钮扩展的信息,请查看关于同一主题的许多其他问题...

于 2012-08-10T08:00:45.540 回答