From 8e547b791c662d2b9d01dc9c26ca065f56a604a6 Mon Sep 17 00:00:00 2001 From: sakaguchi Date: Wed, 3 Jun 2026 22:27:36 +0900 Subject: [PATCH] =?UTF-8?q?fix=20#3621=20=E3=80=90=E3=83=97=E3=83=A9?= =?UTF-8?q?=E3=82=B0=E3=82=A4=E3=83=B3=E3=80=91BcBaserHelper->getContentsN?= =?UTF-8?q?ame=E3=81=A7=E3=83=97=E3=83=A9=E3=82=B0=E3=82=A4=E3=83=B3?= =?UTF-8?q?=E3=81=AE=E3=82=B3=E3=83=B3=E3=83=88=E3=83=AD=E3=83=BC=E3=83=A9?= =?UTF-8?q?=E3=83=BC=E5=90=8D=E3=81=8C=E5=8F=96=E5=BE=97=E3=81=A7=E3=81=8D?= =?UTF-8?q?=E3=81=9Adefault=E3=81=AB=E3=81=AA=E3=82=8B=E4=BB=B6=E3=82=92?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../baser-core/src/View/Helper/BcBaserHelper.php | 6 +++--- .../TestCase/View/Helper/BcBaserHelperTest.php | 13 +++++++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/plugins/baser-core/src/View/Helper/BcBaserHelper.php b/plugins/baser-core/src/View/Helper/BcBaserHelper.php index bf019fe469..301fb4e16a 100755 --- a/plugins/baser-core/src/View/Helper/BcBaserHelper.php +++ b/plugins/baser-core/src/View/Helper/BcBaserHelper.php @@ -743,8 +743,8 @@ public function getContentsName($detail = false, $options = []) if (isset($url[1])) $url1 = $url[1]; if (isset($url[2])) $url2 = $url[2]; - // 固定ページの場合 - if (!BcUtil::isAdminSystem()) { + // 固定ページの場合(プラグインルーティング時を除く) + if (!BcUtil::isAdminSystem() && (!$plugin || $plugin === 'BaserCore')) { $pageUrl = h($request->getPath()); if ($pageUrl === false) $pageUrl = '/'; @@ -758,7 +758,7 @@ public function getContentsName($detail = false, $options = []) $aryUrl = explode('/', $pageUrl); } else { // プラグインルーティングの場合 - if ((($url1 == '' && in_array($action, ['index', 'mobile_index', 'smartphone_index'])) || ($url1 == $action)) && $url2 != $action && $plugin) { + if ((($url1 == '' && in_array($action, ['index', 'mobile_index', 'smartphone_index'], true)) || ($url1 == $action)) && $url2 != $action && $plugin) { $prefix = $plugin = ''; $controller = $url0; } diff --git a/plugins/baser-core/tests/TestCase/View/Helper/BcBaserHelperTest.php b/plugins/baser-core/tests/TestCase/View/Helper/BcBaserHelperTest.php index cb3b05d805..3c5df6e77a 100644 --- a/plugins/baser-core/tests/TestCase/View/Helper/BcBaserHelperTest.php +++ b/plugins/baser-core/tests/TestCase/View/Helper/BcBaserHelperTest.php @@ -569,11 +569,17 @@ public function testGetContentsName($expects, $url, $detail = false, $options = if (!empty($options['language'])){ $_SERVER['HTTP_ACCEPT_LANGUAGE'] = $options['language']; - unset($options['device']); + unset($options['language']); + } + + $request = $this->getRequest($url); + if (!empty($options['requestParams'])) { + $request = $request->withAttribute('params', array_merge((array) $request->getAttribute('params'), $options['requestParams'])); + unset($options['requestParams']); } $this->BcBaser = new BcBaserHelper(new View()); - $this->BcBaser->getView()->setRequest($this->getRequest($url)); + $this->BcBaser->getView()->setRequest($request); if (!empty($options['error'])) { $reflectionClass = new ReflectionClass(get_class($this->BcBaser->getView())); @@ -616,6 +622,9 @@ public static function getContentsNameDataProvider() ['Hoge', '/about', false, ['default' => 'Hoge']], ['service_service1', '/service/service1', true, ['underscore' => true]], ['Error!!!', '/', false, ['error' => 'Error!!!']], + // プラグイン(フロント) + ['MailMessages', '/mail_messages', false, ['requestParams' => ['plugin' => 'BcMail', 'controller' => 'MailMessages', 'action' => 'index']]], + ['MailMessagesIndex', '/mail_messages', true, ['requestParams' => ['plugin' => 'BcMail', 'controller' => 'MailMessages', 'action' => 'index']]], // スマートフォン ['Home', '/s/', false, ['device' => 'iPhone']], // 英語サイト