2016-01-29 48 views
2

當前,我們創建的所有模板都有源字段,其路徑是字符串。Sitecore - 以編程方式修改模板的源字段

例如:

"sitecore/content/Test"

現在,如果我想測試文件夾移動到

sitecore/content/Shared/Tags/Test 

的鏈路斷開。 如果我手動更改此使用GUID(使用構建選項),我得到:

datasource={62CF8494-B148-4B2E-9D36-52EC4CD75E13}&database=master 

如果我現在四處移動test文件夾,我的鏈接保持原樣。

我想寫一個遍歷樹的例程並更新我的模板的所有源字段(僅在特定文件夾中)以包含GUID和db名稱。 這可能嗎?

我在繼承自PublishItemProcessor的類的Process方法中嘗試這樣做,並在web.config中添加了相應的條目。此方法被調用,但該字段的Source屬性是隻讀的並且可以修改。 任何想法? 在此先感謝。

+0

你有沒有機會提供你最終結果的例子?很想將它添加到書中。 – Coding101

回答

3

這裏最好/最有效的選擇是使用Sitecore Powershell擴展來修改項目。

這是一個很好的參考點:https://sitecorepowershell.gitbooks.io/sitecore-powershell-extensions/content/working-with-items.html

你也可以做到這一點的代碼。

您需要編寫一個以/sitecore/templates/user defined或任何根文件夾爲開頭的例程(代碼或SPE)。

緩慢通過樹並獲取所有具有模板的項目:Template Field。然後您可以檢查Source字段的值。如果它是您想要更改的那個,請更新該值並保存該項目。

請記住在更新所有值後發佈模板樹。

相關問題