如何启用使用自定义控件创建的按钮

时间:2012-08-10 07:35:38

标签: tridion tridion-2011

我需要在tridion功能区中一个接一个地创建按钮。

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

请您告诉我需要添加的内容。(<ext:issmallbutton>true</ext:issmallbutton>)并启用按钮。

2 个答案:

答案 0 :(得分:5)

正如Jeremy的回答所示,你不需要ext:issmallbutton来启用你的按钮(你在Tridion Developer上提到my article,我在那里明确指出{{当你想要将按钮叠放在另一个上面时,不要使用1}}。

您可能应该尝试调试JavaScript并查看ext:issmallbutton_isAvailable(selection, pipeline)方法中发生的情况。

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

_isEnabled(selection, pipeline)

现在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元素那样进入:{ / p>

ext:extension

您可以在Setting up a SDL Tridion 2011 GUI extension in 8 steps中找到更多信息。

答案 1 :(得分:4)

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