2012-10-10 34 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和頁面,直到您到達正確的內容頁面。只要路徑信息自發布頁面以來一直未發生變化,它就應該映射到一起。