-4

在一个页面里面插入组件弹出窗口。当用户尝试选择组件和模板时,如何 *限制他们选择组件列表中已经存在的组件和模板的相同组合。

我想在插入按钮上写一个 javascript。请建议我是否以正确的方式进行。

4

2 回答 2

11

正如巴特在上面所说,您的问题非常模糊,但这是一个答案尝试,因为我刚刚做了类似的事情。鉴于含糊不清,我假设您对 JS 代码有深入了解,而我在这里的内容对您来说很有意义:)

在您的 javascript 中,当您的用户单击列表中的给定 cp 时,您可能会将选定的组件表示存储在属性中,例如:

// keeps stock of the current selected component presentation
p.selectedComponentPresentation; 

简单地使用:

var componentPresentation = p.selectedComponentPresentation;

并设置你可以看到我首先得到选项卡控件,存储组件presentationTab并从那里调用getSelectedComponentPresentation()

var masterTabControl = $controls.getControl($("#MasterTabControl"), 
                                            "Tridion.Controls.TabControl");
p.compPresTab = masterTabControl.getPage("ComponentPresentationsTab");
p.selectedComponentPresentation 
                       = p.compPresTab.getSelectedComponentPresentation();

我再次希望这是有道理的,我也假设现在你会知道如何获取 pageId

于 2012-07-12T11:02:07.537 回答
1

如果您在 Component 弹出窗口中,您可以通过以下方式获取 Component 的 ID

$display.getItem().getId()

这实际上适用于任何项目编辑弹出窗口(页面和其他项目类型也是如此)。

它在主仪表板视图中不起作用(因此您在左侧看到树,在右侧看到列表),因为您没有单个“当前项目”。

您必须使用有关代码运行位置的信息来更新您的问题,因为我现在还不清楚。据我所知,Web GUI 中没有地方同时拥有“当前组件”和“当前页面”。

于 2012-07-12T12:41:12.150 回答