正如 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 扩展中找到更多信息。