utitiliyマニュアル・ガイド
ディレクトリー構造
ルートディレクトリー └ templates - └ utility.html--------:今回の対象ファイル
utility.html テンプレートファイルの中身
以下が2021年8月18日時点の /templates/utility.html ファイルの記載内容です。
<aside> <!--{if $page.id|mb_strpos:'/' === FALSE}--> {assign var="id" value=$page.id} {assign var="title" value=$page.title} <!--{else}--> {assign var="pos" value=$page.id|mb_strpos:'/'} {assign var="id" value=$page.id|substr:0:$pos} <!--{foreach from=$freo.refer.pages|smarty:nodefaults item='refer_page'}--> <!--{if $refer_page.id === $id}--> {assign var="title" value=$refer_page.title} <!--{php}break;{/php}--> <!--{/if}--> <!--{/foreach}--> <!--{/if}--> <div class="tit"><a href="{$freo.core.http_url}{$id}">{$title}</a></div> {assign var="pid" value=$id} {include file='plugins/page_all/aside.html'} <!--{if $freo.core.plugin == search}--> <form action="/search" method="get" id="search-jump"> <div class="tit">検索条件を変更する</div> <fieldset> <dl> <dd><input type="text" name="word" value="{$smarty.get.word}" placeholder="キーワード検索"></dd> </dl> <p class="search-btn"><input type="submit" value="検索する"></p> <div class="hidden-box"> <input type="checkbox" id="search-detail"> <label for="search-detail" class="search-label">詳細条件</label> <div class="hidden-show"> <!--{if $freo.refer.options|smarty:nodefaults}--> <dl> <!--{if !$smarty.get.page_name}--> <dt>検索対象</dt> <dd> <select name="target"> <option value="">すべて</option> <option value="entry"{if $smarty.get.target=='entry'} selected="selected"{/if}>エントリー</option> <option value="page"{if $smarty.get.target=='page'} selected="selected"{/if}>ページ </option> </select> </dd> <!--{/if}--> <!--{foreach from=$freo.refer.options|smarty:nodefaults item='option'}--> <!--{if $option.type == 'text' and $option.validate == 'numeric'}--> <dt>{$option.name}</dt> <dd> <input type="text" name="option[{$option.id}][from]" value="{$smarty.get.option[$option.id].from}">以上、<input type="text" name="option[{$option.id}][to]" value="{$smarty.get.option[$option.id].to}">以下 </dd> <!--{elseif $option.type == 'text' or $option.type == 'textarea'}--> <dt>{$option.name}</dt> <dd><input type="text" name="option[{$option.id}]" value="{$smarty.get.option[$option.id]}"></dd> <!--{elseif $option.type == 'select' or $option.type == 'radio' or $option.type == 'checkbox'}--> <dt>{$option.name}</dt> <dd> <ul> <!--{assign var='option_texts' value=$option.text|explode:"\n"}--> <!--{foreach from=$option_texts|smarty:nodefaults item='option_text' name='loop'}--> <li> <label class="checkbox" for="label_option_{$option.id}_{$smarty.foreach.loop.index}"> <input type="checkbox" name="option[{$option.id}][{$option_text}]" id="label_option_{$option.id}_{$smarty.foreach.loop.index}" value="{$option_text}"{if $smarty.get.option[$option.id][$option_text]==$option_text} checked="checked"{/if}> <span>{$option_text}</span> </label> </li> <!--{/foreach}--> </ul> </dd> <!--{/if}--> <!--{/foreach}--> </dl> <!--{/if}--> <p class="search-btn"><input type="submit" value="検索する"></p> </div><!--/.hidden-show--> </fieldset> </form> </div> <!--{/if}--> </aside>
解説
内部改装へのリンクと条件文
2行目あたり~21行目あたりの記述は、各内部ページを表示するための条件分岐とプラグインを読み込んでいます。例として、以下の記述を解説します。また、この記述の動作を実現するには、common.jsのファイルも初期の状態から変更が必要です(テンプレートファイルは変更済み)
<!--{if $page.id|mb_strpos:'/' === FALSE}--> {assign var="id" value=$page.id} {assign var="title" value=$page.title} <!--{else}--> {assign var="pos" value=$page.id|mb_strpos:'/'} {assign var="id" value=$page.id|substr:0:$pos} <!--{foreach from=$freo.refer.pages|smarty:nodefaults item='refer_page'}--> <!--{if $refer_page.id === $id}--> {assign var="title" value=$refer_page.title} <!--{php}break;{/php}--> <!--{/if}--> <!--{/foreach}--> <!--{/if}--> <div class="tit"><a href="{$freo.core.http_url}{$id}">{$title}</a></div> {assign var="pid" value=$id} {include file='plugins/page_all/aside.html'}
この記述は、PC画面で言うとサイドバー(内部ページのナビゲーション)を表示させ、SP画面で言うと、ページ下部に表示される内部ページのナビゲーションさせるものです。ページ間移動をしやすくするための記述がしてあります。
再検索フォーム
サイト内検索機能のタグを表示させるものです。ヘッダーにて検索機能を使う場合、サイドバーで再検索ができるように設置してあります。
<!--{if $freo.core.plugin == search}--> <form action="/search" method="get" id="search-jump"> <div class="tit">検索条件を変更する</div> <fieldset> <dl> <dd><input type="text" name="word" value="{$smarty.get.word}" placeholder="キーワード検索"></dd> </dl> <p class="search-btn"><input type="submit" value="検索する"></p> <div class="hidden-box"> <input type="checkbox" id="search-detail"> <label for="search-detail" class="search-label">詳細条件</label> <div class="hidden-show"> <!--{if $freo.refer.options|smarty:nodefaults}--> <dl> <!--{if !$smarty.get.page_name}--> <dt>検索対象</dt> <dd> <select name="target"> <option value="">すべて</option> <option value="entry"{if $smarty.get.target=='entry'} selected="selected"{/if}>エントリー</option> <option value="page"{if $smarty.get.target=='page'} selected="selected"{/if}>ページ </option> </select> </dd> <!--{/if}--> <!--{foreach from=$freo.refer.options|smarty:nodefaults item='option'}--> <!--{if $option.type == 'text' and $option.validate == 'numeric'}--> <dt>{$option.name}</dt> <dd> <input type="text" name="option[{$option.id}][from]" value="{$smarty.get.option[$option.id].from}">以上、<input type="text" name="option[{$option.id}][to]" value="{$smarty.get.option[$option.id].to}">以下 </dd> <!--{elseif $option.type == 'text' or $option.type == 'textarea'}--> <dt>{$option.name}</dt> <dd><input type="text" name="option[{$option.id}]" value="{$smarty.get.option[$option.id]}"></dd> <!--{elseif $option.type == 'select' or $option.type == 'radio' or $option.type == 'checkbox'}--> <dt>{$option.name}</dt> <dd> <ul> <!--{assign var='option_texts' value=$option.text|explode:"\n"}--> <!--{foreach from=$option_texts|smarty:nodefaults item='option_text' name='loop'}--> <li> <label class="checkbox" for="label_option_{$option.id}_{$smarty.foreach.loop.index}"> <input type="checkbox" name="option[{$option.id}][{$option_text}]" id="label_option_{$option.id}_{$smarty.foreach.loop.index}" value="{$option_text}"{if $smarty.get.option[$option.id][$option_text]==$option_text} checked="checked"{/if}> <span>{$option_text}</span> </label> </li> <!--{/foreach}--> </ul> </dd> <!--{/if}--> <!--{/foreach}--> </dl> <!--{/if}--> <p class="search-btn"><input type="submit" value="検索する"></p> </div><!--/.hidden-show--> </fieldset> </form> </div> <!--{/if}-->