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);
+ }
+
}