例: 複数のアイテムの子をシンジケートする

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

次の例に基づいて、フィード定義アイテムのSourcesという名前のフィールドで選択されたすべてのアイテムの子をシンジケートするカスタムRSSフィードを実装できます。

  1. Visual Studio Webアプリケーション プロジェクトで、次の例に基づいてクラスをコンパイルします。

    namespace Sitecore.Sharedsource.Syndication
    {
        public class SelectionFeed : Sitecore.Syndication.PublicFeed
        {
            public override System.Collections.Generic.IEnumerable<Sitecore.Data.Items.Item> GetSourceItem()
            {
                Sitecore.Data.Fields.MultilistField entries = this.FeedItem.Fields["Sources"];
    
                if (entries == null || entries.Count < 1)
                {
                    return new Sitecore.Data.Items.Item[0];
                }
    
                Sitecore.Collections.ItemList list = new Sitecore.Collections.ItemList();
    
                foreach (Sitecore.Data.Items.Item parent in entries.GetItems())
                {
                    foreach (Sitecore.Data.Items.Item child in parent.Children)
                    {
                        if (Sitecore.Syndication.FeedUtil.IsConfiguredForFeed(child))
                        {
                            list.Add(child);
                        }
                    }
    
                }
    
                if (list.Count < 1) {
                    return new Sitecore.Data.Items.Item[0];
                }
    
                list.Sort(new Sitecore.Data.Comparers.UpdatedComparer());
    
                return list.ToArray();
            }
        }
    }
  2. テンプレート マネージャーまたはコンテンツ エディターSystem/Feeds/RSSフィード データ テンプレートの 拡張性 セクションで、Sourcesという名前のTreelistフィールドを追加し、このフィールドのSourceプロパティを /sitecore/contentアイテムに設定します。

  3. コンテンツ エディターのフィード定義アイテムの 拡張性 セクションの 種類 フィールドに、クラスのシグネチャを入力します。Sitecore.Sharedsource.Syndication.MultiParentFeed, Assembly

  4. コンテンツ エディターのフィード定義アイテムの 拡張性 セクションの ソース フィールドで、シンジケートする子を持つアイテムを選択します。

この記事を改善するための提案がある場合は、 お知らせください!