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}-->