【问题标题】:GetItemByWebDavUrl in anguillaGetItemByWebDavUrl 在安圭拉
【发布时间】:2012-12-11 23:17:50
【问题描述】:

我正在编写 SDL Tridion Anguilla 扩展,需要使用 webdav url 拉取配置组件。该配置还有一组 webdav url,我需要为这些获取项目对象。

Frank - 可能是我在我的问题中吃了几句话。我正在编写一个 CMS GUI 扩展程序并编写 javascript。那么有没有像 $models.getItem(); 这样的东西?哪个给了我组件或组件的xml?

【问题讨论】:

  • 如何通过安装扩展程序时执行的脚本解析这些 webdav url?

标签: tridion tridion-2011


【解决方案1】:

在大多数 Tridion Content Manager API 中,您可以通过其 TCM URI 或其 WebDAV URL 来读取项目。

因此,如果您使用的是核心服务,您可以这样做:

var item = client.Read(webdavURL, null);

然后您可以遍历字段(如果您使用核心服务,Fields helper class 会派上用场)并对其中的每个值执行相同操作。

如果您需要将映射提供给客户端,则需要创建自定义 Web 服务以使其可用。虽然一开始并不简单,但创建 WCF 服务并不像某些人想象的那样令人生畏。尤其是当您以 this example of a minimal WCF service for Tridion 开头时。

【讨论】:

  • 非常感谢弗兰克,最低限度的服务已经实现并且工作起来就像一个魅力。虽然我相信这样一个基本功能应该是开箱即用的。
  • 大多数 SDL Tridion 产品和插件在服务器上进行映射,以避免为它们进行往返。因此,如果您在某处有 WebDAV URL,为什么不在数据扩展器中将其转换为服务器上的 TCM URI?最初可能需要做更多的工作,但您的连接延迟较高的用户将不胜感激。
【解决方案2】:

客户端上没有通过 WebDAVUrl 解析项目的功能。我们拥有的唯一功能是:

var item = $models.getItem(tcmUri);
item.getWebDavUrl();   // will return you WebDAVUrl, if it was loaded before
item.loadWebDavUrl();  // will make async call to load WebDAVUrl. "loadwebdavurl" or "loadwebdavurlfailed" will be fired on the item afterwards

【讨论】:

    猜你喜欢
    • 2012-08-09
    • 2012-06-27
    • 2011-07-30
    • 2011-03-03
    • 2012-01-02
    • 2017-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多