0

Webサイトのさまざまな場所に存在する必要があるネストされたリストページがあるシナリオがあります。

問題は、このリストページを多くの場所にコピーするのではなく、1つの場所で管理したいのに、URL構造を失いたくないということです。だから、私は持っているかもしれません

www.abc.com/infocomm/infrastructure/wired/that-listing-page www.abc.com/infrastructure/ipv6/that-listing-page

コンテンツストアにリストページを作成し、ワイルドカードクエリを使用して子ページを動的に引き出すことを試みましたが、これにはいくつかの欠点があります。

  1. リッチテキストエディタを使用すると、コンテンツ作成者はリストページアイテムへのハイパーリンクを作成できません。ハイパーリンクはコンテンツストアに存在し、リストページアイテムを取得するにはクエリ文字列をハードコーディングする必要があるためです。たとえば、次のようにパラメータをハードコーディングする必要があります。

www.abc.com/infocomm/infrastructure/wired/that-listing-page/ 2012 / article-1

  1. #1のため、コンテンツ作成者がリストページの下のアイテムの名前を変更したり、アイテムを削除したりすると、リンク切れが多くなります。
  2. 既存のコンテンツを移行する必要があります。つまり、最初の問題につながる新しいリンクを手動で更新してハードコーディングする必要があります。
  3. 上記の課題のため、GoogleサイトマップとRSSフィードを生成できません。

皆さんの中には以前にこのシナリオを経験したことがあるかもしれませんが、皆さんがどのようにそれを達成したかを聞きたいです。Sitecore6.5を使用しています。

4

2 に答える 2

1

アイテムの複製はまさにここで必要なもののようです。このブログ投稿でクローン作成の詳細を読んでください。

www.abc.com/infocomm/infrastructure/wired/that-listing-pageの下にアイテムのクローンを作成できるはずです。これにより、アイテムwww.abc.com/infrastructure/ipv6(およびその子孫)が自動的に更新されます。

于 2012-10-07T13:32:23.540 に答える
0

私が正しく理解していれば、このページにさまざまなコンテンツノードのアイテムへのリンクを表示したいと思います。

私が考えることができる最も簡単な解決策は、リストページ用の新しいテンプレートを作成し、テンプレートにツリーリスト選択ボックスフィールドを設定し、子孫を取得する/ sitecore / content /Home/を追加することです。

ここで、コード内で選択したアイテムを繰り返し処理し、リストページに表示します。アイテムを取得すると、選択したアイテムのすべてのフィールド値を取得できるはずです。おそらく、サムネイル画像が表示され、次のコードを使用してリンクが生成されます。

Sitecore.Data.Database dataContext = Sitecore.Context.Database;

Sitecore.Data.Item listPageItem = Sitecore.Context.Item;

Sitecore.Data.Fields.MultilistField multiselectField = 
                  (MultlistField)home.Fields["[select list field name]"];

Items[] selectedItems = (multiselectField != null)? 
                             multiselectField.GetItems() : null;

int listCount = (selectedItems ==null)? 0 : selectedItems.Length;

for(int index=0; index < listCount; index++)
{

   Item item = selectedItems[index];


   //  Assuming you want to display thumbnail image as a link to the page
   string thumbnailUrl = item.Fields["[Thumbnail Image Path]"] 

   string imgTag = string.Format(@"<img src=""/{0}"" width=""[img width]"" 
                   alt=""{1}"" />", 
                   thumbnailUrl, 
                   item.Fields["[Title]"]);

   string url = Sitecore.Links.LinkManager.GetItemUrl(item); 

   string itemLink = string.Format(@"<a href=""{0}"">{1}</a>", url, imgTag); 

}


この助けを願っています...

于 2012-10-08T04:32:54.477 に答える