0

私はこのコンテンツツリーを持っています:

SiteA
    - Home
    - Articles

SiteB
    - Home
    - News

Repository
    - article1
    - article2
    - article3
    - ...
    - article1000

Itemから任意の記事をRepository取得して、動的に Item に表示する方法はありSiteA/Articleますか? と同じですSiteB/News

追加の質問: 親アイテム リポジトリから各記事のレイアウトを継承することは可能ですか? 記事は移行によって追加されます (次に取り組む予定です)。アイテムが移行されると、レイアウトの再割り当てに時間がかかりすぎます。

4

3 に答える 3

4

はいあります。要件に応じて、実行できることがいくつかあります。
たとえばMultilistField、リポジトリ アイテムから記事を選択できるように、SiteA/Article アイテムに を含めることができます。MultilistField の Datasource フィールドを /sitecore/content/Repository に設定すると、一部またはすべてを選択できるようになります。
ただし、記事名を調べている記事が何千もある可能性があるため、これはおそらくあなたが望むものではありません。

もう 1 つのオプションは、リポジトリ アイテムから最新の X 記事を読み取るサブレイアウト/レンダリングを作成することです。単純な for ループを使用すると、次のようなことができます。

var list = new List<Item>();
var repoItem = Sitecore.Context.Database.GetItem("/sitecore/content/Repository");
for (int i = 0; i < 5; i++)
{
    list.Add(repoItem[i]);
}

DataSourceからとして設定できますasp:Repeater。もちろん、さまざまな方法でそれを行うことができます (ラムダ式で子項目の数を選択する、キーワードも使用する場合は Lucene を使用して項目を取得するなど)。
また、アイテムの数を Sitecore のどこかに定義することもできるため、SiteB/News と SiteA/Article では異なる可能性があります。

于 2013-04-18T08:02:23.317 に答える
3

あなたの質問を見ると、ワイルドカード アイテムを導入してリポジトリのデータをさまざまな場所に表示するなどのオプションを最終的に選択することが想像できます。Marketplace.sitecore.net で興味深いモジュールを利用できます。何をしたいかを決める前に、それも見てください。

最後の行を読んでください:リポジトリ/アイテムから任意の記事を取得して動的に表示できます。ワイルドカード ソリューションを使用することを強くお勧めします。

于 2013-04-18T13:14:35.020 に答える
1

もう 1 つのオプションは、Sitecore クローン (Sitecore 6.4 以降) またはプロキシ (Sitecore 6.4 より古い) を使用することです。

クローン: http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2010/10/Sitecore-CMS-6-4-Cloning.aspx

プロキシ: http://sdn.sitecore.net/Articles/Administration/Using%20Proxy%20Items%20in%205,-d-,3.aspx 警告 Emptor: プロキシをオンにして使用すると、パフォーマンスに影響します。次のように機能すると思います: - アイテム/子を取得する必要があるたびに、プロキシ テーブルを調べて、追加のアイテムを追加する必要があるかどうかを確認します - プロキシが多いほど、各「Sitecore」に「オーバーヘッド」が発生しますquery" は、すべてのプロキシ アイテムを調べて、結果に含める必要がある追加のアイテムがあるかどうかを確認する必要があります。

これは、クローンまたはプロキシするために選択したすべてのアイテムをコピーしますが、あなたが探しているものではないかもしれません.

于 2013-04-18T08:15:36.917 に答える