ryuring 様
ありがとうございます!
望んだ通りの表示となりました。素晴らしいです。
なお、いただいたコードだけですと、ブログ1、2ともにランダム表示となるため、
過去ログを頼りに、特定ブログの判定を付け加え、
この様な形で利用させていただいています。
<?php
// 20210619 forum.basercms.net/t/topic/711/4
// app/Plugin/Rondom/Event/RandomModelEventListener.php
class RondomModelEventListener extends BcModelEventListener
{
// ブログの記事取得直前で処理を横取りする宣言
public $events = ['Blog.BlogPost.beforeFind'];
public function blogBlogPostBeforeFind($event)
{
// 管理画面でない場合は終了
if(BcUtil::isAdminSystem()) {
return;
}
// ブログの index ページでない場合は終了
if(!$this->isAction('Blog.Index')) {
return;
}
// $event->data[0] に 検索条件などが入ってくる
// メインの一覧の場合のみ type に customParams という
// 文字列がセットされるためそうでない場合は終了
if(empty($event->data[0]['type'])) {
return;
}
// 特定ブログの判定(entityId は、ブログ設定画面の「実体ID」 forum.basercms.net/t/topic/366/4)
$request = Router::getRequest();
if($request->params['entityId'] === '2'){
// 並び替え条件をランダムで上書き
$event->data[0]['order'][0] = 'RAND()';
}
}
}
お力添えに、心から感謝しております。
どうもありがとうございました。