BlogHelper.phpを更新されない場所に配置したい

blog_related_posts.phpを使って、関連記事からの複数のアイキャッチ画像を抽出しスライダー表示をさせたかったのですが、以下のような警告がでました。

2021-04-17 13:05:50 Warning: Warning (2): array_merge(): Expected parameter 2 to be an array, int given in [/home/users/hoge/web/lib/Baser/Plugin/Blog/View/Helper/BlogHelper.php, line 912]

BlogHelper.phpの912行目の$option変数を (array)$optionとすることで警告は出なくなったのですが、合わせて表示件数のリミットを10に変更する必要がありました。

上記変更したBlogHelper.phpを更新されない場所に移動させたいのですが可能でしょうか?

【環境情報】
・baserCMSのバージョン:4.4.2
・レンタルサーバー名:ロリポップ
・使用テーマ:bc_sample
・PHPスキル(自己評価):E

テーマフォルダ直下のHelperフォルダ内(theme/bc_sample/helper/)でうまく動きました。

3 Likes

そのアプローチだとbaserCMSをアップデートする際にBlogHelper.phpだけが
アップデートされず問題が起きる可能性があると思います。

Elements/blog_related_posts.php というファイルの中に

$relatedPosts = $this->Blog->getRelatedPosts($post);

上記のような記述があると思います。

$relatedPosts = $this->Blog->getRelatedPosts($post, array('limit'=>10);

上記のように書くことで、両方の問題を解決できると思います。いかがでしょうか?

1 Likes

関連記事からの複数のアイキャッチ画像を抽出しスライダー表示をさせたかったのですが

とのことなので、その部分を書き換える必要がありますね。

ご指摘ありがとうございます。
「その部分を書き換える必要がある」とは、どういう意味でしょうか?

複数のアイキャッチ画像を抽出してスライダー表示をするために記述を
加えた部分があると思いますが、そこはどのように書いてますでしょうか?

そういうことなんですね。ありがとうございます。

以下、当該部分です。

ご指摘いただいた、

の点は、承知しているのですが、もともと、BlogHelper.phpを更新されない場所に。。。と考えた理由は、警告が出ていたことに端を発したことだったので、「表示件数のリミットを10に変更する」は、すでにblog_related_posts.phpにて対応しておりました。

コアファイルをTheme内に移設したりといったことは、結構な頻度で行わざるを得ないケースがあるので、アップデートによる不具合が出るケースも承知しています。
このようなコアファイルを移設する場合は、要件と対象ファイル、移動先といった点を別途まとめてコメントしたファイルを保管して、そういったケースに対応すべく運用しております。

1 Likes

@yamamoto
仰っていることがようやくわかりました!
ご指摘の通りで、問題なく両方の問題を解決できていることに気がつきました。
特にBlogHelper.phpに手を入れることなく、対応することができました。
アドバイスありがとうございました。

1 Likes