• 虹色ミツバチ
  • freoカスタマイズメモ、テンプレート・プラグイン配布/officeTIPS
検索プラグイン
虹色ミツバチ

> Entry >freo>freoTips>freo変数一覧> ページメニュー表示プラグインで第一階層のページの情報を取得する方法

【freo】【freoTips】【freo変数一覧】ページメニュー表示プラグインで第一階層のページの情報を取得する方法

freoにはページメニュー表示プラグインがデフォルトで備わっています。
ページメニュー表示プラグインは、freoのページ機能を使って一番上の階層に登録されたページを表示するプラグインです。

ページメニュー表示プラグインが利用されている箇所は、デフォルト状態(なにも加工していない状態)のテンプレートでいうと、
[freo/templates/utility.html]の61~72行目

        <div class="utility">
            <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>

の部分です。

上記を解説すると

        <div class="utility">
            <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}-->,&nbsp;<!--{/if}--><!--{/foreach}-->
<!--{/foreach}-->

 

ページ移動

関連記事

ページ上部へ