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

> Entry

同人イベントプラグインで未来のイベントがなかったときに特定の文字列を表示する方法

同人イベントプラグインで未来のイベントのみ表示する方法を利用すると、未来のイベントのみ表示することができます。
この時、未来のイベントがなかった場合に特定の文字列を表示する方法は、たとえば以下のようにします。

<table>
<tbody>
<!--{foreach from=$plugin_events|smarty:nodefaults item='plugin_event'}-->
<!--{if $plugin_event.datetime|date_format:'%Y/%m/%d' >= $smarty.now|date_format:'%Y/%m/%d'}-->
{assign var='eventFlg' value='true'}
<tr>
    <td><a href="{$freo.core.http_file}/event/view/{$plugin_event.id}">{$plugin_event.datetime|date_format:'%Y/%m/%d'}<!--{if $plugin_event_files[$plugin_event.id].file}--><br /><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/event_files/{$plugin_event.id}/{$plugin_event_files[$plugin_event.id].file}" alt="{$plugin_event.title}" /><!--{/if}--></a></td>
    <td>
        <!--{if $plugin_event.url}--><a href="{$plugin_event.url}" target="_blank">{$plugin_event.title}</a>
        <!--{else}-->{$plugin_event.title}
        <!--{/if}-->
    </td>
    <td>
        <!--{if $plugin_event.space}--><!--{if $plugin_event.hall}-->{$plugin_event.hall} <!--{/if}-->{$plugin_event.space}<!--{/if}--><br /><!--{if $plugin_event.style}-->({$plugin_event.style}<!--{if $plugin_event.itakucircle}-->|<!--{if $plugin_event.itakuurl}--><a href="{$plugin_event.itakuurl}" target="_blank">{$plugin_event.itakucircle}様</a><!--{else}-->{$plugin_event.itakucircle}様<!--{/if}--><!--{/if}-->)<!--{/if}-->
    </td>
    <td>{$plugin_event.name}</td>
    <td>
        <!--{if $plugin_event.category_id}-->【カテゴリー:<a href="{$freo.core.http_file}/event?category_id={$plugin_event.category_id}">{$plugin_event_categories[$plugin_event.category_id].name}</a>】<br /><!--{/if}-->
        <!--{if $plugin_event_tags[$plugin_event.id]|smarty:nodefaults}-->【タグ:<!--{foreach from=$plugin_event_tags[$plugin_event.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}-->】<br /><!--{/if}-->
        <!--{if $plugin_event.coupling}-->カップリング:{$plugin_event.coupling}<br /><!--{/if}-->
        <!--{if $plugin_event.text}-->{$plugin_event.text|smarty:nodefaults|strip_tags|mb_truncate:20:'...'|escape}<!--{/if}-->
    </td>
</tr>
<!--{/if}-->
<!--{/foreach}-->
<!--{if $eventFlg != 'true'}-->
    <tr><td>次回のイベント参加は未定です。</td></tr>
<!--{/if}-->
</tbody>
</table>

解説するとこんな↓感じです。

<table>
<tbody>
<!--{$plugin_events配列を繰り返して表示するここから}-->
<!--{もしイベント開催日が今よりも未来だったらここから}-->
    {eventFlgというテンプレート内変数に'true'という値を代入する}
    ~繰り返す内容(イベント情報表示部分)~
<!--{もしイベント開催日が今よりも未来だったらここまで}-->
<!--{$plugin_events配列を繰り返して表示するここまで}-->
<!--{もし$eventFlgが'true'じゃなければここから}-->
    ~未来のイベントがなかった場合に表示する特定の文字列~
<!--{もし$eventFlgが'true'じゃなければここから}-->
</tbody>
</table>

今回は、条件を判断するのにsmartyで利用できるテンプレート変数を活用しています。
詳しくは下記サイトを参考にしてください。

I'll be NET|smartyのassignでテンプレート内変数を定義する方法

PHPを利用して特定の文言を表示する場合は下記サイトを参考にして下さい。

夏草生産農家|同人イベント&イベントリストプラグインをちょっと便利にするカスタマイズ

続きを読む

フォーム管理プラグインで複数の項目を改行で連結する方法

フォーム管理プラグインでは、複数の入力項目を連結することができます。
上記TIPSで複数の入力項目を「-」などで連結することができますが、これを改行で連結する場合は、下記のようにしてください。

まずは項目を「,」で連結する

まずは複数の項目を「,」などで連結します。

上記を参考に、[freo/templates/plugins/form/form.html]に

<input type="hidden" name="plugin_form[__label][任意のID]" value="項目名" />
<input type="hidden" name="plugin_form[__implode][任意のID]" value="," />
<dt>複数の入力項目</dt>
  <dd>
    <input type="text" name="plugin_form[任意のID][]" size="10" value="" />
    <input type="text" name="plugin_form[任意のID][]" size="10" value="" />
    <input type="text" name="plugin_form[任意のID][]" size="10" value="" />
  </dd>

のように入力し、複数の入力項目を作成し、「,」で連結します。

「,」で連結した入力項目を「改行」で区切る

[freo/libs/freo/plugins/page.form.php]の1365~1372行目

        //送信内容定義
        $message = '';
        foreach ($form['__label'] as $id => $label) {
            $message .= "■" . $label . "\n";
            $message .= (isset($form[$id]) ? $form[$id] : '') . "\n";
            $message .= "\n";
        }
        $message = trim($message);

を、下記の通り変更します。

        //送信内容定義
        $message = '';
        foreach ($form['__label'] as $id => $label) {
            $form[$id] = str_replace(",", "\n", $form[$id]);
            $message .= "■" . $label . "\n";
            $message .= (isset($form[$id]) ? $form[$id] : '') . "\n";
            $message .= "\n";
        }
        $message = trim($message);

変更後のソースの4行目

            $form[$id] = str_replace(",", "\n", $form[$id]);

部分が、「,」を「改行(\n)」に変更している部分です。
連結文字を「,」以外にする場合は、こちらも変更して下さい。

続きを読む

エントリーの情報を一覧で表示する方法(デフォルト・エントリー・カテゴリー画面)

freoにはエントリーを登録・表示する機能があります。
デフォルト・エントリー画面では管理画面で設定した件数分のエントリーを一覧表示できます。
また、カテゴリー画面では特定カテゴリーのエントリーを一覧表示できます。

上記画面でエントリーを一覧で表示する方法及び変数は以下のとおりです。

エントリーを一覧表示する

デフォルト画面(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]です。

エントリーを一覧表示しているのは、[freo/templates/internals/default/default.html]の79~150行目

            <!--{foreach from=$entries|smarty:nodefaults item='entry'}-->
            <div class="entry">
                <h3><a href="{$freo.core.http_file}/view/{if $entry.code}{$entry.code}{else}{$entry.id}{/if}">{$entry.title}</a></h3>
                <ul class="information">
                    <li>{$entry.datetime|date_format:'%Y/%m/%d %H:%M'}</li>
                    <!--{if $entry_associates[$entry.id].category}-->
                    <li>カテゴリー:<!--{foreach from=$entry_associates[$entry.id].category|smarty:nodefaults key='entry_category' item='entry_category' name='loop'}--><a href="{$freo.core.http_file}/category/{$entry_category}">{$freo.refer.categories[$entry_category].name}</a><!--{if !$smarty.foreach.loop.last}-->,&nbsp;<!--{/if}--><!--{/foreach}--></li>
                    <!--{/if}-->
                    <!--{if $entry_tags[$entry.id]}-->
                    <li>タグ:<!--{foreach from=$entry_tags[$entry.id]|smarty:nodefaults item='entry_tag' name='loop'}--><a href="{$freo.core.http_file}/entry?tag={$entry_tag|smarty:nodefaults|escape:'url'}">{$entry_tag}</a><!--{if !$smarty.foreach.loop.last}-->,&nbsp;<!--{/if}--><!--{/foreach}--></li>
                    <!--{/if}-->
                </ul>
                <div class="content">
                    <!--{if $entry.restriction == 'user' and !$entry_securities[$entry.id]}-->
                        <p class="attention">このエントリーは、登録ユーザーのみに公開されています。</p>
                    <!--{elseif $entry.restriction == 'group' and !$entry_securities[$entry.id]}-->
                        <p class="attention">このエントリーは、一部のグループのみに公開されています。</p>
                    <!--{elseif $entry.restriction == 'password' and !$entry_securities[$entry.id]}-->
                        <p class="attention">このエントリーは、パスワードで認証した人のみに公開されています。</p>
                    <!--{/if}-->
                    <!--{if $entry.file and $entry.image}-->
                        <p><a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_files/{$entry.id}/{$entry.file}"><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_images/{$entry.id}/{$entry.image}" alt="{$entry.memo|default:$entry.file}" title="{$entry.memo|default:$entry.file}" width="{$entry_images[$entry.id].width}" height="{$entry_images[$entry.id].height}" /></a></p>
                    <!--{elseif $entry_thumbnails[$entry.id]}-->
                        <p><a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_files/{$entry.id}/{$entry.file}"><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_thumbnails/{$entry.id}/{$entry.file}" alt="{$entry.memo|default:$entry.file}" title="{$entry.memo|default:$entry.file}" width="{$entry_thumbnails[$entry.id].width}" height="{$entry_thumbnails[$entry.id].height}" /></a></p>
                    <!--{elseif $entry.file and $entry_files[$entry.id].width and $entry_files[$entry.id].height}-->
                        <p><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_files/{$entry.id}/{$entry.file}" alt="{$entry.memo|default:$entry.file}" title="{$entry.memo|default:$entry.file}" width="{$entry_files[$entry.id].width}" height="{$entry_files[$entry.id].height}" /></p>
                    <!--{elseif $entry.file}-->
                        <p><a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_files/{$entry.id}/{$entry.file}">{$entry.memo|default:$entry.file}</a></p>
                    <!--{/if}-->
                    <!--{if $entry_texts[$entry.id].excerpt}-->
                        {$entry_texts[$entry.id].excerpt|smarty:nodefaults}
                    <!--{/if}-->
                    <!--{if $entry_texts[$entry.id].more}-->
                        <p><a href="{$freo.core.http_file}/view/{if $entry.code}{$entry.code}{else}{$entry.id}{/if}?continue=1#continue" title="No.{$entry.id}の続き">続きを読む</a></p>
                    <!--{/if}-->
                    <!--{if $entry.restriction == 'password' and !$smarty.session.security.entry[$entry.id] and $freo.user.authority != 'root' and $freo.user.authority != 'author'}-->
                        <form action="{$freo.core.http_file}/view/{if $entry.code}{$entry.code}{else}{$entry.id}{/if}" method="post">
                            <fieldset>
                                <legend>認証フォーム</legend>
                                <dl>
                                    <dt>パスワード</dt>
                                        <dd><input type="text" name="entry[password]" size="30" value="" /></dd>
                                </dl>
                                <p><input type="submit" value="認証する" /></p>
                            </fieldset>
                        </form>
                    <!--{/if}-->
                    <!--{if $entry_associates[$entry.id].option}-->
                    <dl>
                        <!--{foreach from=$freo.refer.options|smarty:nodefaults item='option'}-->
                        <!--{if $entry_associates[$entry.id].option[$option.id] != ''}-->
                        <dt>{$option.name}</dt>
                            <dd><!--{if $option.type == 'file'}--><a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_options/{$entry.id}/{$option.id}/{$entry_associates[$entry.id].option[$option.id]}">{$entry_associates[$entry.id].option[$option.id]}</a><!--{else}-->{$entry_associates[$entry.id].option[$option.id]|nl2br}<!--{/if}--></dd>
                        <!--{/if}-->
                        <!--{/foreach}-->
                    </dl>
                    <!--{/if}-->
                </div>
                <ul class="link">
                    <li><a href="{$freo.core.http_file}/view/{if $entry.code}{$entry.code}{else}{$entry.id}{/if}" title="No.{$entry.id}の固定URL">この記事のURL</a></li>
                    <!--{if $entry.comment != 'closed'}-->
                    <li><a href="{$freo.core.http_file}/view/{if $entry.code}{$entry.code}{else}{$entry.id}{/if}#comment" title="No.{$entry.id}のコメント">コメント({$plugin_comment_counts[$entry.id]})</a></li>
                    <!--{/if}-->
                    <!--{if $entry.trackback != 'closed'}-->
                    <li><a href="{$freo.core.http_file}/view/{if $entry.code}{$entry.code}{else}{$entry.id}{/if}#trackback" title="No.{$entry.id}のトラックバック">トラックバック({$plugin_trackback_counts[$entry.id]})</a></li>
                    <!--{/if}-->
                    <!--{if $freo.user.authority == 'root' or $freo.user.id == $entry.user_id}-->
                    <li><a href="{$freo.core.http_file}/admin/entry_form?id={$entry.id}"><img src="{$freo.core.http_url}images/icons/edit.png" alt="編集" title="編集" width="16" height="16" /></a></li>
                    <!--{/if}-->
                </ul>
            </div>
            <!--{/foreach}-->

の部分です。

上記を解説すると

            <!--{$entries配列を'entry'として繰り返して表示するここから}-->
            <div class="entry">
                <h3><a href="{$freo設置URL}/view/{もしエントリーコードがあったらここから}{エントリーコード}{そうじゃなければ}{エントリーID}{もしエントリーコードがあったらここまで}">{エントリータイトル}</a></h3>
                <ul class="information">
                    <li>{エントリー日時|日付を'%Y/%m/%d %H:%M'に整形する}</li>
                    <!--{もしカテゴリーがあったらここから}-->
                    <li>カテゴリー:<!--{$entry_associates[$entry.id].category配列を'entry_category'として繰り返して表示するここから}--><a href="{$freo設置URL}/category/{エントリーに登録されているカテゴリーID}">{エントリーに登録されているカテゴリー名}</a><!--{もし最後のループじゃなかったらここから}-->,&nbsp;<!--{もし最後のループじゃなかったらここまで}--><!--{$entry_associates[$entry.id].category配列を'entry_category'として繰り返して表示するここまで}--></li>
                    <!--{もしカテゴリーがあったらここまで}-->
                    <!--{もしタグがあったらここから}-->
                    <li>タグ:<!--{$entry_tags[$entry.id]配列を'entry_tag'として繰り返して表示するここから}--><a href="{$freo設置URL}/entry?tag={エントリータグ}">{エントリータグ}</a><!--{もし最後のループじゃなかったらここから}-->,&nbsp;<!--{もし最後のループじゃなかったらここまで}--><!--{$entry_tags[$entry.id]配列を'entry_tag'として繰り返して表示するここまで}--></li>
                    <!--{もしタグがあったらここから}-->
                </ul>
                <div class="content">
                    <!--{もしエントリーの閲覧制限が'user'でエントリー保護データが入っていなかったらここから}-->
                        <p class="attention">このエントリーは、登録ユーザーのみに公開されています。</p>
                    <!--{もしエントリーの閲覧制限が'group'でエントリー保護データが入っていなかったら}-->
                        <p class="attention">このエントリーは、一部のグループのみに公開されています。</p>
                    <!--{もしエントリーの閲覧制限が'password'でエントリー保護データが入っていなかったら}-->
                        <p class="attention">このエントリーは、パスワードで認証した人のみに公開されています。</p>
                    <!--{もしエントリーの閲覧制限が'user'でエントリー保護データが入っていなかったらここまで}-->
                    <!--{もしエントリーファイルとエントリーイメージがあったらここから}-->
                        <p><a href="{freo設置URL}{ファイルディレクトリのURL}entry_files/{エントリーID}/{エントリーファイル名}"><img src="{freo設置URL}{ファイルディレクトリのURL}entry_images/{エントリーID}/{エントリーイメージ名}" alt="{エントリーファイルの説明|デフォルトはエントリーファイル名}" title="{エントリーファイルの説明|デフォルトはエントリーファイル名}" width="{エントリーイメージの横幅}" height="{エントリーイメージの高さ}" /></a></p>
                    <!--{もしエントリーファイルのサムネイルがあったら}-->
                        <p><a href="{freo設置URL}{ファイルディレクトリのURL}entry_files/{エントリーID}/{エントリーファイル名}"><img src="{freo設置URL}{ファイルディレクトリのURL}entry_thumbnails/{エントリーID}/{エントリーファイル名}" alt="{エントリーファイルの説明|デフォルトはエントリーファイル名}" title="{エントリーファイルの説明|デフォルトはエントリーファイル名}" width="{エントリーファイルのサムネイルの横幅}" height="{エントリーファイルのサムネイルの高さ}" /></a></p>
                    <!--{もしエントリーファイルが}--あってエントリーファイルの横幅があったら(画像だったら)}-->
                        <p><img src="{freo設置URL}{ファイルディレクトリのURL}entry_files/{エントリーID}/{エントリーファイル名}" alt="{エントリーファイルの説明|デフォルトはエントリーファイル名}" title="{エントリーファイルの説明|デフォルトはエントリーファイル名}" width="エントリーファイルの横幅" height="エントリーファイルの高さ" /></p>
                    <!--{もしエントリーファイルがあったら}-->
                        <p><a href="{freo設置URL}{ファイルディレクトリのURL}entry_files/{エントリーID}/{エントリーファイル名}">{エントリーファイルの説明|デフォルトはエントリーファイル名}</a></p>
                    <!--{もしエントリーファイルとエントリーイメージがあったらここまで}-->
                    <!--{もしエントリー本文があったらここから}-->
                        {$entry_texts[$entry.id].excerpt|smarty:nodefaults}
                    <!--{もしエントリー本文があったらここから}-->
                    <!--{もしエントリー本文(続き)があったらここから}-->
                        <p><a href="{freo設置ULR}/view/{もしエントリーコードがあったらここから}{エントリーコード}{そうじゃなければ}{エントリーID}{もしエントリーコードがあったらここまで}?continue=1#continue" title="No.{エントリーIDd}の続き">続きを読む</a></p>
                    <!--{もしエントリー本文(続き)があったらここまで}-->
                    <!--{もしエントリーの閲覧制限が'password'でこのエントリーの閲覧制限でパスワード認証が済んでなくてユーザーの権限が'root'でなくてユーザーの権限が'author'でなかったらここから}-->
                        <form action="{freo設置ULR}/view/{もしエントリーコードがあったらここから}{エントリーコード}{そうじゃなければ}{エントリーID}{もしエントリーコードがあったらここまで}" method="post">
                            <fieldset>
                                <legend>認証フォーム</legend>
                                <dl>
                                    <dt>パスワード</dt>
                                        <dd><input type="text" name="entry[password]" size="30" value="" /></dd>
                                </dl>
                                <p><input type="submit" value="認証する" /></p>
                            </fieldset>
                        </form>
                    <!--{もしエントリーの閲覧制限が'password'でこのエントリーの閲覧制限でパスワード認証が済んでなくてユーザーの権限が'root'でなくてユーザーの権限が'author'でなかったらここまで}-->
                    <!--{もしエントリーオプションがあったらここから}-->
                    <dl>
                        <!--{$freo.refer.options配列を'option'として繰り返して表示するここから}-->
                        <!--{もしエントリーオプションとして値が登録されているオプションであればここから}-->
                        <dt>{オプション名}</dt>
                            <dd><!--{もしオプションの種類が'file'だったらここから}--><a href="{freo設置URL}{ファイルディレクトリのURL}entry_options/{エントリーID}/{オプションID}/{エントリーオプションとして登録されている内容}">{エントリーオプションとして登録されている内容}</a><!--{そうじゃなければ}-->{エントリーオプションとして登録されている内容|改行は改行として表示する}<!--{もしオプションの種類が'file'だったらここまで}--></dd>
                        <!--{もしエントリーオプションとして値が登録されているオプションであればここまで}-->
                        <!--{$freo.refer.options配列を'option'として繰り返して表示するここまで}-->
                    </dl>
                    <!--{もしエントリーオプションがあったらここから}-->
                </div>
                <ul class="link">
                    <li><a href="{freo設置URL}/view/{もしエントリーコードがあったらここから}{エントリーコード}{そうじゃなければ}{エントリーID}{もしエントリーコードがあったらここまで}" title="No.{エントリーID}の固定URL">この記事のURL</a></li>
                    <!--{もしエントリーコメントが'closed'じゃなかったらここから}-->
                    <li><a href="{freo設置URL}/view/{もしエントリーコードがあったらここから}{エントリーコード}{そうじゃなければ}{エントリーID}{もしエントリーコードがあったらここまで}#comment" title="No.{エントリーID}のコメント">コメント({エントリーのコメント数})</a></li>
                    <!--{もしエントリーコメントが'closed'じゃなかったらここまで}-->
                    <!--{もしエントリートラックバックが'closed'じゃなかったらここから}-->
                    <li><a href="{freo設置URL}/view/{もしエントリーコードがあったらここから}{エントリーコード}{そうじゃなければ}{エントリーID}{もしエントリーコードがあったらここまで}#trackback" title="No.{エントリーID}のトラックバック">トラックバック({エントリーのトラックバック数})</a></li>
                    <!--{もしエントリートラックバックが'closed'じゃなかったらここまで}-->
                    <!--{もしユーザーの権限が'root'またはユーザーIDがエントリーの投稿者ユーザーID同じだったらここから}-->
                    <li><a href="{freo設置URL}/admin/entry_form?id={エントリーID}"><img src="{freo設置URL}images/icons/edit.png" alt="編集" title="編集" width="16" height="16" /></a></li>
                    <!--{もしユーザーの権限が'root'またはユーザーIDがエントリーの投稿者ユーザーID同じだったらここまで}-->
                </ul>
            </div>
            <!--{$entries配列を'entry'として繰り返して表示するここから}-->

以上のように、エントリー一覧としてエントリーの様々な情報を一件ずつ繰り返して表示しています。

エントリーの情報を取得する方法

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

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

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

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

エントリーの情報を表示したい部分

<!--{/foreach}-->

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

エントリーの基本的な情報を表示するための変数
変数
{$entry.id} エントリーID
{$entry.user_id} エントリーの投稿者ユーザーID
{$entry.created} エントリーの投稿日時
{$entry.modified} エントリーの更新日時
{$entry.approved} エントリーの承認状況(yesまたはno)
{$entry.restriction} エントリーの閲覧制限(userまたはgroupまたはpasswordまたは無し)
{$entry.password} エントリーのパスワード
{$entry.title} エントリーのタイトル
{$entry.status} エントリーの状態(publishまたはprivateまたはfuture)
{$entry.display} エントリーの表示(pub;ishまたはprivate)
{$entry.comment} エントリーのコメントの受付(openまたはclosedまたはviewまたはuser)
{$entry.trackback} エントリーのトラックバックの受付(openまたはclosedまたはview)
{$entry.title} エントリーのタイトル
{$entry.tag} エントリーのタグ
{$entry.datetime} エントリーの日付
{$entry.close} エントリーの公開終了日時
{$entry.file} エントリーファイルのファイル名
{$entry.image} エントリーイメージのファイル名
{$entry.memo} エントリーファイルの説明
{$entry.text} エントリー本文
エントリーの添付ファイルの情報を表示する
エントリーファイルの情報を表示する

エントリーファイルの情報は$entry_files[$entry.id]配列に格納されています。

変数
{$entry.file} エントリーファイルのファイル名
{$entry_files[$entry.id].height} エントリーファイルの高さ
{$entry_files[$entry.id].width} エントリーファイルの横幅
{$entry_files[$entry.id].size} エントリーファイルのサイズ
{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_files/{$entry.id}/{$entry.file} エントリーファイルのURL
エントリーファイルのサムネイルの情報を表示する

エントリーファイルのサムネイルの情報は$entry_thumbnails[$entry.id]配列に格納されています。

変数
{$entry.file} エントリーファイルのサムネイルのファイル名
{$entry_thumbnails[$entry.id].height} エントリーファイルの高さ
{$entry_thumbnails[$entry.id].width} エントリーファイルの横幅
{$entry_thumbnails[$entry.id].size} エントリーファイルのサイズ
{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_thumbnails/{$entry.id}/{$entry.file} エントリーファイルのURL
エントリーイメージの情報を表示する

エントリーイメージの情報は$entry_images[$entry.id]配列に格納されています。

変数
{$entry.image} エントリーイメージのファイル名
{$entry_images[$entry.id].height} エントリーイメージの高さ
{$entry_images[$entry.id].width} エントリーイメージの横幅
{$entry_images[$entry.id].size} エントリーイメージのサイズ
{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_images/{$entry.id}/{$entry.image} エントリーイメージのURL

エントリーのタグの情報を表示する

エントリーのタグは、「$entry_tags[$entry.id]」という配列に格納されています。
$entry_tags[$entry.id]に格納されているタグを表示するには、foreachしなければなりません。

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

エントリーのカテゴリーの情報を表示する

エントリーのカテゴリーについての情報は、$entry_associates[$entry.id].category」という配列に格納されています。
$entry_associates[$entry.id].categoryに格納されているカテゴリーを表示するには、foreachしなければなりません。

<!--{foreach from=$entry_associates[$entry.id].category|smarty:nodefaults key='entry_category' item='entry_category' name='loop'}--><a href="{$freo.core.http_file}/category/{$entry_category}">{$freo.refer.categories[$entry_category].name}</a><!--{if !$smarty.foreach.loop.last}-->,&nbsp;<!--{/if}--><!--{/foreach}-->

上記~

変数
{$entry_category} エントリーに紐付けられているカテゴリーID
{$freo.refer.categories[$entry_category].name} エントリーに紐付けられているカテゴリーIDのカテゴリー名

エントリーのオプションを表示する

オプションの表示方法には、二種類あります。
一括で表示するか、個別に表示するかです。

上記をふまえて、ページのオプションを取得するときに使用する変数は以下のとおりです。

変数
オプションを一括で表示する場合
{$entry_associates[$entry.id].option.[$option.id]} エントリーのオプションIDが[$option.id]のオプションに登録されている内容
オプションを個別に表示する場合
{$entry_associates[$entry.id].option.取得したいオプションID}
※「取得したいオプションID」部分にはオプションIDを代入してください。
例)取得したいオプションIDが「test1」の場合は{$entry_associates[$entry.id].option.test1}
エントリーのオプションIDが「取得したいオプションID」のオプションに登録されている内容

説明すると、

{$entry_associates[$entry.id].option.[$option.id]}

こんな感じです。
つまり、

{$エントリーIDのエントリーのオプションのテーブルを指定して.オプションが.[$どのIDのオプションなのかを指定する]}

こういうことです。

オプションを個別に表示する場合は、[$option.id]部分に、[取得したいオプションID]を書き込みます

たとえば、オプションID「test1」のオプションを取得したいなら、

{$entry_associates[$entry.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'}-->

       {$entry_associates[$entry.id].option.[$option.id]}
   <!--{/foreach}-->

 このようになります。

エントリーのオプションを一括で表示しているのは、[freo/templates/internals/default/default.html]の126~135行目の部分です。
オプションを個別で表示するときのテンプレート編集例はfreo公式サイトの各機能の解説から「オプションを個別に表示する」を参考にしてください。

続きを読む

バナー付きリンクプラグインの情報を個別に表示する方法

このサイトで配布しているfreo機能拡張プラグインバナー付きリンクプラグインの情報を個別に表示する方法は以下のとおりです。

リンクを個別に表示する

リンク個別表示画面(freo/index.php/link/view画面)のテンプレートは、[freo/templates/plugins/link/view.html]です。
リンク個別表示画面(freo/index.php/link/view画面)では表示したいリンクIDを指定している(freo/index.php/link/view/1←このように)ので、下記変数をテンプレート上に記載しただけで、該当リンクIDの情報を表示させることができます。

リンクの情報を取得する方法

リンクの基本的な情報を表示するための変数
変数
{$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.file} リンクファイルがあるかどうか
(配列なので「smarty:nodefaults」修飾子をつけてください。)
{$plugin_link_files.file.name} リンクファイルのファイル名
{$plugin_link_files.file.height} リンクファイルの高さ
{$plugin_link_files.file.width} リンクファイルの幅
{$plugin_link_files.file.size} リンクファイルのサイズ
{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/link_files/{$plugin_link.id}/{$plugin_link_files.file.name} リンクファイルのURL
{$plugin_link_files.file.thumbnail} リンクファイルのサムネイルがあるかどうか
(配列なので「smarty:nodefaults」修飾子をつけてください。)
{$plugin_link_files.file.thumbnail.name} リンクファイルのサムネイルのファイル名
{$plugin_link_files.file.thumbnail.height} リンクファイルのサムネイルの高さ
{$plugin_link_files.file.thumbnail.width} リンクファイルのサムネイルの幅
{$plugin_link_files.file.thumbnail.size} リンクファイルのサムネイルのサイズ
{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/link_thumbnails/{$plugin_link.id}/{$plugin_link_files.file.thumbnail.name} リンクファイルのサムネイルのURL

{$plugin_link_files.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」という配列に格納されています。
リンクのタグの情報を表示したいときは、foreachしなければなりません。

<!--{foreach from=$plugin_link_tags|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}-->,&nbsp;<!--{/if}--><!--{/foreach}-->

続きを読む

バナー付きリンクプラグインの情報を一覧で表示する方法

このサイトで配布している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}-->,&nbsp;<!--{/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><!--{もし最後のループだったらここから}-->,&nbsp;<!--{もし最後のループだったらここまで}-->
                    <!--{$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}-->,&nbsp;<!--{/if}--><!--{/foreach}-->
<!--{/foreach}-->

続きを読む

エントリー限定抽出プラグイン

特定のカテゴリーのエントリーを指定件数分表示するプラグインです。

特徴

特定のカテゴリーのエントリーを指定件数分表示するプラグインです。
特定するカテゴリーID、指定する表示件数は[管理画面→システム→設定管理→プラグインの設定→エントリー限定抽出プラグイン]で変更してください。

複数のカテゴリーのエントリーを一度に指定件数分表示することはできません。(例:カテゴリーID「test」と「sample」を登録しているエントリーなど)

複数のカテゴリーのエントリーをそれぞれ抽出したい場合は、(例:カテゴリーID「test」の記事を抽出し、別の場所でカテゴリーID「sample」の記事を抽出)本プラグインを複製して利用してください。

参考リンク→同じプラグインを複数設置する方法

ダウンロード

entry_pickup_3287_1_0_0.zip

導入方法

  1. [freo]フォルダに[configs][libs]フォルダをアップロードする。
  2. [管理画面→システム→設定管理→プラグインの設定→エントリー限定抽出プラグイン]にアクセスし、 抽出するカテゴリーIDを設定する。
  3. 下記ソースを抽出したエントリー一覧を表示したい画面のテンプレートに貼り付ける。
    <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>
    

更新履歴

2016/03/09 配布開始
   
   

続きを読む

【イラスト編(08)】アルバムプラグインを利用してギャラリーを作る。

これまで、エントリー・ページ・メディアに登録した画像でギャラリーを作成する方法をご紹介しました。
色々制約やルールがあってわかりにくかったかもしれません。

今回は、当サイトで配布しているギャラリー用のプラグイン「アルバムプラグイン」を利用してギャラリーを作成する方法をご紹介します。

アルバムプラグインとは

アルバムプラグインは、freoでギャラリーを表示するためにご利用いただけるプラグインです。
アルバムプラグインの機能は下記の通りです。

  • 複数件のアルバムを一覧にして表示することができます。
  • 1件のアルバムを選択して個別に表示することができます。
  • 1件のアルバムに、「タイトル」「本文」「オプション10種」を登録できます。
  • 1件のアルバムに、添付ファイル(画像に限る)を登録できます。
    登録できる画像数に制限はありません。
  • 画像登録時にサムネイルを自動作成できます。
  • 1件のアルバムを、タグとカテゴリーで分類できます。
  • 閲覧制限(フィルタリング・ユーザー制限・パスワード制限・グループ制限)を利用できます。
  • アルバムに登録された画像を一覧表示できる他、画像を本文内に挿入して表示することもできます。
利用サンプル
アルバムファイル(画像)の表示順について

アルバムプラグインでは、画像は「ファイル名順(昇順または降順)」に表示されます。
よって、画像の表示順を変更するには、ファイル名を変更する必要があります。

管理ページ→アルバム管理→編集したいアルバムを選んで「編集」をクリックでアルバムの編集画面が表示されます。
名前を変更したいファイルを選んで「編集」で画像の名前を変更できます。

画像登録時に表示順を意識した名前を設定し、ご登録されることをおすすめします。

アルバム関連のその他プラグイン

当サイトでは、新着アルバムを表示するための新着アルバムプラグインを配布しています。
また、アルバムの月別件数を表示するアルバムアーカイブ表示プラグインを配布しています。
アルバムに関連するタグは、アルバムタグクラウド表示プラグインを利用すれば一覧表示できます。
アルバムレスポンスプラグインを利用すると、アルバムにレスポンス(コメント)をつけることができます。

アルバムプラグインを利用したギャラリーの作成

アルバムプラグインを導入すると、アルバムを作成できるようになります。
1件のアルバムには複数の画像を登録することができますので、画像のみを一覧で表示したり、本文に挿入して表示したり、ご自由に記事を作成してください。

アルバム一覧画面(freo/index.php/album)の表示方法を変更する

アルバム一覧画面(freo/index.php/album)は、デフォルトの状態では、アルバムの情報をタイトル・本文・画像含め、全ての情報を表示できるようにしています。
これを例えば、タイトルと画像だけ表示するように変更するには下記のようにしてください。

  1. [freo/templates/plugins/album/default.html]の26~56行目を下記の通り変更する
            <div id="album">
                <!--{foreach from=$plugin_albums|smarty:nodefaults item='plugin_album'}-->
                    <div class="album">
                        <h3><a href="{$freo.core.http_file}/album/view/{$plugin_album.id}">{$plugin_album.datetime|date_format:'%Y/%m/%d'}<!--{if $plugin_album.title}-->{$plugin_album.title}<!--{/if}--></a><!--{if $freo.user.authority == 'root' or $freo.user.authority == 'author'}--><a href="{$freo.core.http_file}/album/admin_form?id={$plugin_album.id}"><img src="{$freo.core.http_url}images/icons/edit.png" alt="編集" title="編集" width="16" height="16" /></a><!--{/if}--></h3>
                        <ul class="album_image">
                            <!--{if $plugin_album_files[$plugin_album.id]|smarty:nodefaults}-->
                            <!--{foreach from=$plugin_album_files[$plugin_album.id]|smarty:nodefaults item='plugin_album_file'}-->
                            <li><a rel="album{$plugin_album.id}" title="{$plugin_album.title}" href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/album_files/{$plugin_album.id}/{$plugin_album_file.name}"><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/{if $plugin_album_file.thumbnail|smarty:nodefaults}album_thumbnails{else}album_files{/if}/{$plugin_album.id}/{$plugin_album_file.name}" alt="{$plugin_album_file.name}" title="{$plugin_album_file.name}" /></a></li>
                            <!--{/foreach}-->
                            <!--{/if}-->
                        </ul>
                        <!--{if $plugin_album.restriction == 'password' and !$smarty.session.security.plugin_album[$plugin_album.id] and $freo.user.authority != 'root' and $freo.user.authority != 'author'}-->
                        <form action="{$freo.core.http_file}/album/view/{$plugin_album.id}" method="post">
                            <fieldset>
                                <legend>認証フォーム</legend>
                                <dl>
                                    <dt>パスワード</dt>
                                        <dd><input type="text" name="plugin_album[password]" size="30" value="" /></dd>
                                </dl>
                                <p><input type="submit" value="認証する" /></p>
                            </fieldset>
                        </form>
                        <!--{/if}-->
                    </div>
                <!--{/foreach}-->
            </div>
    
  2. 上記テンプレートを上書き保存しアップロードする。

また、添付ファイルの内最初の1枚目だけを表示し、あとの画像は表示しないのであれば、

  1. [freo/templates/plugins/album/default.html]の47~53行目を
                        <ul class="album_image">
                            <!--{if $plugin_album_files[$plugin_album.id]|smarty:nodefaults}-->
                            <!--{foreach from=$plugin_album_files[$plugin_album.id]|smarty:nodefaults item='plugin_album_file' name='album_loop'}-->
                            <!--{if $smarty.foreach.albun_loop.first}-->
                            <li><a rel="album{$plugin_album.id}" title="{$plugin_album.title}" href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/album_files/{$plugin_album.id}/{$plugin_album_file.name}"><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/{if $plugin_album_file.thumbnail|smarty:nodefaults}album_thumbnails{else}album_files{/if}/{$plugin_album.id}/{$plugin_album_file.name}" alt="{$plugin_album_file.name}" title="{$plugin_album_file.name}" /></a></li>
                            <!--{/if}-->
                            <!--{/foreach}-->
                            <!--{/if}-->
                        </ul>
    
    のように変更する。
  2. 上記テンプレートを上書き保存しアップロードする。
アルバム個別表示画面(freo/index.php/album/view/アルバムID)の表示方法を変更する

アルバムプラグインを導入すると、アルバムを作成できるようになります。
1件のアルバムには複数の画像を登録することができますので、画像のみを一覧で表示したり、本文に挿入して表示したり、ご自由に記事を作成してください。

例えば、画像を本文に挿入して表示し、画像の一覧表示を削除する方法は下記の通りです。

  1. [freo/templates/plugins/album/view.html]の19行目
                <!--{if $plugin_album.text}--><p>{$plugin_album.text|smarty:nodefaults|nl2br}</p><!--{/if}-->
    
    をそのまま残し、
  2. [freo/templates/plugins/album/view.html]の32~39行目
                <!--{if $plugin_album_files|smarty:nodefaults}-->
                <h3>添付ファイル</h3>
                <ul class="album_image">
                    <!--{foreach from=$plugin_album_files|smarty:nodefaults item='plugin_album_file'}-->
                    <li><a rel="album{$plugin_album.id}" title="{$plugin_album.title}" href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/album_files/{$plugin_album.id}/{$plugin_album_file.name}"><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}plugins/{if $plugin_album_file.thumbnail|smarty:nodefaults}album_thumbnails{else}album_files{/if}/{$plugin_album.id}/{$plugin_album_file.name}" alt="{$plugin_album_file.name}" title="{$plugin_album_file.name}" /></a></li>
                    <!--{/foreach}-->
                </ul>
                <!--{/if}-->
    
    を削除する。
  3. 上記テンプレートを上書き保存しアップロードする。

その他のアルバム関連TIPS

その他のカスタマイズは下記を参考にして下さい。

まとめ

freoには、エントリー・ページ・メディアなどの画像を登録できる機能があり、それらを利用して登録した画像をギャラリーとして利用するには、様々なプラグインが公開されています。
それらを利用してギャラリーを作成することもできますし、アルバムプラグインなどのギャラリー専用プラグインを利用することも出来ます。

どれが一番自分の作成したいギャラリーに適しているかを検討し、自分にあった機能を選んで利用することが大切です。

続きを読む

【イラスト編(07)】エントリー・ページでギャラリーをつくる方法まとめ

これまでご紹介してきたように、エントリーやページを利用してギャラリーを作成する方法は様々あります。
どの機能をつかって画像を表示すればいいか、それらをギャラリー表示するにはどのプラグインを利用すればいいか、簡易的なフローにしてみました。

エントリー関連画像でギャラリーを作成する場合

flow_entry_gallery.png

参考リンク

ページ関連画像でギャラリーを作成する場合

flow_page_gallery.png

参考リンク

続きを読む

同モジュール内のマクロ間で変数を受け渡す

同モジュール内のマクロ間で変数を受け渡す方法です。

ある標準モジュール(たとえば「Module1」)に、[作業呼び出し用マクロ]と[作業用マクロ]の2つのマクロがあるとします。
作業呼び出し用マクロで作業用マクロを起動し、作業用マクロで変数を設定し、作業呼び出し用マクロで変更された変数を回収して処理したいとします。

Sub test_Call()
'===========================================================
'   呼び出し用マクロ
'===========================================================
ThisWorkbook.Activate
'//変数の型
    Dim sample As String
'//初期値挿入
    sample = "山田"
'//作業マクロ実行
    Call test_Case(sample)
'//結果を確認
    MsgBox (sample)
End Sub

Sub test_Case(ByRef sample As String)
'===========================================================
'   作業用マクロ
'===========================================================
'//変数に値を設定
    sample = "田中"
End Sub

上記のようにすると、変更後の変数に格納されている「田中」という文字列がダイアログで表示されます。

気をつけておくポイントは以下のとおりです。

作業呼び出し用マクロで受け渡す変数の型を設定しておく

作業呼び出し用マクロで作業用マクロから受け取る変数の型を設定しておきます。
上記の例でいうと

    Dim sample As String

の部分です。
また、初期値が必要な場合は

    sample = "山田"

のように設定しておきます。

作業呼び出し用マクロで作業用マクロ実行時に受け取る変数を指定しておく

作業用マクロ呼び出し時に受け渡す変数を指定します。
上記の例でいうと

    Call test_Case(sample)

の部分です。

作業用マクロで受け渡す変数を指定しておく

作業用マクロで受け渡す変数及びその型を指定しておきます。
変数の型は、作業呼び出し用マクロで指定した型と同じものにしておいてください。

上記の例でいうと、

Sub test_Case(ByRef sample As String)

の部分です。

続きを読む

エントリーページ移動

ユーティリティ

Twitter

記事検索

ページ上部へ