2

Sitecore 7 の使用 - テンプレートのコントロールのプレースホルダーがデバイスに基づいて何になるかを指定する方法はありますか?

例 :Placeholder A if the device is Mobile else Placeholder B

これは、デスクトップ サイトとモバイル サイトでコンテンツの配置が異なることに関係しています。

アップデート

Trayekの答えは素晴らしく、きっとうまくいくでしょう。しかし、私は別のアプローチを使用することになりました。

テンプレートのレイアウトの詳細に、コントロール C を追加しました。プレースホルダーを A に設定し、HideBydevice デスクトップを追加のパラメーター セクションに追加しました。次に、コントロール C を再度追加しました。そのプレースホルダーを B に設定し、追加のパラメーター セクションにHideBydevice Mobileを追加しました。

次にコードで、HideBydeviceパラメーターの値を確認し、パラメーターの値がSitecore.Context.Device.Nameと同じ場合はサブレイアウト/コントロールを非表示にします。

これは私にとってはうまくいきました。

4

1 に答える 1

6

おそらくできることは、Sitecore のRules Engineを使用することです。ここで作成 (または既存のものを使用)Conditionして、モバイル デバイスを使用しているかどうかを確認できます (これを行うには、たとえばMobile Device Detectorを使用できますが、私はそのモジュールが Sitecore 7 でサポートされているかどうかはわかりません)。
その後、 も使用できますAction Set placeholder to value

もちろん、代わりに独自のアクションを作成することもできます。を取得してRenderingReference、プレースホルダーを次のように変更するだけです。

var reference = new RenderingReference(this.RenderingID);
reference.Placeholder = "A";

詳細については、ルール エンジン クックブックを参照してください。

更新
これを行う方法についてのブログ記事を書きました:ここで読んでください

于 2013-09-18T08:01:03.460 に答える