【freo】【freoTips】【freo変数一覧】バナー付きリンクプラグインの情報を一覧で表示する方法
- 2016/03/16 16:29
- バナー付きリンクプラグイン
- 2
このサイトで配布しているfreo機能拡張プラグインバナー付きリンクプラグインの情報を一覧で表示する方法は以下のとおりです。
リンクを一覧表示する
リンク一覧表示画面(freo/index.php/link画面)のテンプレートは、[freo/templates/plugins/link/default.html]です。
リンクを一覧表示しているのは、[freo/templates/plugins/link/default.html]の55~61行目
<!--{foreach from=$plugin_links|smarty:nodefaults item='plugin_link'}--> <tr> <td><a href="{$freo.core.http_file}/link/view/{$plugin_link.id}">{$plugin_link.title}</a></td> <td> <!--{if $plugin_link.url}--> <a href="{$plugin_link.url}" target="_blank"> <!--{if $plugin_link_files[$plugin_link.id].file}--> <img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/link_files/{$plugin_link.id}/{$plugin_link_files[$plugin_link.id].file}" alt="{$plugin_link.title}" /> <!--{elseif $plugin_link.imageurl}--> <img src="{$plugin_link.imageurl}" alt="{$plugin_link.title}" /> <!--{else}--> {$plugin_link.title} <!--{/if}--> </a> <!--{else}--> {$plugin_link.title} <!--{/if}--> </td> <td>{$plugin_link.text}</td> <td><a href="{$freo.core.http_file}/link?category_id={$plugin_link.category_id}">{$plugin_link_categories[$plugin_link.category_id].name}</a></td> <td> <!--{foreach from=$plugin_link_tags[$plugin_link.id]|smarty:nodefaults item='plugin_link_tag' name='loop'}--> <a href="{$freo.core.http_file}/link?tag={$plugin_link_tag|smarty:nodefaults|escape:'url'}">{$plugin_link_tag}</a><!--{if !$smarty.foreach.loop.last}-->, <!--{/if}--> <!--{/foreach}--> </td> </tr> <!--{/foreach}-->
の部分です。
上記を解説すると
<!--{$plugin_links配列を'plugin_link'として繰り返して表示するここから}--> <tr> <td><a href="{freo設置URL}/link/view/{$リンクID}">{$リンクタイトル}</a></td> <td> <!--{もしリンクURLがあったらここから}--> <a href="{リンクURL}" target="_blank"> <!--{もしリンクファイル(バナー)があったらここから}--> <img src="{freo設置URL}{ファイル・ディレクトリ}plugins/link_files/{リンクID}/{リンクファイル(バナー)名}" alt="{リンクタイトル}" /> <!--{もしバナーURLがあったら}--> <img src="{バナーURL}" alt="{リンクタイトル}" /> <!--{そうじゃなければ}--> {リンクタイトル} <!--{もしリンクファイル(バナー)があったらここまで}--> </a> <!--{そうじゃなければ}--> {リンクタイトル} <!--{もしリンクURLがあったらここまで}--> </td> <td>{リンク本文}</td> <td><a href="{freo設置URL}/link?category_id={カテゴリーID}">{カテゴリー名}</a></td> <td> <!--{$plugin_link_tags[$plugin_link.id]配列を'plugin_link_tag'として繰り返して表示するここから}--> <a href="{freo設置URL}/link?tag={リンクタグ}">{リンクタグ}</a><!--{もし最後のループだったらここから}-->, <!--{もし最後のループだったらここまで}--> <!--{$plugin_link_tags[$plugin_link.id]配列を'plugin_link_tag'として繰り返して表示するここまで}--> </td> </tr> <!--{$plugin_links配列を'plugin_link'として繰り返して表示するここまで}-->
以上のように、リンク一覧にリンクの情報をある程度掲載して一件ずつ繰り返して表示しています。
リンクの情報を取得する方法
$plugin_linksテーブルの情報をforeachする。
リンクの情報は、「$plugin_links」というテーブルに格納されています。
「$plugin_links」テーブルの情報を表示したいときは、「foreach」しなければなりません。
とにかく、リンクの情報を一覧表示したいなら、下記の通りにしなければならないってことです。
<!--{foreach from=$plugin_links|smarty:nodefaults item='plugin_link'}--> リンクの情報を表示したい部分 <!--{/foreach}-->
上記のように、リンクの情報の内一覧表示したい内容は、<!--{foreach from=$plugin_links|smarty:nodefaults ~中略}-->と<!--{/foreach}-->で挟みます。
foreachの中に入れないで変数だけ書いても、リンクの情報は表示されませんので注意して下さい。
リンクの基本的な情報を表示するための変数
変数 | 値 |
---|---|
{$plugin_link.id} | リンクID |
{$plugin_link.created} | リンクの投稿日時 |
{$plugin_link.modified} | リンクの更新日時 |
{$plugin_link.title} | リンクのタイトル |
{$plugin_link.url} | リンク先URL |
{$plugin_link.imageurl} | バナーURL |
{$plugin_link.tag} | リンクにタグがあるかどうか |
{$plugin_link.text} | リンク本文 |
{$plugin_link.category_id} | リンクのカテゴリーID |
{$plugin_link.option01} | リンクのオプションの入力値 (「option01」部分を「option10」まで変更するとオプション10までの情報を表示できます。) |
リンクの添付ファイルの情報を表示する
リンクファイル(バナー)についての情報は、「$plugin_link_files」テーブルに格納されています。
変数 | 値 |
---|---|
{$plugin_link_files[$plugin_link.id].file} | リンクファイルがあるかどうか (配列なので「smarty:nodefaults」修飾子をつけてください。) |
{$plugin_link_files[$plugin_link.id].file.name} | リンクファイルのファイル名 |
{$plugin_link_files[$plugin_link.id].file.height} | リンクファイルの高さ |
{$plugin_link_files[$plugin_link.id].file.width} | リンクファイルの幅 |
{$plugin_link_files[$plugin_link.id].file.size} | リンクファイルのサイズ |
{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/link_files/{$plugin_link.id}/{$plugin_link_files[$plugin_link.id].file.name} | リンクファイルのURL |
{$plugin_link_files[$plugin_link.id].file.thumbnail} | リンクファイルのサムネイルがあるかどうか (配列なので「smarty:nodefaults」修飾子をつけてください。) |
{$plugin_link_files[$plugin_link.id].file.thumbnail.name} | リンクファイルのサムネイルのファイル名 |
{$plugin_link_files[$plugin_link.id].file.thumbnail.height} | リンクファイルのサムネイルの高さ |
{$plugin_link_files[$plugin_link.id].file.thumbnail.width} | リンクファイルのサムネイルの幅 |
{$plugin_link_files[$plugin_link.id].file.thumbnail.size} | リンクファイルのサムネイルのサイズ |
{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/link_thumbnails/{$plugin_link.id}/{$plugin_link_files[$plugin_link.id].file.thumbnail.name} | リンクファイルのサムネイルのURL |
{$plugin_link_files[$plugin_link.id].file}の「file」の部分を「file01」~「file10」に変えると、添付ファイルの情報を表示することができます。
リンクのオプション設定の情報を表示する
リンクのオプション設定についての情報は、「$freo.config.plugin.link」テーブルに格納されています。
変数 | 値 |
---|---|
{$freo.config.plugin.link.option01_name} | リンクのオプション01のオプション名 |
{$freo.config.plugin.link.option01_type} | リンクのオプション01のタイプ |
{$plugin_link.option01} | リンクのオプション01の入力値 |
「option01」部分を「option10」まで変更すると、それぞれのオプションの情報を表示させることができます。
リンクのカテゴリーの情報を表示する
リンクのカテゴリーについての情報は、「$plugin_link_categories」テーブルに格納されています。
どのカテゴリーの情報を引き出すのかを指定するため、[$plugin_link.category_id]で、そのリンクのカテゴリーIDを指定してあげます。
変数等 | 値 |
---|---|
{$plugin_link_categories[$plugin_link.category_id].name} | {$plugin_link.id}のリンクのカテゴリーの名前 |
リンクのタグを表示する
リンクのタグは「$plugin_link_tags[$plugin_link.id]」という配列に格納されています。
リンクのタグの情報を表示したいときは、「foreach」しなければなりません。
リンクの情報を一覧表示する際は、「$plugin_links」のforeachの中に表示しなければならないので、リンクのタグの情報は、$plugin_linksの中でさらにforeachして表示します。
<!--{foreach from=$plugin_links|smarty:nodefaults item='plugin_link'}--> <!--{foreach from=$plugin_link_tags[$plugin_link.id]|smarty:nodefaults item='plugin_link_tag' name='loop'}--><a href="{$freo.core.http_file}/link?tag={$plugin_link_tag|smarty:nodefaults|escape:'url'}">{$plugin_link_tag}</a><!--{if !$smarty.foreach.loop.last}-->, <!--{/if}--><!--{/foreach}--> <!--{/foreach}-->