我想使用GUI扩展将项添加到上下文菜单中,该扩展直接链接到视图中的选项卡。
一个很好的例子是SDL Tridion的旧版本。在上下文菜单中有一个指向组件“信息”选项卡的链接,该选项卡直接在“信息”选项卡上打开了组件视图。
是否可以重新创建此项,如果有,是否有关于如何链接到特定标签的示例?
我尝试将以下JavaScript添加到我的tab.js:
var tabname = $url.getHashParam("tab")
if (tabname != '') {
if ($j('#' + tabname)) {
$j('#' + tabname).focus();
}
}
此代码正确触发,但选项卡永远不会被选中。有没有一种实际选择标签的方法?
答案 0 :(得分:5)
我说你需要写两部分:
我认为已经有一些将命令从命令传递到其弹出窗口的示例,因此将重点关注#2。
当您在Tridion GUI中看到标签时,它们通常是Tridion.Controls.TabControl
的一部分。如果您在弹出窗口中运行JavaScript,则可以使用此代码段获取所有选项卡控件:
var tab = $controls.getControl($("#MasterTabControl"),
"Tridion.Controls.TabControl");
然后我们只需要在其上选择正确的标签:
tab.selectItem('InfoTab');
InfoTab
是我们想要关注的标签,因此您传递给弹出窗口的参数。
答案 1 :(得分:4)
感谢@Frank为所有人提供了帮助,感谢@Albert为他出色的post,我现在将以下JavaScript文件添加到我的编辑器中:
$evt.addEventHandler($display, "start", onDisplayStarted);
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);
}
}
结果是您现在可以向URL或项目添加任何选项卡名称,它将在该选项卡上打开
e.g。 ?`HTTP://cmsserver/WebUI/item.aspx TCM = 16#标识= TCM:1-46&安培;标签= InfoTab
最后一步是将我的上下文菜单连接到此URL