1

我正在开发一个 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\

  • 尝试使用 url 访问浏览器中的页面:http://testcms/TestPage/Test.aspx

4

2 回答 2

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/ )

于 2012-03-19T15:39:45.250 回答
1

如果您想开发自己的连接到 SDL Tridion 的 Web 应用程序(例如,您可以将其用作自定义页面或自定义 URL),您应该使用核心服务。这使您无需复制(部分) SDL tridion Web.Config 即可连接到 Tridion API。

SDL Tridion World 上提供了如何使用核心服务的示例:项目选择器自定义 URL 扩展

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

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

于 2012-03-20T12:25:10.343 回答