エントリー限定抽出プラグインは、特定のカテゴリーのエントリーを指定件数分表示するプラグインです。
デフォルト画面・エントリー画面・カテゴリー画面・エントリー個別(VIEW)表示画面で利用できます。
上記画面で限定抽出されたエントリーを一覧で表示する方法及び変数は以下のとおりです。
限定抽出されたエントリーを一覧表示する
デフォルト画面(freo/index.php画面)のテンプレートは、[freo/templates/internals/default/default.html]です。
エントリー画面・カテゴリー画面には、独自のテンプレートがない場合(freoをダウンロードして解凍しただけのデフォルトの状態の場合)、[freo/templates/internals/default/default.html]が利用されます。
エントリー画面・カテゴリー画面用に独自のテンプレートを用意した場合、
エントリー画面(freo/index.php/entry画面)のテンプレートは、[freo/templates/internals/entry/default.html]です。
カテゴリー画面(freo/index.php/category/カテゴリーID画面)のテンプレートは、[freo/templates/internals/category/default.html]です。
限定抽出されたエントリーを一覧表示するには、プラグイン解説ページにあるように、
<div class="utility">
<h3>特定カテゴリーエントリー一覧</h3>
<div class="content">
<ul>
<!--{foreach from=$plugin_entry_pickups|smarty:nodefaults item='plugin_entry_pickup'}-->
<li><a href="{$freo.core.http_file}/view/{if $plugin_entry_pickup.code}{$plugin_entry_pickup.code}{else}{$plugin_entry_pickup.id}{/if}">{$plugin_entry_pickup.title}</a></li>
<!--{foreachelse}-->
<li>まだ記事はありません。</li>
<!--{/foreach}-->
</ul>
</div>
</div>
のようにしてください。
これは、
<div class="utility">
<h3>特定カテゴリーエントリー一覧</h3>
<div class="content">
<ul>
<!--{$plugin_entry_pickups配列を'plugin_entry_pickup'として繰り返して表示するここから}-->
<li><a href="{$freo設置URL}/view/{もしエントリーコードがあればここから}{$エントリーコード}{そうじゃなければ}{$エントリーID}{もしエントリーコードがあればここまで}">{$エントリータイトル}</a></li>
<!--{$plugin_entry_pickups配列が空であれば}-->
<li>まだ記事はありません。</li>
<!--{$plugin_entry_pickups配列を'plugin_entry_pickup'として繰り返して表示するここまで}-->
</ul>
</div>
</div>
という意味です。
上記のように、限定抽出されたエントリー一覧として、エントリーのタイトルに各エントリーへのリンクを貼って表示しています。
限定抽出されたエントリーの情報を取得する方法
$plugin_entry_pickupsテーブルの情報をforeachする。
限定抽出されたエントリーの情報は、「$plugin_entry_pickups」という配列に格納されています。
「$plugin_entry_pickups」配列の情報を表示したいときは、「foreach」しなければなりません。
とにかく、限定抽出されたエントリーの情報を一覧表示したいなら、下記の通りにしなければならないってことです。
<!--{foreach from=$plugin_entry_pickups|smarty:nodefaults item='plugin_entry_pickup'}-->
限定抽出されたエントリーの情報を表示したい部分
<!--{/foreach}-->
上記のように、限定抽出されたエントリーの情報の内一覧表示したい内容は、<!--{foreach from=$plugin_entry_pickups|smarty:nodefaults ~中略}-->と<!--{/foreach}-->で挟みます。
foreachの中に入れないで変数だけ書いても、エントリーの情報は表示されませんので注意して下さい。
エントリーの基本的な情報を表示するための変数
変数 |
値 |
{$plugin_entry_pickup.id} |
エントリーID |
{$plugin_entry_pickup.user_id} |
エントリーの投稿者ユーザーID |
{$plugin_entry_pickup.created} |
エントリーの投稿日時 |
{$plugin_entry_pickup.modified} |
エントリーの更新日時 |
{$plugin_entry_pickup.approved} |
エントリーの承認状況(yesまたはno) |
{$plugin_entry_pickup.restriction} |
エントリーの閲覧制限(userまたはgroupまたはpasswordまたは無し) |
{$plugin_entry_pickup.password} |
エントリーのパスワード |
{$plugin_entry_pickup.title} |
エントリーのタイトル |
{$plugin_entry_pickup.status} |
エントリーの状態(publishまたはprivateまたはfuture) |
{$plugin_entry_pickup.display} |
エントリーの表示(pub;ishまたはprivate) |
{$plugin_entry_pickup.comment} |
エントリーのコメントの受付(openまたはclosedまたはviewまたはuser) |
{$plugin_entry_pickup.trackback} |
エントリーのトラックバックの受付(openまたはclosedまたはview) |
{$plugin_entry_pickup.title} |
エントリーのタイトル |
{$plugin_entry_pickup.tag} |
エントリーのタグ |
{$plugin_entry_pickup.datetime} |
エントリーの日付 |
{$plugin_entry_pickup.close} |
エントリーの公開終了日時 |
{$plugin_entry_pickup.file} |
エントリーファイルのファイル名 |
{$plugin_entry_pickup.image} |
エントリーイメージのファイル名 |
{$plugin_entry_pickup.memo} |
エントリーファイルの説明 |
{$plugin_entry_pickup.text} |
エントリー本文 |
限定抽出されたエントリーの添付ファイルの情報を表示する
エントリーファイルの情報を表示する
エントリーファイルの情報は$plugin_entry_pickup_files[$plugin_entry_pickup.id]配列に格納されています。
変数 |
値 |
{$plugin_entry_pickup.file} |
エントリーファイルのファイル名 |
{$plugin_entry_pickup_files[$plugin_entry_pickup.id].height} |
エントリーファイルの高さ |
{$plugin_entry_pickupfiles[$plugin_entry_pickup.id].width} |
エントリーファイルの横幅 |
{$plugin_entry_pickup_files[$plugin_entry_pickup.id].size} |
エントリーファイルのサイズ |
{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_files/{$plugin_entry_pickup.id}/{$plugin_entry_pickup.file} |
エントリーファイルのURL |
エントリーファイルのサムネイルの情報を表示する
エントリーファイルのサムネイルの情報は$plugin_entry_pickup_thumbnails[$plugin_entry_pickup.id]配列に格納されています。
変数 |
値 |
{$plugin_entry_pickup.file} |
エントリーファイルのサムネイルのファイル名 |
{$plugin_entry_pickup_thumbnails[$plugin_entry_pickup.id].height} |
エントリーファイルの高さ |
{$plugin_entry_pickup_thumbnails[$plugin_entry_pickup.id].width} |
エントリーファイルの横幅 |
{$plugin_entry_pickup_thumbnails[$plugin_entry_pickup.id].size} |
エントリーファイルのサイズ |
{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_thumbnails/{$plugin_entry_pickup.id}/{$plugin_entry_pickup.file} |
エントリーファイルのURL |
エントリーイメージの情報を表示する
エントリーイメージの情報は$plugin_entry_pickup_images[$plugin_entry_pickup.id]配列に格納されています。
変数 |
値 |
{$plugin_entry_pickup.image} |
エントリーイメージのファイル名 |
{$plugin_entry_pickup_images[$entry.id].height} |
エントリーイメージの高さ |
{$plugin_entry_pickup_images[$entry.id].width} |
エントリーイメージの横幅 |
{$plugin_entry_pickup_images[$entry.id].size} |
エントリーイメージのサイズ |
{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_images/{$plugin_entry_pickup.id}/{$plugin_entry_pickup.image} |
エントリーイメージのURL |
限定抽出されたエントリーのタグの情報を表示する
限定抽出されたエントリーのタグは、「$plugin_entry_pickup_tags[$plugin_entry_pickup.id]」という配列に格納されています。
$plugin_entry_pickup_tags[$plugin_entry_pickup.id]に格納されているタグを表示するには、「foreach」しなければなりません。
<!--{foreach from=$plugin_entry_pickup_tags[$plugin_entry_pickup.id]|smarty:nodefaults item='plugin_entry_pickup_tag' name='loop'}--><a href="{$freo.core.http_file}/entry?tag={$plugin_entry_pickup_tag|smarty:nodefaults|escape:'url'}">{$plugin_entry_pickup_tag}</a><!--{if !$smarty.foreach.loop.last}-->, <!--{/if}--><!--{/foreach}-->
限定抽出されたエントリーのカテゴリーの情報を表示する
限定抽出されたエントリーのカテゴリーについての情報は、「$plugin_entry_pickup_associates[$plugin_entry_pickup.id].category」という配列に格納されています。
$plugin_entry_pickup_associates[$plugin_entry_pickup.id].categoryに格納されているカテゴリーを表示するには、「foreach」しなければなりません。
<!--{foreach from=$plugin_entry_pickup_associates[$plugin_entry_pickup.id].category|smarty:nodefaults key='plugin_entry_pickup_category' item='plugin_entry_pickup_category' name='loop'}--><a href="{$freo.core.http_file}/category/{$plugin_entry_pickup_category}">{$freo.refer.categories[$plugin_entry_pickup_category].name}</a><!--{if !$smarty.foreach.loop.last}-->, <!--{/if}--><!--{/foreach}-->
上記~ 内
変数 |
値 |
{$plugin_entry_pickup_category} |
限定抽出されたエントリーに紐付けられているカテゴリーID |
{$freo.refer.categories[$plugin_entry_pickup_category].name} |
限定抽出されたエントリーに紐付けられているカテゴリーIDのカテゴリー名 |
限定抽出されたエントリーのオプションを表示する
オプションの表示方法には、二種類あります。
一括で表示するか、個別に表示するかです。
上記をふまえて、ページのオプションを取得するときに使用する変数は以下のとおりです。
変数 |
値 |
オプションを一括で表示する場合 |
{$plugin_entry_pickup_associates[$plugin_entry_pickup.id].option.[$option.id]} |
エントリーのオプションIDが[$option.id]のオプションに登録されている内容 |
オプションを個別に表示する場合 |
{$plugin_entry_pickup_associates[$plugin_entry_pickup.id].option.取得したいオプションID} ※「取得したいオプションID」部分にはオプションIDを代入してください。 例)取得したいオプションIDが「test1」の場合は{$plugin_entry_pickup_associates[$plugin_entry_pickup.id].option.test1} |
エントリーのオプションIDが「取得したいオプションID」のオプションに登録されている内容 |
説明すると、
{$plugin_entry_pickup_associates[$plugin_entry_pickup.id].option.[$option.id]}
こんな感じです。
つまり、
{$エントリーIDのエントリーのオプションのテーブルを指定して.オプションが.[$どのIDのオプションなのかを指定する]}
こういうことです。
オプションを個別に表示する場合は、[$option.id]部分に、[取得したいオプションID]を書き込みます。
たとえば、オプションID「test1」のオプションを取得したいなら、
{$plugin_entry_pickup_associates[$plugin_entry_pickup.id].option.test1}
のようになります。
オプションを一括で表示する場合は、[$option.id]部分を取得するために、オプション格納テーブルの情報を取得する必要があります。
オプション格納テーブルには、そのfreoに登録されているオプションのID、名前などが格納されています。
詳細は、freo公式サイトの機能解説→本体のテーブル構成→オプション格納テーブルのページをご覧下さい。
オプション格納テーブルの情報を取得するには、foreachを使います。
つまり、
<!--{foreach from=$freo.refer.options|smarty:nodefaults item='option'}-->
オプションの情報を表示する部分
<!--{/foreach}-->
このようにします。
よって、ページのオプションを取得する場合は、
<!--{foreach from=$freo.refer.options|smarty:nodefaults item='option'}-->
{$plugin_entry_pickup_associates[$plugin_entry_pickup.id].option.[$option.id]}
<!--{/foreach}-->
このようになります。
オプションを個別で表示するときのテンプレート編集例はfreo公式サイトの各機能の解説から「オプションを個別に表示する」を参考にしてください。
続きを読む