1

2000 を超えるノードを持つ umbraco サイトを管理しています。最近、マスター ドキュメント タイプの 1 つに新しいプロパティを追加しました。これは新しいプロパティであるため、既存のノードにはプロパティ値がありません。値を更新する必要があります。新しい変更を展開する前に、各ノードでそのプロパティを確認します。値を手動で更新するのは時間がかかるため非常に困難です。私たちが計画しているのは、1 回限りのアップグレード aspx ページまたはユーザー コントロールを使用して、この作業を完了することです。この種の状況に陥ったことのある人はいますか?ワンタイム アップグレード ページの作成方法は? 助けていただければ幸いです。

4

2 に答える 2

0

これがコアに含まれていないこと、およびまさにこの目的のために作成されたパッケージがなかったことはかなり確信しています。しかし、特定のノードのすべての子孫の 1 つのプロパティを更新する Razor (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は一括更新を行いますが、前回確認したときは単一のフィールドを更新しませんでしたが、今では更新される可能性があります。

于 2013-03-23T00:01:24.507 に答える
0

次の URL にアクセスすると、xml キャッシュの再発行を行うことでこれを行うことができると思います。

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

于 2013-03-23T06:41:45.650 に答える