【freo】【freoTips】【freo変数一覧】ページメニュー表示プラグインで第一階層のページの情報を取得する方法
- 2013/05/07 19:46
- ページメニュー表示プラグイン
- 63
freoにはページメニュー表示プラグインがデフォルトで備わっています。
ページメニュー表示プラグインは、freoのページ機能を使って一番上の階層に登録されたページを表示するプラグインです。
ページメニュー表示プラグインが利用されている箇所は、デフォルト状態(なにも加工していない状態)のテンプレートでいうと、
[freo/templates/utility.html]の61~72行目
<h3>ページ</h3>
<div class="content">
<ul>
<!--{foreach from=$plugin_page_menus|smarty:nodefaults item='plugin_page_menu'}-->
<li><a href="{$freo.core.http_file}/page/{$plugin_page_menu.id}">{$plugin_page_menu.title}</a></li>
<!--{foreachelse}-->
<li>ページが登録されていません。</li>
<!--{/foreach}-->
</ul>
</div>
</div>
の部分です。
上記を解説すると
<h3>ページ</h3>
<div class="content">
<ul>
<!--{第一階層のページを$plugin_page_menuとして繰り返して表示するここから}-->
<li><a href="{$freo.core.http_file}/page/{第一階層のページID}">{第一階層のページタイトル}</a></li>
<!--{第一階層のページがなければ}-->
<li>ページが登録されていません。</li>
<!--{第一階層のページを$plugin_page_menuとして繰り返して表示するここまで}-->
</ul>
</div>
</div>
以上のように、第一階層のページのタイトルを第一階層のページのIDへリンクを貼って表示しています。
ページメニュー表示プラグインで表示できるのは、ページIDとタイトルだけではありません。
第一階層のページの情報を取得する方法は下記の通りです。
第一階層のページの情報を取得する方法
$plugin_page_menuテーブルの情報をforeachする。
第一階層のページの情報は、「$plugin_page_menu」というテーブルに格納されています。
「$plugin_page_menu」テーブルの情報を表示したいときは、「foreach」しなければなりません。
とにかく、第一階層のページの情報を表示したいなら、下記の通りにしなければならないってことです。
<!--{foreach from=$plugin_page_menus|smarty:nodefaults item='plugin_page_menu'}--> 第一階層のページの情報を表示したい部分 <!--{/foreach}-->
上記のように、第一階層のページの情報を表示したい箇所は、<!--{foreach from=$plugin_page_menus|smarty:nodefaults ~中略}-->と<!--{/foreach}-->で挟みます。
foreachの中に入れないで変数だけ書いても、第一階層のページの情報は表示されませんので注意して下さい。
第一階層のページの基本的な情報を表示するための変数
変数 | 値 |
---|---|
{$plugin_page_menu.id} | 第一階層のページのページID |
{$plugin_page_menu.pid} | 第一階層のページの親ページID |
{$plugin_page_menu.user_id} | 第一階層のページの投稿ユーザーID |
{$plugin_page_menu.created} | 第一階層のページの登録日時 |
{$plugin_page_menu.modified} | 第一階層のページの更新日時 |
{$plugin_page_menu.approved} | 第一階層のページの承認がされているかどうか |
{$plugin_page_menu.restriction} | 第一階層のページの閲覧制限状態 |
{$plugin_page_menu.password} | 第一階層のページのパスワード |
{$plugin_page_menu.status} | 第一階層のページの公開状態 |
{$plugin_page_menu.display} | 第一階層のページの表示状態 |
{$plugin_page_menu.comment} | 第一階層のページがコメントを受け付けているかどうか |
{$plugin_page_menu.trackback} | 第一階層のページがトラックバックを受け付けているかどうか |
{$plugin_page_menu.sort} | 第一階層のページの並び順 |
{$plugin_page_menu.title} | 第一階層のページのタイトル |
{$plugin_page_menu.tag} | 第一階層のページのタグ |
{$plugin_page_menu.datetime} | 第一階層のページの日時 |
{$plugin_page_menu.close} | 第一階層のページの公開終了日時 |
{$plugin_page_menu.file} | 第一階層のページのファイル名 |
{$plugin_page_menu.image} | 第一階層のページのイメージ名 |
{$plugin_page_menu.memo} | 第一階層のページのファイルの説明 |
{$plugin_page_menu.text} | 第一階層のページの本文 |
第一階層のページの添付ファイルの情報を表示する
添付ファイルについての情報は、「$plugin_page_menu_file」テーブルに格納されています。
変数 | 値 |
---|---|
{$plugin_page_menu_files[$plugin_page_menu.id].height} | 第一階層のページの添付ファイルの高さ |
{$plugin_page_menu_files[$plugin_page_menu.id].width} | 第一階層のページの添付ファイルの幅 |
{$plugin_page_menu_files[$plugin_page_menu.id].size} | 第一階層のページの添付ファイルのサイズ |
「$plugin_page_menu_file」テーブルに格納されている情報以外で第一階層のページの添付ファイルに関する情報は以下のとおりです。
変数等 | 値 |
---|---|
{$plugin_page_menu.file} | 第一階層のページの添付ファイルのファイル名 |
{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}page_files/{$plugin_page_menu.id}/{$plugin_page_menu.file} | 第一階層のページの添付ファイルのURL |
第一階層のページのサムネイルの情報を表示する
サムネイルについての情報は、「$plugin_page_menu_thumbnails」テーブルに格納されています。
変数 | 値 |
---|---|
{$plugin_page_menu_thumbnails[$plugin_page_menu.id].height} | 第一階層のページのサムネイルの高さ |
{$plugin_page_menu_thumbnails[$plugin_page_menu.id].width} | 第一階層のページのサムネイルの幅 |
{$plugin_page_menu_thumbnails[$plugin_page_menu.id].size} | 第一階層のページのサムネイルのサイズ |
「$plugin_page_menu_thumbnails」テーブルに格納されている情報以外で第一階層のページのサムネイルに関する情報は以下のとおりです。
変数等 | 値 |
---|---|
{$plugin_page_menu.file} | 第一階層のページのサムネイルのファイル名 |
{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}page_thumbnails/{$plugin_page_menu.id}/{$plugin_page_menu.file} | 第一階層のページのサムネイルのURL |
第一階層のページのイメージの情報を表示する
イメージについての情報は、「$plugin_page_menu_images」テーブルに格納されています。
変数 | 値 |
---|---|
{$plugin_page_menu_images[$plugin_page_menu.id].height} | 第一階層のページのイメージの高さ |
{$plugin_page_menu_images[$plugin_page_menu.id].width} | 第一階層のページのイメージの幅 |
{$plugin_page_menu_images[$plugin_page_menu.id].size} | 第一階層のページのイメージのサイズ |
「$plugin_page_menu_images」テーブルに格納されている情報以外で第一階層のページのイメージに関する情報は以下のとおりです。
変数等 | 値 |
---|---|
{$plugin_page_menu.image} | 第一階層のページのイメージのファイル名 |
{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}page_images/{$plugin_page_menu.id}/{$plugin_page_menu.image} | 第一階層のページのイメージのURL |
第一階層のページのタグを表示する
第一階層のページのタグは「$plugin_page_menu_tags[$plugin_page_menu.id]」という配列に格納されています。
第一階層のページのタグの情報を表示したいときは、「foreach」しなければなりません。
第一階層のページの情報は「$plugin_page_menus」のforeachの中に表示しなければならないので、第一階層のページのタグの情報は、$plugin_page_menusの中でさらにforeachして表示します。
<!--{foreach from=$plugin_page_menus|smarty:nodefaults item='plugin_page_menu'}--> <!--{foreach from=$plugin_page_menu_tags[$plugin_page_menu.id]|smarty:nodefaults item='page_tag' name='loop'}--><a href="{$freo.core.http_file}/page?tag={$page_tag|smarty:nodefaults|escape:'url'}">{$page_tag}</a><!--{if !$smarty.foreach.loop.last}-->, <!--{/if}--><!--{/foreach}--> <!--{/foreach}-->