在自定义页面上打开ItemSelectControl(不是gui扩展名)

时间:2012-03-19 14:22:46

标签: tridion

我正在开发一个Web应用程序,它将作为Tridion中的自定义页面添加。

在自定义页面上,我想选择模式X的一个组件。我想使用ItemSelectControl用于此目的,但我不知道如何从我的自定义页面打开该控件,因为我无法访问任何Tridions javascript命名空间(例如$ model或$ const)。我可以简单地用ItemSelectControl的url打开一个新的弹出窗口并在json中创建我自己的过滤器,但我宁愿使用Tridions javascript命名空间中定义的常量。

是否有一种简单的方法可以向我的Web应用程序添加引用或其他内容以访问Tridions javascript命名空间?如果没有,你有什么建议我应该如何解决这个问题?

有关自定义页面的更多信息:

  • CMS服务器主机名:testcms

  • 一个空的ASP.NET项目,其中一个名为Test.aspx的aspx页面发布到路径C:\ TestPage \

  • 在IIS中,SDL Tridion站点中名为TestPage的Web应用程序,其路径为C:\ TestPage \

  • 尝试使用网址访问broswer页面:http://testcms/TestPage/Test.aspx

2 个答案:

答案 0 :(得分:5)

您可以使用弹出窗口的以下标记/代码来完成此操作。 (弹出页面必须是.aspx页面)

<%@ Page Language="C#" AutoEventWireup="true" Inherits="Tridion.Web.UI.Controls.TridionPage" ClassName="DashboardView" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html class="tridion popup">
<head>
    <!-- Tridion manager -->
    <cc:TridionManager runat="server" Editor="CME">
        <dependencies runat="server">       
            <dependency runat="server">Tridion.Web.UI.Editors.CME</dependency>
            <dependency runat="server">Tridion.Web.UI.Editors.CME.commands</dependency>
            <dependency runat="server">Tridion.Web.UI.Editors.CME.globalCommands</dependency>
            <dependency runat="server">Tridion.Web.UI.Controls.Popup</dependency>
        </dependencies>
    </cc:TridionManager>
</head>
<body>
    My popup
</body>

这意味着您的应用程序和Tridion之间存在依赖关系,因为您的弹出页面必须继承Tridion.Web.UI.Control.TridionPage。如果你想要这个,这取决于你。我不知道添加Tridion JavaScript文件的另一种方法。 (此方法也用于PowerTools项目。请在此处查看:http://code.google.com/p/tridion-2011-power-tools/

答案 1 :(得分:1)

如果您要开发自己的连接到SDL Tridion的Web应用程序(例如,您可以将其用作自定义页面或自定义URL),则应使用Core Service。这使您可以连接到Tridion API,而无需复制(部分)SDL tridion Web.Config。

SDL Tridion World提供了如何使用核心服务的示例:Item Selector Custom URL eXtension

此示例显示使用核心服务的项目选择器构建。它专门设计用于自定义URL(模式字段中的链接),但可以轻松转换为在您自己的Web应用程序或自定义页面中使用。

只有在创建SDL Tridion UI扩展时,您才能(或应该)使用Tridions javascript命名空间。