7

__RenderingsSitecoreのフィールドを共有しないように設定した経験のある人はいますか?マルチサイト-マルチ言語ソリューションを構築しており、(サブ)レイアウトを言語ごとに異なるものにする必要があります。たとえば、英語のサイトには、同じアイテムのスウェーデン語バージョンにはないサブレイアウトがあり、すべてのプレゼンテーションコンポーネントが異なる言語の同じデータソースを持っているとは限りません。

これに対するやや簡単な解決策は、__Renderingsのフィールドの「共有」のチェックを外すこと/sitecore/templates/System/Templates/Sections/Layout templateですが、これは他の結果をもたらしますか?または、この要件を処理するためのより良い方法はありますか?

4

4 に答える 4

5

言語や出身国などに基づいてビジュアル要素を交換する必要がある場合、私自身の好みは、Sitecore のパーソナライゼーション ルール編集を使用してデータ ソースを交換し、その方法でプレゼンテーションを変更することです。Sitecore のデフォルトの動作を変更する必要はなく、組み込みの Sitecore 機能を利用できます。

さまざまな「サブレイアウト」が、実際にはさまざまなパーソナライゼーション ルールによって取り込まれたデータソースにすぎない場合、OMS/DMS を使用してこれらすべてを構成し、現在の状態で必要なコンポーネントを提示するために Sitecore エンジンを利用することができます。パフォーマンスに関しては、DMS の最新バージョンを使用するのがおそらく最適です (6.5 Update 5 が現在推奨されるリリースであると思います)。

于 2012-08-22T13:05:21.217 に答える
2

私たちは確かにこれを行っており、ほとんどの場合、副作用はほとんどありません。実際、これが__Renderingsの変更に関するワークフローを取得する唯一の方法です。これをPartialLanguageFallbackと組み合わせて、言語が英語から値を継承できるようにします。ただし、アイテムが複製される場合と同様に、標準値/フォールバックではなく、常にデフォルト値が最初に複製から取得されることに注意してください。

于 2012-08-22T18:58:37.007 に答える
2

通常、この方法で Sitecore のデフォルトの動作を変更することはお勧めできません。将来システムを使用する可能性のある他の人にとっては透過的ではなく、予期しない結果につながる可能性があります。

Imo、(サブ)レイアウト内で切り替えを行って、現在の言語に基づいて異なるファイルをロードすることをお勧めします。

結果については。_Renderings フィールドを非共有にすると、期待どおりに機能します。言語バージョンごとに異なるプレゼンテーションの詳細を設定できます。その結果、言語バージョンごとに設定する必要があるため、管理が容易ではなくなります。

于 2012-08-22T09:59:32.903 に答える
1

代わりに、sitecore のデバイスを使用します。言語ごとにサイトを定義でき、各サイトは独自のデバイスを持つことができます。これは、言語ごとに 1 つのドメイン名 (www.site.com、www.site.de、www.site.fr など) を持っている場合、すぐに使用できます。

すべての言語に対して 1 つのサイト (1 つのホスト名) がある場合は、httpRequestBegin パイプライン プロセッサを使用してデバイスを切り替えることができます。

この記事http://briancaos.wordpress.com/2012/04/12/identifying-mobile-devices-in-sitecore/では、モバイル デバイスを識別する方法について説明しています。言語によってデバイスを切り替えるロジックを書き直すのは難しくありません。

言語ごとに異なるデバイスを定義したら、言語に一致するデバイスにレンダリングを配置するだけです。そして、すべてのレンダリングが同じであるすべてのページに対して、フォールバック デバイスの可能性がまだあります。

Sitecore のデフォルトの動作を変更することは今のところうまくいくかもしれませんが、Sitecore プラットフォームを使用して拡張することはより良い方法です。

于 2012-08-22T11:02:52.020 に答える