■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

TOPページのアイキャッチ画像について

pupurin3 > TOPページのアイキャッチ画像について @ 2015/5/30 14:49
いつもお世話になっております。

bcColorsテーマ3.1.1を使用しておりますが、TOPページ下段にある「Works」の箇所は実績ブログのアイキャッチ画像が表示されておりますが、
こちらのアイキャッチ画像を他のブログ(galleryworks)のものを表示する方法を教えて下さい。

theme/bccolors/Elements/toppage.php

<div id="Works" class="wrap clearfix">
<h2><a href="galleryworks">ギャラリー</a></h2>
<div id="WorksWrap">
<?php $this->BcBaser->blogPosts('galleryworks', 12) ?>
</div>
</div><!-- /#Works -->


ブログタイトルの箇所を「galleryworks」に変更したところ、ブログのタイトル、テキストリンクのみはgalleryworksブログに変更されましたが
アイキャッチ画像は表示されず画像の記事リンクはテンプレートのままとなっております。

http://forum.basercms.net/modules/newbb/viewtopic.php?topic_id=1726&forum=3&post_id=6479#forumpost6479
こちらの記事が関連のような気がするのですが、
php初心者のため、解決方法がよく分からないままとなっております。

よろしくお願いいたします。


■ BaserCMSのバージョン:3.0.2
■ レンタルサーバー名:ミライレンタルサーバ
■ スマートURLの利用: [OFF]
■ 設置フォルダ: [サブフォルダ]
■ 利用しているデータベース: [MySQL]
■ phpバージョン: [5.2.17]
■ PHPスキル(自己評価): [ E ]
goichi > Re: TOPページのアイキャッチ画像について @ 2015/5/31 20:33
こんにちは(^^
このテーマの作り方の問題っぽいです。

ブログに関する表示を行う、ブログのコンテンツテンプレート(表示用の雛形)は、お使いのテーマのフォルダ内にある「Blog」フォルダに入っています。(フォルダ単位となっており、bcColorsでは「default」の他に、「works」「blog」があるようです。)

ここで「works」というコンテンツテンプレートを覗いてみると、一覧表示を行っている「posts.php」のアイキャッチの表示部分に、次のような記載があります。
<?php $eyeCatch = '/files/blog/works/blog_posts/'.$post['BlogPost']['eye_catch'] ?>

問題は「/files/blog/works/blog_posts/」というように、worksフォルダにある画像が指定されてしまっている事ではないでしょうか?(いま表示させたいのは、ブログ「works」ではなく「galleryworks」なのですから。)

おそらく「galleryworks」で設定したアイキャッチは、別の場所に保存されているとおもいます。例えば、
/files/blog/galleryworks/blog_posts/
などの中です。もしも、そこに画像があるのであれば、新しいコンテンツテンプレートを作って、ブログ「galleryworks」では、新しいコンテンツテンプレートを使うようにすると良いのではないでしょうか?

作り方は簡単です。まずコンテンツテンプレート「works」をコピーして「galleryworks」として設置します。
/app/webroor/theme/お使いのテーマ/Blog/galleryworks/
という感じになると思います。

関数blogPosts()にて呼び出される記事一覧表示は、この中の「posts.php」を使っています。
前述のとおり、ここの「/files/blog/works/blog_posts/」という部分を書き換えてしまえばOKだと思います。

ちょっとざっくりした説明でわかりづらいと思いますが、新しく作ったコンテンツテンプレート「galleryworks」を使うように、ブログ設定を変更して完了です。お試しください。

pupurin3 > Re: TOPページのアイキャッチ画像について @ 2015/6/1 11:05
いつもお世話になります。

上記説明通り新しいテンプレートをコピーにて製作し、「/files/blog/galleryworks/blog_posts/」に書き換えたところ、
TOPページのアイキャッチ画像はgalleryworksの画像に変わりました。

ただ、そのアイキャッチ画像のリンク先はworksブログのままで、アイキャッチ画像の正しい記事へのリンクへ変更できませんでした。

/app/webroor/theme/bcColors/Blog/galleryworks/posts.php
?>
<?php if ($posts): ?>
<ul id="WorksImage">
<?php foreach ($posts as $key => $post): ?>
<?php $class = array('clearfix', 'post-' . ($key + 1)) ?>
<?php if ($this->BcArray->first($posts, $key)): ?>
<?php $class = 'first' ?>
<?php elseif ($this->BcArray->last($posts, $key)): ?>
<?php $class = 'last' ?>
<?php endif ?>
<li class="<?php echo implode(' ', $class) ?>">
<div class="eye-catch">
<?php //$this->Blog->eyeCatch($post) ?>
<!--<?php $uri = $this->BcBaser->getRoot().$post.'/archives/'.$post; ?>
<a href="<?php echo $uri ?>">
<?php //$this->Blog->eyeCatch($post, array('link'=>false)) ?>
<?php //$this->Blog->eyeCatch($post, array('noimage'=>'/theme/bccolors/img/blog/works/noimage.png')) ?>
</a>-->
<?php //$eyeCatch = $this->BcBaser->getRoot().'files/blog/galleryworks/blog_posts/'.$post ?>
<?php $eyeCatch = '/files/blog/galleryworks/blog_posts/'.$post ?>
<?php $this->BcBaser->img($eyeCatch, array('url'=> array('admin'=>false, 'plugin'=>'', 'controller'=>'works', 'action'=>'archives', $post))) ?>
<?php //$this->Blog->eyeCatch($post, array('noimage'=>'/theme/bccolors/img/blog/works/noimage.png')) ?>
</div>
<h3><?php $this->Blog->postTitle($post) ?></h3>
</li>
<?php endforeach; ?>
</ul>
<?php else: ?>
<p class="no-data">記事がありません</p>
<?php endif ?>


noimage.pngを読み込む箇所のみはworksブログに画像がありますので、変更しておりません。

引き続きよろしくお願いいたします。
goichi > Re: TOPページのアイキャッチ画像について @ 2015/6/1 22:03
画像を出力するimg()の中で、リンク先を指定するオプション「url」の中身が「works」で設定されているように見えます。
pupurin3 > Re: TOPページのアイキャッチ画像について @ 2015/6/2 18:51
解決いたしました。本当にありがとうございました。
ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
5 人のユーザが現在オンラインです。 (5 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 5