2012-10-16 81 views
3

在我們的應用程序設計中,我們想向用戶介紹VanityURL概念。 VanityURL將成爲該頁面的一個自定義元。通過URL查詢頁面的代理api不再工作,因爲虛榮url不是PAGE表中的頁面。我們想出的解決方案是通過使用CustomMetaKeyCriteria和CustomMetaValueCriteria來查詢頁面id,並且它對我們有效。通過虛榮URL查詢Tridion頁面

我想在這裏有專家來評估這個解決方案並提供一些意見。

謝謝。

回答

3

好問題。對於每個頁面請求的元數據查詢,我會保持謹慎。您可能還需要謹慎將這些數據存儲爲頁面元數據,因爲您需要確保這些值在發佈中的所有頁面/ URL中都是唯一的。

要解決唯一性問題,您可能需要創建一個事件系統,該系統在保存頁面時針對某種索引文件檢查/保存值。

該文件可能是這個樣子:

<?xml version="1.0" encoding="UTF-8"?> 
<VanityURLS PublicationID="tcm:0-33-1"> 
    <Page ID="tcm:3-24-64"> 
     <Vanity>/someURL.html</Vanity> 
     <Vanity>/someotherURL.html</Vanity> 
    </Page> 
    <Page ID="tcm:3-25-64"> 
     <Vanity>/someURL.html</Vanity> 
     <Vanity>/someotherURL.html</Vanity> 
    </Page> 
<VanityURLS> 

然後,您可以定期發佈索引文件,並用它來查找請求的URL,並將它們映射到頁面的URI。然後,您可以通過它們的URI加載頁面,或者如果您想要使用現有的代碼,則可以使用鏈接API從URI獲取URL。然後,您可以將該值傳遞給GetPageMetaByURL()方法。