gpt4 book ai didi

tridion - 如何扩展 Tridion.Cme.Commands.Open.prototype._execute() 的默认行为?

转载 作者:行者123 更新时间:2023-12-04 15:35:20 24 4
gpt4 key购买 nike

我编写了一个 GUI 扩展,它为 SDL Tridion CME 中的许多项目 View (例如组件、页面和架构等)添加了一个附加选项卡。我还编写了一些 JavaScript,如果在 URL 中指定了选项卡名称加载 View 时,它会直接加载该选项卡。

结果是,如果加载了一个页面,添加了如下的标签名:

http://localhost/WebUI/item.aspx?tcm=64#id=tcm:1-48-64&tab=InfoTab

而不是默认的
http://localhost/WebUI/item.aspx?tcm=64#id=tcm:1-48-64

信息选项卡将加载在顶部,而不是常规选项卡。这是使用以下代码片段执行的,并且效果很好:
$evt.addEventHandler($display, "start", onDisplayStarted);

// This callback is called when any view has finished loading
function onDisplayStarted() {

$evt.removeEventHandler($display, "start", onDisplayStarted);
var tabname = $url.getHashParam("tab");
if (tabname != '') {
var tabControl = $controls.getControl($("#MasterTabControl"), "Tridion.Controls.TabControl");
tabControl.selectItem(tabname);
}
}

现在我想创建一个上下文菜单项来打开项目并使用我的新功能链接到选项卡。我的第一个想法是自己构建 Item URL,然后在我的 execute 方法中打开一个新窗口。所以我查看了标准 Open.prototype_execute() 中的默认功能GUI 的功能。这存储在 navigation.js 中CME 文件,由 Tridion.Cme.Commands.Open.prototype._execute 执行方法。该代码比我预期的要复杂得多,因为它处理共享项目和权限等。

我不只是将所有这些代码复制到我自己的函数中,而是想知道是否有一种方法可以优雅地扩展现有的 Open.prototype_execute()函数并将我的“&tab=MyTab”附加到 $cme.Popups.OPEN_ITEM_OPTIONS.URL为我自己的功能常数。

任何建议将不胜感激。

最佳答案

最后 Open 命令使用 $config.getEditorUrl(item_type)获取项目 View 的 url(item_type - $const.ItemType.COMPONENT 等)。这部分功能没有扩展点,但您始终可以尝试自行承担风险来覆盖它。

关于tridion - 如何扩展 Tridion.Cme.Commands.Open.prototype._execute() 的默认行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12957032/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com