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

> Entry >freo>freoTips>プラグイン系TIPS> テンプレートを変えるだけでニュースをカテゴリーごとに表示する方法

【freo】【freoTips】【プラグイン系TIPS】テンプレートを変えるだけでニュースをカテゴリーごとに表示する方法

当サイトで配布しているニュースプラグインのニュースをカテゴリーごとに表示する方法です。

ニュースプラグインでは、カテゴリーをつけることができます。
これを使って、ニュースを分類することができます。
デフォルトのままだとカテゴリーがごちゃ混ぜで表示されてしまうので、カテゴリーごとに表示してみます。

[freo/templates/plugins/news/default.html]をエディタで開きます。
28~71行目を変更します。
デフォルトではこうなってます↓

        <h2>ニュース一覧</h2>
        <table id="news">
       
        ~中略~
       
            </tbody>
        </table>

これを、下記のように変更します。

<!--{foreach from=$plugin_news_categories|smarty:nodefaults item='plugin_news_category' name='loop'}-->
<h3><a href="{$freo.core.http_file}/news?category_id={$plugin_news_category.id}">{$plugin_news_category.name}</a></h3>
    <table id="news">
        <thead>
            <tr>
                <th>日時</th>
                <th>タイトル</th>
                <th>コメント</th>
                <th>ファイル</th>
                <th>タグ</th>
            </tr>
        </thead>
        <tfoot>
            <tr>
                <th>日時</th>
                <th>タイトル</th>
                <th>コメント</th>
                <th>ファイル</th>
                <th>タグ</th>
            </tr>
        </tfoot>
        <tbody>
            <!--{foreach from=$plugin_newses|smarty:nodefaults item='plugin_news'}-->
            <!--{if $plugin_news_category.id == $plugin_news.category_id}-->
            <tr>
                <td><a href="{$freo.core.http_file}/news/view/{$plugin_news.id}">{$plugin_news.datetime|date_format:'%Y/%m/%d'}</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}-->
                        <img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/news_files/{$plugin_news.id}/{$plugin_news_files[$plugin_news.id].file}" alt="{$plugin_news.title}" />
                    <!--{/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>
            <!--{/if}-->
            <!--{/foreach}-->
        </tbody>
    </table>
<!--{/foreach}-->

つまりはこんな感じです↓

<!--{ニュースカテゴリーの繰り返しここから}-->
<h3><a href="{$freo.core.http_file}/news?category_id={ニュースカテゴリーID}">{ニュースカテゴリー名}</a></h3>
    <table id="news">
        <thead>
            <tr>
                ~中略~
            </tr>
        </thead>
        <tfoot>
            <tr>
                ~中略~
            </tr>
        </tfoot>
        <tbody>
            <!--{ニュースの繰り返しここから}-->
            <!--{もし今繰り返しているカテゴリーIDと今繰り返しているニュースのカテゴリーIDが等しければここから}-->

                ~中略~

            <!--{もし今繰り返しているカテゴリーIDと今繰り返しているニュースのカテゴリーIDが等しければここまで}-->
            <!--{ニュースの繰り返しここまで}-->
        </tbody>
    </table>
<!--{ニュースカテゴリーの繰り返しここまで}-->

ちなみに、ページやデフォルト画面に表示したい場合も、↑のソースを利用できます

ページ移動

関連記事

ユーティリティ

Twitter

記事検索

ページ上部へ