diff --git a/plugins/bc-admin-third/templates/plugin/BcThemeConfig/Admin/ThemeConfigs/index.php b/plugins/bc-admin-third/templates/plugin/BcThemeConfig/Admin/ThemeConfigs/index.php index 66da504354..8eb7c25efd 100644 --- a/plugins/bc-admin-third/templates/plugin/BcThemeConfig/Admin/ThemeConfigs/index.php +++ b/plugins/bc-admin-third/templates/plugin/BcThemeConfig/Admin/ThemeConfigs/index.php @@ -66,6 +66,10 @@   [] #BcAdminForm->control('color_hover', ['type' => 'text', 'size' => 6, 'class' => 'bca-textbox__input color-picker']) ?> + BcAdminForm->error('color_main') ?> + BcAdminForm->error('color_sub') ?> + BcAdminForm->error('color_link') ?> + BcAdminForm->error('color_hover') ?> diff --git a/plugins/bc-theme-config/src/Model/Table/ThemeConfigsTable.php b/plugins/bc-theme-config/src/Model/Table/ThemeConfigsTable.php index fae47d4337..20c40522a9 100644 --- a/plugins/bc-theme-config/src/Model/Table/ThemeConfigsTable.php +++ b/plugins/bc-theme-config/src/Model/Table/ThemeConfigsTable.php @@ -84,6 +84,22 @@ public function validationKeyValue(Validator $validator): Validator ] ]); + // テーマカラー + $validator + ->scalar('color_main') + ->regex('color_main', '/^([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/', __d('baser_core', '[メイン]はカラーコード形式で入力してください。')); + + $validator + ->scalar('color_sub') + ->regex('color_sub', '/^([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/', __d('baser_core', '[サブ]はカラーコード形式で入力してください。')); + + $validator + ->scalar('color_link') + ->regex('color_link', '/^([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/', __d('baser_core', '[テキストリンク]はカラーコード形式で入力してください。')); + $validator + ->scalar('color_hover') + ->regex('color_hover', '/^([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/', __d('baser_core', '[テキストホバー]はカラーコード形式で入力してください。')); + // main_image_1 $validator->add('main_image_1', [ 'fileExt' => [ diff --git a/plugins/bc-theme-config/tests/TestCase/Model/Table/ThemeConfigTest.php b/plugins/bc-theme-config/tests/TestCase/Model/Table/ThemeConfigTableTest.php similarity index 73% rename from plugins/bc-theme-config/tests/TestCase/Model/Table/ThemeConfigTest.php rename to plugins/bc-theme-config/tests/TestCase/Model/Table/ThemeConfigTableTest.php index 7cf6493c93..877bd9d7ae 100644 --- a/plugins/bc-theme-config/tests/TestCase/Model/Table/ThemeConfigTest.php +++ b/plugins/bc-theme-config/tests/TestCase/Model/Table/ThemeConfigTableTest.php @@ -18,7 +18,7 @@ * Class BcThemeConfigTest * @property ThemeConfigsTable $ThemeConfigsTable */ -class ThemeConfigTest extends BcTestCase +class ThemeConfigTableTest extends BcTestCase { /** @@ -108,4 +108,32 @@ public function test_validationKeyValue() $this->assertEquals('許可されていないファイルです。', current($errors['main_image_5'])); } + /** + * test validationKeyValue color + */ + public function test_validationKeyValue_color() + { + $validator = $this->ThemeConfigsTable->getValidator('keyValue'); + //値は3桁と6桁ではない場合 + $errors = $validator->validate([ + 'color_main' => '1', + 'color_sub' => '12', + 'color_link' => '1234', + 'color_hover' => '1234567', + ]); + $this->assertEquals('[メイン]はカラーコード形式で入力してください。', current($errors['color_main'])); + $this->assertEquals('[サブ]はカラーコード形式で入力してください。', current($errors['color_sub'])); + $this->assertEquals('[テキストリンク]はカラーコード形式で入力してください。', current($errors['color_link'])); + $this->assertEquals('[テキストホバー]はカラーコード形式で入力してください。', current($errors['color_hover'])); + + //値は3桁と6桁場合 + $errors = $validator->validate([ + 'color_main' => '123', + 'color_sub' => 'abc', + 'color_link' => 'ABCFFF', + 'color_hover' => '123456', + ]); + $this->assertCount(0, $errors); + } + }