【freo】【freoTips】【テンプレート系TIPS】modeとworkの値によって表示を切り替える方法
freoを利用しているサイトで表示している画面のURLには、[mode]と[work]という文字列が必ず含まれています。
例えば、「https://32877.info/index.php/view/1」「https://32877.info/index.php/page/gallery」などです。
この、「view」と「page」のことを『mode』といい、「1」と「gallery」のことを『work』といいます。
詳しくは下記を参照してください。
32877:【freo講座】【初心者の為のfreoテンプレート編集講座】【基本編(12)】freoの画面についての考え方
modeとworkに入る値によって条件を発生させたい場合の条件式の書き方は以下のとおりです。
modeの値によって表示を切り替える方法
<!--{if $smarty.request.freo.mode == 'modeの値'}--> modeが「modeの値」だった場合の表示 <!--{/if}-->
解説:
<!--{もしmodeが「modeの値」だったらここから}--> modeが「modeの値」だった場合の表示 <!--{もしmodeが「modeの値」だったらここまで}-->
使用例:
modeが[entry]または[view]だったら[freo/templates/calender.html]をincludeし、
modeが[page]だった場合は[freo/templates/pan.html]をincludeする。
<!--{if $smarty.request.freo.mode == 'entry' or $smarty.request.freo.mode == 'view'}--> {include file='calender.html'} <!--{elseif $smarty.request.freo.mode == 'page'}--> {include file='pan.html'} <!--{/if}-->
workの値によって表示を切り替える方法
<!--{if $smarty.request.freo.work == 'workの値'}--> workが「workの値」だった場合の表示 <!--{/if}-->
解説:
<!--{もしworkが「workの値」だったらここから}--> workが「workの値」だった場合の表示 <!--{もしworkが「workの値」だったらここまで}-->
使用例:
workが[novel]だったらページタイトルに「小説:」をつけ
workが[gallery]だった場合はページタイトルに「イラスト:」をつける。
<!--{if $smarty.request.freo.work == 'novel'}--> 小説:{$page.title} <!--{elseif $smarty.request.freo.work == 'gallery'}--> イラスト:{$page.title} <!--{/if}-->
ワンポイント
ページIDが「novel」のページの場合、modeは「page」でworkは「novel」です。
ページパス調整プラグインを使って「page」を省略した場合であっても、pageというmodeは省略されているだけで存在しますので注意して下さい。