tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Force.comサイトのサイトテンプレートをつかうときに注意すること

Force.comサイトにはサイトテンプレートを指定できる機能が用意されています。

f:id:tyoshikawa1106:20140212222233p:plain:w300


この機能を使うと"apex:composition template"でテンプレートを指定するときに
"{!$Site.Template}"というように指定することができるようになります。

f:id:tyoshikawa1106:20140212222358p:plain


これによりサイトテンプレートを変更したくなったときはサイトの設定画面で変更するだけでコードの修正を行わずに一括で変更できるようになります。


とても便利な機能なのですが、一つ気をつけたほうがよさそうなことがありました。
Force.comサイトで表示するページはVisualforceページになります。そのため社内ユーザもログイン後ならVisualforceタブなどからアクセスすることができます。

f:id:tyoshikawa1106:20140212222833p:plain


このときサイトテンプレートを使っているとテンプレートが反映されなくなってしまいます。

f:id:tyoshikawa1106:20140212223022p:plain:w300

"{!$Site.Template}"はForce.comサイトとしてアクセスしたときのみ適用されることが原因と思われます。この問題は"{!$Site.Template}"を使わず直接テンプレート用のページを指定することで回避できます。

f:id:tyoshikawa1106:20140212223629p:plain

f:id:tyoshikawa1106:20140212223813p:plain:w300


システム管理者ユーザなどでアクセスできるようにしておくとちょっとした確認を行いたいときに便利だと思うので、必要に応じて使い分けるようにした方がよさそうです。