如何为视图子集配置SDL Tridion CME扩展?

如何为视图子集配置SDL Tridion CME扩展?,tridion,tridion-2011,Tridion,Tridion 2011,我为SDL Tridion创建了一个新编辑器,它为功能区栏添加了一些新功能。可以通过将以下代码段添加到editor.config来启用此功能 PT_项目注释 保存并评论 假的 电动工具.命令 这将通过在节点中使用通配符值应用于所有视图。这会将“我的新按钮”添加到每个视图(包括主仪表板)的功能区中。是否有办法将其添加到除仪表板之外的所有视图?还是我必须创造这样的东西 如果这是实现所需结果的唯一方法,是否在某个位置有所有视图名称的列表?据我所知,您需要指定所有视图或使用通配符。如果isAva

我为SDL Tridion创建了一个新编辑器,它为功能区栏添加了一些新功能。可以通过将以下代码段添加到editor.config来启用此功能


PT_项目注释
保存并评论
假的
电动工具.命令
这将通过在节点中使用通配符值应用于所有视图。这会将“我的新按钮”添加到每个视图(包括主仪表板)的功能区中。是否有办法将其添加到除仪表板之外的所有视图?还是我必须创造这样的东西



如果这是实现所需结果的唯一方法,是否在某个位置有所有视图名称的列表?

据我所知,您需要指定所有视图或使用通配符。如果isAvailable功能可以用于功能区工具栏按钮,那就太好了,对吗?这意味着如果命令在_isAvailable方法中返回false,按钮将不会显示

嗯,我找到了一份工作。您可以在命令中的isAvailable方法中执行以下操作:

Your.Namespace.PT\u ItemCommenting.prototype.\u isAvailable=函数PT\u ItemCommenting$\u isAvailable(选择){
var isAvailable=$display.getView().getId()!='DashboardView';
如果(可用){
返回true;
}
var button=$controls.getControl($(“#项目注释”),“Tridion.controls.button”);
按钮隐藏();
返回false;
};
我认为这实际上是一个很好的实践,因为如果命令不可用,它会“隐藏”命令,对吗


让我知道它是如何工作的。

Jaime提供的解决方案将不起作用,因为:

  • 如果
    可用,功能区工具栏将仅隐藏“创建”选项卡上的按钮
    相应命令的方法将返回false
  • RibbonToolbar中的大多数按钮实现特定的
    Tridion.Controls.RibbonButton
    界面。这意味着,你什么时候会尝试 要获取同一元素的
    Tridion.Controls.Button
    控件,您需要 基于相同的html元素获得完全不同的控件。所以 RibbonToolbar将不知道这一点,它将无法正常工作
  • 若要隐藏RibbonToolbar中的按钮,则应使用RibbonToolbar和RibbonPage上的公共方法。因此,RibbonToolbar将正确处理它。例如:
var-toolbar=$controls.getControl($(“#ItemToolbar”),“Tridion.controls.RibbonToolbar”);
var page=toolbar.getPageById(“主页”);
第页隐藏项(按钮编号);
第页显示项目(按钮编号);
对于最初的问题,这里有一个非常简单和简单的解决方案:


PT_项目注释
保存并评论
假的
电动工具.命令

非常好的鲍里斯。很高兴知道这是可能的。。。如果能在配置文件中提供一个可以执行的操作的参考,那就太好了,所以如果您有任何可以共享的内容,那就太棒了。是否可以将用于诸如下划线之类的开箱即用字段?如果您是指“格式”功能区页面上的“下划线”按钮,那么答案是“是”。