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

> Entry >freo>freoTips>freo変数一覧> ニュースプラグインの情報を一覧で表示する方法

【freo】【freoTips】【freo変数一覧】ニュースプラグインの情報を一覧で表示する方法

このサイトで配布しているfreo機能拡張プラグインニュースプラグインの情報を一覧で表示する方法は以下のとおりです。

ニュースを一覧表示する

ニュース一覧表示画面(freo/index.php/news画面)のテンプレートは、[freo/templates/plugins/news/default.html]です。
ニュースを一覧表示しているのは、[freo/templates/plugins/news/default.html]の51~66行目

<!--{foreach from=$plugin_newses|smarty:nodefaults item='plugin_news'}-->
<tr>
    <td><a href="{$freo.core.http_file}/news/view/{$plugin_news.id}">{$plugin_news.datetime|date_format:'%Y/%m/%d'}</a></td>
    <td><a href="{$freo.core.http_file}/news?category_id={$plugin_news.category_id}">{$plugin_news_categories[$plugin_news.category_id].name}</a></td>
    <td><!--{if $plugin_news.url}--><a href="{$plugin_news.url}">{$plugin_news.title}</a><!--{else}-->{$plugin_news.title}<!--{/if}--></td>
    <td>{$plugin_news.text|smarty:nodefaults|strip_tags|mb_truncate:30:'...'|escape}</td>
    <td>
        <!--{if $plugin_news_files[$plugin_news.id].file}--><a href="{$freo.core.http_file}/news/view/{$plugin_news.id}"><!--{if $plugin_news_files[$plugin_news.id].file.thumbnail}--><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/news_thumbnails/{$plugin_news.id}/{$plugin_news_files[$plugin_news.id].file.thumbnail.name}" alt="{$plugin_news.title}" /><!--{else}--><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/news_files/{$plugin_news.id}/{$plugin_news_files[$plugin_news.id].file.name}" alt="{$plugin_news.title}" /><!--{/if}--></a><!--{/if}-->
    </td>
    <td>
        <!--{foreach from=$plugin_news_tags[$plugin_news.id]|smarty:nodefaults item='plugin_news_tag' name='loop'}-->
            <a href="{$freo.core.http_file}/news?tag={$plugin_news_tag|smarty:nodefaults|escape:'url'}">{$plugin_news_tag}</a><!--{if !$smarty.foreach.loop.last}-->,&nbsp;<!--{/if}-->
        <!--{/foreach}-->
    </td>
</tr>
<!--{/foreach}-->

の部分です。

上記を解説すると

<!--{$plugin_newses配列の内容を'plugin_news'として繰り返して表示するここから}-->
<tr>
    <td><a href="{$freo.core.http_file}/news/view/{$plugin_news.id}">{$ニュースの日付|日時を成形する:'%Y/%m/%d'のように}</a></td>
    <td><a href="{$freo.core.http_file}/news?category_id={$ニュースのカテゴリーID}">{$ニュースカテゴリー配列の[$ニュースのカテゴリーID].の名前}</a></td>
    <td><!--{もしニュースURLがあったらここから}--><a href="{$ニュースURL}">{$ニュースタイトル}</a><!--{そうじゃなければ}-->{$ニュースのタイトル}<!--{もしニュースURLがあったらここまで}--></td>
    <td>{$ニュース本文|タグを抜く|30文字でカットする:'...'で繋ぐ}</td>
    <td>
        <!--{もしニュースにファイルがあったらここから}--><a href="{$freo.core.http_file}/news/view/{$ニュースID}"><!--{もしニュースファイルにサムネイルがあったらここから}--><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/news_thumbnails/{$ニュースID}/{$ニュースファイルのサムネイルのファイル名}" alt="{$ニュースタイトル}" /><!--{そうじゃなければ}--><img src="{$freo設置URL}{$smarty.const.FREO_FILE_DIR}plugins/news_files/{$ニュースID}/{$ニュースファイルのファイル名}" alt="{$ニュースタイトル}" /><!--{もしニュースファイルにサムネイルがあったらここまで}--></a><!--{もしニュースにファイルがあったらここまで}-->
    </td>
    <td>
        <!--{[$ニュースID]のタグ配列を'plugin_news_tag'として繰り返して表示するここから}-->
            <a href="{$freo.core.http_file}/news?tag={$ニュースタグ}">{$ニュースタグ}</a><!--{もし繰り返しの最後じゃなければここから}-->,&nbsp;<!--{もし繰り返しの最後じゃなければここまで}-->
        <!--{[$ニュースID]のタグ配列を'plugin_news_tag'として繰り返して表示するここまで}-->
    </td>
</tr>
<!--{$plugin_newses配列の内容を'plugin_news'として繰り返して表示するここまで}-->

以上のように、ニュース一覧にニュースの情報をある程度掲載して一件ずつ繰り返して表示しています。

ニュースの情報を取得する方法

$plugin_newsesテーブルの情報をforeachする。

ニュースの情報は、「$plugin_newses」というテーブルに格納されています。
「$plugin_newses」テーブルの情報を表示したいときは、foreachしなければなりません。

とにかく、ニュースのの情報を一覧表示したいなら、下記の通りにしなければならないってことです。

<!--{foreach from=$plugin_newses|smarty:nodefaults item='plugin_news'}-->

ニュースの情報を表示したい部分

<!--{/foreach}-->

上記のように、ニュースの情報の内一覧表示したい内容は、<!--{foreach from=$plugin_newses|smarty:nodefaults ~中略}-->と<!--{/foreach}-->で挟みます。
foreachの中に入れないで変数だけ書いても、ニュースの情報は表示されませんので注意して下さい。

ニュースの基本的な情報を表示するための変数
変数
{$plugin_news.id} ニュースID
{$plugin_news.created} ニュースの投稿日時
{$plugin_news.modified} ニュースの更新日時
{$plugin_news.datetime} ニュースの日時
{$plugin_news.title} ニュースのタイトル
{$plugin_news.tag} ニュースにタグがあるかどうか
{$plugin_news.text} ニュース本文
{$plugin_news.category_id} ニュースのカテゴリーID
{$plugin_news.option01} ニュースのオプションの入力値
(「option01」部分を「option10」まで変更するとオプション10までの情報を表示できます。)
ニュースの添付ファイルの情報を表示する

添付ファイルについての情報は、「$plugin_news_files」テーブルに格納されています。

変数
{$plugin_news_files[$plugin_news.id].file} ニュースファイルがあるかどうか
{$plugin_news_files[$plugin_news.id].file.name} ニュースファイルのファイル名
{$plugin_news_files[$plugin_news.id].file.height} ニュースファイルの高さ
{$plugin_news_files[$plugin_news.id].file.width} ニュースファイルの幅
{$plugin_news_files[$plugin_news.id].file.size} ニュースファイルのサイズ
{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/news_files/{$plugin_news.id}/{$plugin_news_files[$plugin_news.id].file.name} ニュースファイルのURL
{$plugin_news_files[$plugin_news.id].file.thumbnail} ニュースファイルのサムネイルがあるかどうか
{$plugin_news_files[$plugin_news.id].file.thumbnail.name} ニュースファイルのサムネイルのファイル名
{$plugin_news_files[$plugin_news.id].file.thumbnail.height} ニュースファイルのサムネイルの高さ
{$plugin_news_files[$plugin_news.id].file.thumbnail.width} ニュースファイルのサムネイルの幅
{$plugin_news_files[$plugin_news.id].file.thumbnail.size} ニュースファイルのサムネイルのサイズ
{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/news_thumbnails/{$plugin_news.id}/{$plugin_news_files[$plugin_news.id].file.thumbnail.name} ニュースファイルのサムネイルのURL

{$plugin_news_files[$plugin_news.id].file}の「file」の部分を「file01」~「file10」に変えると、添付ファイルの情報を表示することができます。

ニュースのオプション設定の情報を表示する

ニュースのオプションについての情報は、「$freo.config.plugin.newsテーブルに格納されています。

変数
{$freo.config.plugin.news.option01_name} ニュースのオプション01のオプション名
{$freo.config.plugin.news.option01_type} ニュースのオプション01のタイプ
{$plugin_news.option01} ニュースのオプション01の入力値

option01」部分を「option10」まで変更すると、それぞれのオプションの情報を表示させることができます。

ニュースのカテゴリーの情報を表示する

ニュースのカテゴリーについての情報は、「$plugin_news_categoriesテーブルに格納されています。
どのカテゴリーの情報を引き出すのかを指定するため、[$plugin_news.category_id]で、そのニュースのカテゴリーIDを指定してあげます。

変数等
{$plugin_news_categories[$plugin_news.category_id].name} {$plugin_news.id}のニュースのカテゴリーの名前
ニュースのタグを表示する

ニュースのタグは「$plugin_news_tags[$plugin_news.id]」という配列に格納されています。
ニュースのタグの情報を表示したいときは、foreachしなければなりません。
ニュースの情報を一覧表示する際は、「$plugin_newses」のforeachの中に表示しなければならないので、ニュースのタグの情報は、$plugin_newsesの中でさらにforeachして表示します。

<!--{foreach from=$plugin_newses|smarty:nodefaults item='plugin_news'}-->
     <!--{foreach from=$plugin_news_tags[$plugin_news.id]|smarty:nodefaults item='plugin_news_tag' name='loop'}--><a href="{$freo.core.http_file}/news?tag={$plugin_news_tag|smarty:nodefaults|escape:'url'}">{$plugin_news_tag}</a><!--{if !$smarty.foreach.loop.last}-->,&nbsp;<!--{/if}--><!--{/foreach}-->
<!--{/foreach}-->

ページ移動

関連記事

ユーティリティ

Twitter

ページ上部へ