ヘッダーにブログの記事一覧を入れた場合のページの認識

Nori > ヘッダーにブログの記事一覧を入れた場合のページの認識 @ 2018/10/20 12:30
たびたび失礼いたします。

表題の件ですが、
bccolumnにてサイト制作中で、
同デザインのヘッダー部分にブログのコンテンツ一覧からpost.phpを引用して記事一覧を載せております。

デザインは調整が出来、おおむね問題なく機能しているのですが、
困ったことに、これを入れたことにより、ページがブログとして認識されているようで、各ページにブログの説明文が表示されていしまいます。
(試しにヘッダー部分から該当の部分(post.phpを使っている部分)を丸ごと削除すると問題は解決します。)

ブログ自体には説明文を載せたいのですが、
もちろん各固定ページには表記させたくありません。

phpは以下の通りです。


<?php
/**
 * トップページ記事一覧
 * @var array $posts
 */
?>


<?php if ($posts): ?>
<ul class="post-list clearfix">
<?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="post_info">
            	<div class="post-date"><?php $this->Blog->postDate($post, 'm.d') ?></div><div class="post-title"><?php $this->Blog->postTitle($post) ?></div>
                </div>
</li>
<?php endforeach; ?>
</ul>
<?php else: ?>
<p class="no-data"><?php echo __('記事がありません。') ?></p>
<?php endif ?>


htmlは以下の通りです。上記php名がheadernewsです。
<?php $this->BcBaser->blogPosts('news', 3, array('template'=>'headernews')); ?>


サイト構成を何をもって認識させているのかがわからないので、
どこを治せばいいのかも分かりません。

ご助言宜しくお願いいたします。

■ BaserCMSのバージョン:4.1.3
■ レンタルサーバー名:ロリポップ
■ スマートURLの利用:OFF
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:MySQL
■ PHPスキル:D

HotaruMaru > Re: ヘッダーにブログの記事一覧を入れた場合のページの認識 @ 2018/10/22 20:33
通りすがりで申し訳ございません。
Nori様でよかったでしょうか。

<?php if ($posts): ?>
〜
<?php foreach ($posts as $key => $post): ?>
〜
<?php if ($this->BcArray->first($posts, $key)): ?>
〜
<?php elseif ($this->BcArray->last($posts, $key)): ?>
〜

: → ; (コロンからセミコロンに)
にしないといけないでしょうか。

<?php $class[] = 'last' ?>
<?php endif ?>


他にもセミコロンが必要な箇所があったり、
コロンになっているところがあるように思います。

少ししか、見ていないので申し訳ございません。
もっと適切のお答えできるかたがいるかと思いましたが、
少し見て、変えてみてはと思いました。
tommy6073 > Re: ヘッダーにブログの記事一覧を入れた場合のページの認識 @ 2018/10/23 10:26
こんにちは、tommy6073です。

該当部分の出力は theme/bccolumn/Layouts ディレクトリの default.php、left_column.php、right_column.php の以下の箇所でされています:
        <?php if (!empty($this->Blog)): ?>
            <?php if ($this->Blog->descriptionExists()): ?>
                <p class="blog-description"><?php $this->Blog->description() ?></p>
            <?php endif; ?>
        <?php endif; ?>


headernews.php の中で $this->Blog->postDate を呼び出したことでBlogヘルパーがセットされ、この中の処理が走るようになっています。
そこで、Blogヘルパーがセットされているかではなく、コンテンツがブログであるかどうかを条件として判断するように書き換えることで、ブログ以外では処理が走らないようにできます:

<?php if (!empty($this->Blog)): ?>
<?php if ($this->BcBaser->isBlog()): ?>
に変更。

ご参考になればと思います。
tommy6073 > Re: ヘッダーにブログの記事一覧を入れた場合のページの認識 @ 2018/10/23 10:32
すみません、追記です。

この変更だけではコンテンツがブログだった場合、常に'news'の説明文が出力されてしまいますね。

また時間が出来た時に対応方法を探ってみようと思いますのでよろしくお願いします。
Nori > Re: ヘッダーにブログの記事一覧を入れた場合のページの認識 @ 2018/10/23 19:17
HotaruMaru 様


アドバイスありがとうございます!

修正してみます!
しかし、ご指摘いただいた部分はこのテーマを使うにあたり最初から記載されていた内容です…
他のphpにも同様の事があるのですが、他も修正すべきでしょうか?

■ BaserCMSのバージョン:4.1.3
■ レンタルサーバー名:ロリポップ
■ スマートURLの利用:OFF
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:MySQL
■ PHPスキル:D

Nori > Re: ヘッダーにブログの記事一覧を入れた場合のページの認識 @ 2018/10/23 19:23
tommy6073 様


アドバイス頂きありがとうございます!

tommy6073様のおっしゃる通りで、
ブログの使い分けはできないようです…

お手すきの時で構いませんので、
解決方法を見つけて頂けた際はご指南頂ければ幸いです。

宜しくお願いいたします

■ BaserCMSのバージョン:4.1.3
■ レンタルサーバー名:ロリポップ
■ スマートURLの利用:OFF
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:MySQL
■ PHPスキル:D

HotaruMaru > Re: ヘッダーにブログの記事一覧を入れた場合のページの認識 @ 2018/10/24 2:05
Nori様

少し見て、書き込みをすると変な返答をしてしいました。

ごめんなさい。

PHPの基本的な記述方法のことです。

bccolormnでは出力されていますので、そのままの方がいいと思います。

ちなみにbc colormnのテーマはこれですか?
また、ヘッダーにブログ投稿を入れたいとなっていましたが、
赤く囲んだ箇所でしょうか。



Elements/header.phpへの変更で赤い囲んだところへブログ機能を出力してみました。


<?php echo $this->bcbaser->blogPosts(news,3,array() ) ?>


リファーレンスを参照の上、以上の記述でheader部分への出力ができました。
http://wiki.basercms.net/ver4/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/blogPosts



<?php
/**
 * ヘッダー
 */
?>


<header id="Header">
    <div class="body-wrap">
        <div id="Logo"><?php $this->BcBaser->logo() ?></div>
        <div id="BtnMenu">
            <?php $this->BcBaser->img('sp/btn_menu.png', array('alt'=>'MENU')); ?>
        </div>
        <nav id="GrobalNavi">
            <?php $this->BcBaser->contentsMenu(); ?>
        </nav>

<br /><br />



<?php echo $this->bcbaser->blogPosts(topics,3,array() ) ?>



<br /><br />
    </div>
</header>



以上がElements/header.phpの全コードです。
はじめはなかなか表示してくれませんでしたが、キャッシュの削除など行っているうちに
表示してくれるようになりました。

ちなみにechoは記述しなくてもいいはずです。
最初にこれで出力させたので、echoを入れています。


<?php echo $this->bcbaser->blogPosts(topics,3,array() ) ?>



見てもらってわかってもらっているかもしれませんが、
blogPosts()の中の引数はtopicsはbccolormnのデフォルトで作られているブログの名前です。
bccolormnデフォルトでは他にもnewsとworksという値を入れるのが可能です。
news、topics,worksというページはブログ機能で作られているようです。
ブログを追加されたのでしたらそのブログに名前を半角英数でつけれるのでそれを変えてください。

次の数字はブログの出力数、

第3引数のarray
arrayを入れるといろいろ設定はできるようですがこのテーマのデフォルトの場合は動作してないみたいです。
新しくブログを作ると設定できるかもしれません。

tommy6073 > Re: ヘッダーにブログの記事一覧を入れた場合のページの認識 @ 2018/10/24 7:04
こんにちは、tommy6073です。

解決策を見つけることができました。

前回変更を加えた以下のコードで、
        <?php if ($this->BcBaser->isBlog()): ?>
            <?php if ($this->Blog->descriptionExists()): ?>
                <p class="blog-description"><?php $this->Blog->description() ?></p>
            <?php endif; ?>
        <?php endif; ?>

<?php if ($this->BcBaser->isBlog()): ?>

の下に、
<?php $this->Blog->setContent() ?>

を追加して、ヘルパーでブログコンテンツを再設定するようにすれば説明文が正しく出力されます。

お試しください。
Nori > Re: ヘッダーにブログの記事一覧を入れた場合のページの認識 @ 2018/10/24 10:55
HotaruMaru 様


ご返答いただきありがとうございます。
前回アドバイス頂いた内容ですが、現時点で他のページで問題もなく、
該当ページでも今回相談している部分以外で不具合もないので、
せっかくのアドバイスでしたが対応保留しておりました。

また、現時点で表示自体は出来ていて、
今回のアドバイスの方法とほぼ変わらぬ方法でやれております。

今回の当方の問題はheaderにブログを出した際のページ全体の扱いがBaserCMSでいう「固定ページ」ではなく「ブログ」扱いになってしまう為、
レイアウトで指定されているコードの関係上、本来固定ページのはずがブログの説明文が表示されていしまうという問題でした。

宜しくお願いいたします。

■ BaserCMSのバージョン:4.1.3
■ レンタルサーバー名:ロリポップ
■ スマートURLの利用:OFF
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:MySQL
■ PHPスキル:D

Nori > Re: ヘッダーにブログの記事一覧を入れた場合のページの認識 @ 2018/10/24 11:02
tommy6073 様


お疲れ様です。
ご回答ありがとうございます。

頂いたアドバイスを基に改良したところ、
おかげさまで希望通りの表示が出来ました!

ありがとうございました!

実はあと二つ質問をしております。
既に色々とご教示いただいているのですが、まだ解決に至っておりませんのでもしご迷惑でなければお助けいただければ幸いです。
宜しくお願いいたします。

ウィジットエリアのプルダウン表示方法

ブログの記事のPrev/Nextの部分の≫、≪マークの削除もしくは変更

■ BaserCMSのバージョン:4.1.3
■ レンタルサーバー名:ロリポップ
■ スマートURLの利用:OFF
■ 設置フォルダ:サブフォルダ
■ 利用しているデータベース:MySQL
■ PHPスキル:D

ログイン
ユーザー名:
パスワード:


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

検索

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

フォーラムガイド


関連リンク

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

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