3

我创建了一个 GUI 按钮,我想在用户仅选择任何文件夹时启用该按钮。

我试图提供如下所示的配置 xml,但它总是显示。

          <ext:apply>                
            <ext:view name="DashboardView">
              <ext:control id="DashboardToolbar"/>
            </ext:view>
              <ext:view name="FolderView">
                  <ext:control id="ItemToolbar"/>
              </ext:view>

          </ext:apply>
4

2 回答 2

3

您必须通过以下检查在接口中实现该isEnabled方法Command,以确保所选元素的类型为 FOLDER。

YourEditor.YourCommand.prototype.isEnabled = 
            function YourCommand$isEnabled(selection) {
    var itemID = selection.getItem(0);

    if ($models.getItemType(itemID) != $const.ItemType.FOLDER) {
        return false;
    }
    else
        return true;   
};
  • 如果您返回trueisEnabled功能,该按钮将被启用。
  • 如果您返回false,该按钮将被禁用

如果您需要有关如何设置扩展的更多信息,您可以参考:

于 2012-09-21T12:20:41.753 回答
1

没有“文件夹视图”之类的东西。将 Tridion 的 GUI 中的视图视为屏幕。所以你有一个 DashboardView,左边有一个树,右边有一个列表,然后当你打开一个组件时会弹出一个组件视图,等等。

根据您的要求,您正在向 DashboardView 添加一个按钮,并希望它根据选择启用/禁用。您必须在isEnabled命令的 JavaScript 方法中实现该逻辑。

如果您查看任何现有的扩展,您将看到一个selection参数被传递到此方法中。您可以从中确定哪些项目(以及它们的类型),从而确定何时启用/禁用您的按钮。

于 2012-09-21T12:16:12.700 回答