2012-10-10 29 views
1

我想从Tridion Page PublishPath(公共站点的URL)中获取页面URI。从页面发布路径获取Tridion URI?

我知道我可以使用WebDavURL来获取页面 - 但有很多情况下,这不匹配页面路径(例如当页面文件名是'新闻首页',但文件名是'索引' )。

目前,我不认为这是可能的外表套上,并有想过以下解决方案:

  1. 商店页面发布路径在外表套上Solr的索引(通过扩展它) Customized Tridion Search Index Handler: Custom vs Standard field for page url?
  2. 使用事件系统并将PublishPath和Uri保存到外部DB/KeyValueStore。

其他想法?

此代码将用于更新许多页面的脚本中,也可用于编辑者使用页面URL打开页面。

+1

只是一个想法..做oData Web服务暴露此信息? – Puntero

+3

这确实正是我上次做的,我需要通过它的URL来查找页面。 'http:// localhost:8080/cd_webservice/odata.svc/Pages?$ filter = Url + eq +'/ PlayStation3/Accessories/default.aspx'' –

回答

3

这可能被认为是一种奇怪的方法,但是您可以查询Broker以通过URL获取PageMeta,然后您将能够从PageMeta对象访问URI?

只是一个想法 - 但它可能不是理想的 - 你能分享一些更多的背景吗?

+0

我也在想这种方法,但是如果网页没有发布但这不会工作......这引出了问题,为什么你想要一个未发布的东西的网址。 – johnwinter

+0

上面Frank的这个方法是一个很好的解决方案 - 谢谢! – robrtc

0

我假设你需要做这个CME方?性能是否是一个因素?

您可以在Tom.net或CoreService中构建一个函数,以分割您拥有的路径并循环显示sgs和页面,直到您到达正确的内容页面。只要路径信息自发布页面以来一直未发生变化,它就应该映射到一起。