在SDL Tridion中获取已发布元素的URL

时间:2012-01-13 10:34:46

标签: tridion

有没有办法在SDL Tridion界面中查找已发布对象的绝对URL?

例如,当我发布页面时,如何找到访问该页面的URL?

5 个答案:

答案 0 :(得分:6)

虽然没有完成,并且没有真正记录,但Tridion 2011 PowerTools包括2个“按分期打开”和“在现场打开”的按钮。

答案 1 :(得分:5)

如果您在c#tbb库中查找代码,可以对页面和结构组使用PublishLocationUrl属性:

StructureGroup.PublishLocationUrl或 Page.PublishLocationUrl

如果项目是否已发布,这将返回URL,因为Page和StructureGroup扩展了ReposityObject类,我通常会检查ReposityObject是否发布到要发布页面的目标,例如:

if (PublishEngine.IsPublished(myReposityObject, myEngine.PublishingContext.PublicationTarget))
{
 // page or sg is published!
}

注意:myEngine是Engine对象的实例。

如果您在核心服务中执行此操作,这有点不同,您需要做的是创建一个PublishLocationInfo对象,该对象从您的Page或StructureGroup对象属性LocationInfo中转换而来,如下所示:

PublishLocationInfo pubInfo = (PublishLocationInfo)page.LocationInfo;
return pubInfo.PublishLocationUrl;

答案 2 :(得分:4)

这不是很简单,主要是因为Tridion允许您将单个页面发布到多个目标(=网站)。该页面实际上可能有许多URL。

但是,最好的选择是打开页面并单击“信息”选项卡。在那里你会找到文件路径,它可能如下所示:\ about \ press \ 2011。用斜杠替换反斜杠,并添加页面的文件名和文件扩展名(可在“常规”选项卡上找到)。将整个内容放在网站的根网址后面(例如http://www.mysite.com')。

答案 3 :(得分:4)

Tridion公开PublishLocationUrl属性中URL的路径。您可以通过TOM.NET API或通过在Internet Explorer的地址栏中输入TCMURI来查看项目的原始XML(例如tcm:4-264-64)来访问它。

但无论如何,这些只会返回URL的路径部分。你必须在Quirijn之前已经提到的前缀中加上正确的基本URL。

答案 4 :(得分:0)

过去,我已经使用扩展发布目标目标的协议模式。在那里添加了baseURL属性后,我可以从事件系统代码访问它(想法是将链接邮寄到工作流批准者)。 现在,您可以使用应用程序数据执行相同的操作。