同人イベント&イベントリストプラグインをちょっと便利にするカスタマイズ

虹色ミツバチさんで配布されている、同人イベントプラグイン&イベントリストプラグインをちょっと便利に使うための小ネタです。

前提

同人イベントプラグインイベントリストプラグインを導入し、正常に動作する状態にしておく。

イベント登録があったらいろんなページに告知をだす(画像もだせます)

未来の日付でイベント登録があり特定画像がアップされていたら、画像とともに詳細ページへのリンクを勝手に出してくれるようにするカスタマイズです(開催日程を過ぎると勝手に消えます)

banner_sample.jpg

導入方法

まずどのアップロード機能でバナー画像をアップするか決めます。プラグインには標準アップロードとオプションアップロード(10個)あり、標準機能はお品書きやサークルカットなどで使う場合はオプションのどれかをバナー用にあててください。導入例ではオプションアップロードの1番を使っています。

表示させたいページのテンプレートに下記をおいてください。1番以外のアップロード機能を使う場合は「$plugin_eventlist_files[$plugin_event.id].file01」の最後の数字を変えてください(標準アップロードを使う場合は「.file」)

<!--{foreach from=$plugin_eventlists|smarty:nodefaults item='plugin_event'}-->
    <!--{if $plugin_event.datetime|date_format:'%Y/%m/%d' >= $smarty.now|date_format:'%Y/%m/%d'}-->
        <!--{if $plugin_eventlist_files[$plugin_event.id].file01}-->
            <a href="{$freo.core.http_file}/eventlist/view/{$plugin_event.id}"><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/eventlist_files/{$plugin_event.id}/{$plugin_eventlist_files[$plugin_event.id].file01}" alt="" /></a>
        <!--{/if}-->
    <!--{/if}-->
<!--{/foreach}-->

未来の日付がない場合に特定の文言を表示する方法

同人イベントプラグインで未来のイベントのみ表示する方法を更に改良して、未来の登録がないときに別の文言をだすためのカスタマイズ方です。ついでにテーブルのヘッダー&フッターを非表示にします。

eventlist_first.png

eventlist_end.png

うちではイベントリストプラグインで使っているのでどちらでも使えると思います。

導入方法

表示させたい箇所に下記ソースを記入してください。同人イベントプラグインの場合は一行目の「$plugin_eventlists」を「$plugin_events」に変えてください。

<!--{foreach from=$plugin_eventlists|smarty:nodefaults item='plugin_eventlist'}-->
<!--{if $plugin_eventlist.datetime|date_format:'%Y/%m/%d' >= $smarty.now|date_format:'%Y/%m/%d'}-->
    <!--{php}if (!$headflag) :{/php}-->
    <div class="content">
        <h2>イベント予定</h2>
            <table id="eventlist">
                <thead>
                    <tr>
                        <th>日時</th>
                        <th>イベント名</th>
                        <th>参加名</th>
                        <th>コメント</th>
                        <th>タグ</th>
                        <th>カテゴリー</th>
                    </tr>
                </thead>
                <tfoot>
                    <tr>
                        <th>日時</th>
                        <th>イベント名</th>
                        <th>参加名</th>
                        <th>コメント</th>
                        <th>タグ</th>
                        <th>カテゴリー</th>
                    </tr>
                </tfoot>
                <tbody>
    <!--{php}endif;{/php}-->
                    <tr>
                        <td>{$plugin_eventlist.datetime|date_format:'%Y/%m/%d'}</td>
                        <td><!--{if $plugin_eventlist.url}--><a href="{$plugin_event.url}" target="_blank">{$plugin_eventlist.title}</a><!--{else}-->{$plugin_eventlist.title}<!--{/if}--></td>
                        <td>{$plugin_eventlist.name}</td>
                        <td>{$plugin_eventlist.text}</td>
                        <td>
                            <!--{foreach from=$plugin_eventlist_tags[$plugin_eventlist.id]|smarty:nodefaults item='plugin_event_tag' name='loop'}-->
                                <a href="{$freo.core.http_file}/event?tag={$plugin_event_tag|smarty:nodefaults|escape:'url'}">{$plugin_event_tag}</a><!--{if !$smarty.foreach.loop.last}-->,&nbsp;<!--{/if}-->
                            <!--{/foreach}-->
                        </td>
                        <td><a href="{$freo.core.http_file}/eventlist?category_id={$plugin_eventlist.category_id}">{$plugin_eventlist_categories[$plugin_eventlist.category_id].name}</a></td>
                    </tr>
    <!--{php}$endflag = 1;{/php}-->
    <!--{else}-->
        <!--{php}if (!$headflag) :{/php}-->
            <p>次回参加は未定です。詳細が決まったらお知らせします。</p>
            <!--{php}$endflag = 0;{/php}-->
        <!--{php}endif;{/php}-->
    <!--{/if}-->
<!--{php}$headflag = 1;{/php}-->
<!--{/foreach}-->
<!--{php}if ($endflag) :{/php}-->
            </tbody>
        </table>
 </div>
<!--{php}endif;{/php}-->

TOP