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

> Entry >freo>freoTips>プラグイン系TIPS> 関連エントリー表示プラグインでエントリーの画像を表示する方法

【freo】【freoTips】【プラグイン系TIPS】関連エントリー表示プラグインでエントリーの画像を表示する方法

関連エントリー表示プラグインは、freo公式から配布されている、「あるエントリーの関連エントリーをカテゴリーまたはタグ、あるいはその両方から特定し表示する」プラグインです。
関連エントリー表示プラグインで、関連エントリーの画像(エントリーファイル、エントリーファイルのサムネイル、エントリーイメージ)を表示する方法は以下のとおりです。

  1. [freo/libs/freo/plugins/display.entry_relate.php]の77行目と78行目の間に下記のように加筆する。
        $entry_files      = array();
        $entry_thumbnails = array();
        $entry_images     = array();
    
  2. [freo/libs/freo/plugins/display.entry_relate.php]の138行目と139行目の間に下記のように加筆する。
            //エントリーファイル取得
            $entry_files = array();
            foreach ($entry_keys as $entry) {
                if (!$entries[$entry]['file']) {
                    continue;
                }
    
                list($width, $height, $size) = freo_file(FREO_FILE_DIR . 'entry_files/' . $entry . '/' . $entries[$entry]['file']);
    
                $entry_files[$entry] = array(
                    'width'  => $width,
                    'height' => $height,
                    'size'   => $size
                );
            }
    
            //エントリーサムネイル取得
            $entry_thumbnails = array();
            foreach ($entry_keys as $entry) {
                if (!$entries[$entry]['file']) {
                    continue;
                }
                if (!file_exists(FREO_FILE_DIR . 'entry_thumbnails/' . $entry . '/' . $entries[$entry]['file'])) {
                    continue;
                }
    
                list($width, $height, $size) = freo_file(FREO_FILE_DIR . 'entry_thumbnails/' . $entry . '/' . $entries[$entry]['file']);
    
                $entry_thumbnails[$entry] = array(
                    'width'  => $width,
                    'height' => $height,
                    'size'   => $size
                );
            }
    
            //エントリーイメージ取得
            $entry_images = array();
            foreach ($entry_keys as $entry) {
                if (!$entries[$entry]['image']) {
                    continue;
                }
    
                list($width, $height, $size) = freo_file(FREO_FILE_DIR . 'entry_images/' . $entry . '/' . $entries[$entry]['image']);
    
                $entry_images[$entry] = array(
                    'width'  => $width,
                    'height' => $height,
                    'size'   => $size
                );
            }
    
  3. [freo/libs/freo/plugins/display.entry_relate.php]の144行目と145行目の間に下記のように加筆する。
            'plugin_entry_relate_files'      => $entry_files,
            'plugin_entry_relate_thumbnails' => $entry_thumbnails,
            'plugin_entry_relate_images'     => $entry_images,
    
  4.  [freo/templates/internals/view/default.html]の関連エントリーを表示したい部分のソースを
    <div id="entry_relate">
        <h3>関連エントリー</h3>
        <!--{foreach from=$plugin_entry_relates|smarty:nodefaults item='plugin_entry_relate'}-->
        <div class="entry_relate">
            <h4><a href="{$freo.core.http_file}/view/{if $plugin_entry_relate.code}{$plugin_entry_relate.code}{else}{$plugin_entry_relate.id}{/if}">{$plugin_entry_relate.title}</a></h4>
            
            <!--{if $plugin_entry_relate.file and $plugin_entry_relate.image}-->
                <p><a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_files/{$plugin_entry_relate.id}/{$plugin_entry_relate.file}"><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_images/{$plugin_entry_relate.id}/{$plugin_entry_relate.image}" alt="{$plugin_entry_relate.memo|default:$plugin_entry_relate.file}" title="{$plugin_entry_relate.memo|default:$plugin_entry_relate.file}" width="{$plugin_entry_relate_images[$plugin_entry_relate.id].width}" height="{$plugin_entry_relate_images[$entry.id].height}" /></a></p>
            <!--{elseif $plugin_entry_relate_thumbnails[$plugin_entry_relate.id]}-->
                <p><a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_files/{$plugin_entry_relate.id}/{$plugin_entry_relate.file}"><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_thumbnails/{$plugin_entry_relate.id}/{$plugin_entry_relate.file}" alt="{$plugin_entry_relate.memo|default:$plugin_entry_relate.file}" title="{$plugin_entry_relate.memo|default:$plugin_entry_relate.file}" width="{$plugin_entry_relate_thumbnails[$plugin_entry_relate.id].width}" height="{$plugin_entry_relate_thumbnails[$plugin_entry_relate.id].height}" /></a></p>
            <!--{elseif $plugin_entry_relate.file and $plugin_entry_relate_files[$plugin_entry_relate.id].width and $plugin_entry_relate_files[$plugin_entry_relate.id].height}-->
                <p><img src="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_files/{$plugin_entry_relate.id}/{$plugin_entry_relate.file}" alt="{$plugin_entry_relate.memo|default:$plugin_entry_relate.file}" title="{$plugin_entry_relate.memo|default:$plugin_entry_relate.file}" width="{$plugin_entry_relate_files[$plugin_entry_relate.id].width}" height="{$plugin_entry_relate_files[$plugin_entry_relate.id].height}" /></p>
            <!--{elseif $plugin_entry_relate.file}-->
                <p><a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}entry_files/{$plugin_entry_relate.id}/{$plugin_entry_relate.file}">{$plugin_entry_relate.memo|default:$plugin_entry_relate.file}</a></p>
            <!--{/if}-->
        </div>
        <!--{foreachelse}-->
        <ul><li>関連エントリーはありません。</li></ul>
        <!--{/foreach}-->
    </div>
    
    のように変更する。

(4)のソースの詳細は以下のとおりです。

<div id="entry_relate">
    <h3>関連エントリー</h3>
    <!--{関連エントリー配列を'plugin_entry_relate'として繰り返して表示するここから}-->
    <div class="entry_relate">
        <h4><a href="関連エントリーのURL">{関連エントリーのタイトル}</a></h4>
        <!--{もし関連エントリーにファイルが登録されててかつ関連エントリーにイメージが登録されてればここから}-->
            <p><a href="関連エントリーファイルのURL"><img src="関連エントリーイメージ" alt="関連エントリーのファイルの説明|関連エントリーのファイルの説明がなければ関連エントリーファイル名" title="関連エントリーのファイルの説明|関連エントリーのファイルの説明がなければ関連エントリーファイル名" width="関連エントリーイメージの横幅" height="関連エントリーイメージの高さ" /></a></p>
        <!--{関連エントリーファイルのサムネイルがあれば}-->
            <p><a href="関連エントリーファイルのURL"><img src="関連エントリーファイルのサムネイルのURL" alt="関連エントリーのファイルの説明|関連エントリーのファイルの説明がなければ関連エントリーファイル名" title="関連エントリーのファイルの説明|関連エントリーのファイルの説明がなければ関連エントリーファイル名" width="関連エントリーファイルのサムネイルの横幅" height="関連エントリーファイルのサムネイルの高さ" /></a></p>
        <!--{関連エントリーファイルがあってかつ関連エントリーファイルの横幅があってかつ関連エントリーファイルの高さがあれば}-->
            <p><img src="関連エントリーファイルのURL" alt="関連エントリーのファイルの説明|関連エントリーのファイルの説明がなければ関連エントリーファイル名" title="関連エントリーのファイルの説明|関連エントリーのファイルの説明がなければ関連エントリーファイル名" width="関連エントリーファイルの横幅" height="関連エントリーファイルの高さ" /></p>
        <!--{関連エントリーファイルがアレば}-->
            <p><a href="関連エントリーファイルのURL">関連エントリーのファイルの説明|関連エントリーのファイルの説明がなければ関連エントリーファイル名</a></p>
        <!--{もし関連エントリーにファイルが登録されててかつ関連エントリーにイメージが登録されてればここまで}-->
    </div>
    <!--{関連エントリー配列に情報がなければ}-->
    <ul><li>関連エントリーはありません。</li></ul>
    <!--{関連エントリー配列を'plugin_entry_relate'として繰り返して表示するここまで}-->
</div>

ページ移動

関連記事

ページ上部へ