2013-03-22 62 views
1

我們正在管理一個超過2000個節點的umbraco網站。我們最近在其中一個主文檔類型中添加了一個新屬性,因爲它是一個新屬性,現有節點沒有屬性值。我們必須更新在部署新更改之前,每個節點中該屬性的值。手動更新值非常困難,因爲它需要大量時間。我們計劃使用一次性升級aspx頁面或用戶控件來完成此操作工作。有沒有人遇到過這種情況?如何製作一次性升級頁面?任何幫助,將不勝感激 。如何升級所有現有節點中新增的屬性?

回答

0

我相當確定這不是核心,並且沒有爲此目的而創建的包。但它是非常簡單的創建一個包含剃刀(CSHTML)腳本,對於一個特定節點的所有後代更新單個屬性的宏:

喜歡的東西(只是從2級課程的內存):

var nodes = @Model.DescendantsOrSelf(-1); //-1 is the root node 
foreach (var node in nodes) 
{ 
    Document doc = new Document(node.Id); 
    doc.getProperty("yourProperty").Value = "xxx"; // the getProperty looks wrong, I know 
    doc.Publish(new User(0)); //User 0 is the admin user 
    umbraco.library.UpdateDocumentCache(doc.Id); 
} 

這個偉大的包http://our.umbraco.org/projects/developer-tools/content-maintenance-dashboard-package沒有大規模更新,但上次我檢查它沒有更新單個字段 - 但它現在可能會做。

+0

感謝了很多的幫幫我。 – Sandeep 2013-03-23 05:32:02

+0

如果您在下面看到我的帖子,此功能已存在。我經常使用它,我保留開發包的權利,以便更容易地訪問對話框。 – ProNotion 2013-03-23 07:20:28

+1

@ProNotion您的答案不會更新所有節點上的屬性 - 請再次閱讀該問題。 – amelvin 2013-03-23 11:06:59

0

我還以爲做了XML緩存應該這樣做的重新發布,如果你去到以下網址:

/umbraco/dialogs/republish.aspx?xml=true

+0

我認爲OP正在問一個不同的問題。該鏈接重新發布所有節點--OP想知道如何更改所有節點上的單個值然後發佈。 – amelvin 2013-03-23 11:06:05

相關問題