我正在开发一个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
答案 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命名空间。