diff --git a/app/code/core/Mage/Cms/Helper/Page.php b/app/code/core/Mage/Cms/Helper/Page.php
index 3de4d300260..452ae3a45e5 100644
--- a/app/code/core/Mage/Cms/Helper/Page.php
+++ b/app/code/core/Mage/Cms/Helper/Page.php
@@ -176,4 +176,67 @@ public static function getUsedInStoreConfigPaths(?array $paths = []): array
return $searchPaths;
}
+
+ /**
+ * @param self::XML_PATH_* $path
+ */
+ public static function getConfigLabelFromConfigPath(string $path): string
+ {
+ return match ($path) {
+ self::XML_PATH_NO_ROUTE_PAGE => Mage::helper('cms')->__('No Route Page'),
+ self::XML_PATH_NO_COOKIES_PAGE => Mage::helper('cms')->__('No Cookies Page'),
+ self::XML_PATH_HOME_PAGE => Mage::helper('cms')->__('Home Page'),
+ default => $path,
+ };
+ }
+
+ /**
+ * @param Mage_Adminhtml_Block_System_Config_Form::SCOPE_* $scope
+ * @throws Mage_Core_Exception
+ */
+ public static function getScopeInfoFromConfigScope(string $scope, string $scopeId): string
+ {
+ return match ($scope) {
+ Mage_Adminhtml_Block_System_Config_Form::SCOPE_DEFAULT => Mage::helper('cms')->__('Default Config'),
+ Mage_Adminhtml_Block_System_Config_Form::SCOPE_WEBSITES => Mage::app()->getWebsite($scopeId)->getName(),
+ Mage_Adminhtml_Block_System_Config_Form::SCOPE_STORES => sprintf(
+ '%s "%s"',
+ Mage::app()->getStore($scopeId)->getGroup()->getName(),
+ Mage::app()->getStore($scopeId)->getName(),
+ ),
+ };
+ }
+
+ /**
+ * @throws Mage_Core_Exception
+ */
+ public static function getValidateConfigErrorMessage(Mage_Core_Model_Resource_Db_Collection_Abstract $isUsedInConfig): string
+ {
+ $messages = [];
+
+ $data = $isUsedInConfig->getData();
+ foreach ($data as $key => $item) {
+ $path = $item['path'];
+ unset($item['config_id'], $item['path'], $item['updated_at'], $item['value']);
+ $data[$path][] = $item;
+ unset($data[$key], $key, $path);
+ }
+
+ foreach ($data as $path => $items) {
+ $scopes = [];
+ foreach ($items as $item) {
+ $scopes[] = self::getScopeInfoFromConfigScope($item['scope'], $item['scope_id']);
+ }
+
+ $messages[] = sprintf(
+ '"%s" (%s)',
+ self::getConfigLabelFromConfigPath($path),
+ implode(', ', $scopes),
+ );
+ }
+
+ unset($data, $path, $items, $item, $scopes);
+
+ return implode(', ', $messages);
+ }
}
diff --git a/app/code/core/Mage/Cms/Model/Resource/Page.php b/app/code/core/Mage/Cms/Model/Resource/Page.php
index f03ece47c59..08fa5654228 100644
--- a/app/code/core/Mage/Cms/Model/Resource/Page.php
+++ b/app/code/core/Mage/Cms/Model/Resource/Page.php
@@ -39,8 +39,9 @@ protected function _beforeDelete(Mage_Core_Model_Abstract $object)
$object->setId(null);
Mage::throwException(
Mage::helper('cms')->__(
- 'Cannot delete page, it is used in "%s".',
- implode(', ', $isUsedInConfig->getColumnValues('path')),
+ 'Cannot delete page, it is used in configuration for %s.',
+ Mage::helper('adminhtml')->getUrl('adminhtml/system_config/edit', ['section' => 'web']),
+ Mage_Cms_Helper_Page::getValidateConfigErrorMessage($isUsedInConfig),
),
);
}
@@ -79,8 +80,9 @@ protected function _beforeSave(Mage_Core_Model_Abstract $object)
$object->setIsActive(true);
Mage::getSingleton('adminhtml/session')->addWarning(
Mage::helper('cms')->__(
- 'Cannot disable page, it is used in configuration "%s".',
- implode(', ', $isUsedInConfig->getColumnValues('path')),
+ 'Cannot disable page, it is used in configuration for %s.',
+ Mage::helper('adminhtml')->getUrl('adminhtml/system_config/edit', ['section' => 'web']),
+ Mage_Cms_Helper_Page::getValidateConfigErrorMessage($isUsedInConfig),
),
);
}
@@ -282,7 +284,9 @@ protected function isValidPageIdentifier(Mage_Core_Model_Abstract $object)
public function getUsedInStoreConfigCollection(Mage_Cms_Model_Page $page, ?array $paths = []): Mage_Core_Model_Resource_Db_Collection_Abstract
{
- $storeIds = (array) $page->getStoreId();
+ $storeId = (array) $page->getStoreId(); # null on save
+ $stores = (array) $page->getStores(); # null on delete
+ $storeIds = array_merge($storeId, $stores);
$storeIds[] = Mage_Core_Model_App::ADMIN_STORE_ID;
$config = Mage::getResourceModel('core/config_data_collection')
->addFieldToFilter('value', $page->getIdentifier())
diff --git a/app/code/core/Mage/Cms/etc/system.xml b/app/code/core/Mage/Cms/etc/system.xml
index 78438587b9e..bf6806e043a 100644
--- a/app/code/core/Mage/Cms/etc/system.xml
+++ b/app/code/core/Mage/Cms/etc/system.xml
@@ -17,7 +17,7 @@
select
adminhtml/system_config_source_cms_page
- 1
+ 21
1
1
1
@@ -26,7 +26,7 @@
select
adminhtml/system_config_source_cms_page
- 2
+ 22
1
1
1
@@ -35,7 +35,7 @@
select
adminhtml/system_config_source_cms_page
- 3
+ 23
1
1
1
@@ -44,7 +44,7 @@
select
adminhtml/system_config_source_yesno
- 5
+ 25
1
1
1
diff --git a/app/locale/en_US/Mage_Cms.csv b/app/locale/en_US/Mage_Cms.csv
index 52f813fe13d..161f2aabd6d 100644
--- a/app/locale/en_US/Mage_Cms.csv
+++ b/app/locale/en_US/Mage_Cms.csv
@@ -27,10 +27,10 @@
"CMS Static Block","CMS Static Block"
"CMS Static Block Default Template","CMS Static Block Default Template"
"Cannot create new directory.","Cannot create new directory."
-"Cannot delete page, it is used in ""%s"".","Cannot delete page, it is used in ""%s""."
+"Cannot delete page, it is used in configuration for %s.","Cannot delete page, it is used in configuration for %s."
"Cannot delete directory %s.","Cannot delete directory %s."
"Cannot delete root directory %s.","Cannot delete root directory %s."
-"Cannot disable page, it is used in configuration ""%s"".","Cannot disable page, it is used in configuration ""%s""."
+"Cannot disable page, it is used in configuration for %s.","Cannot disable page, it is used in configuration for %s."
"Cannot upload file.","Cannot upload file."
"Collapse All","Collapse All"
"Content","Content"
diff --git a/skin/adminhtml/default/openmage/override.css b/skin/adminhtml/default/openmage/override.css
index b5984e00277..5dcb9816c22 100644
--- a/skin/adminhtml/default/openmage/override.css
+++ b/skin/adminhtml/default/openmage/override.css
@@ -748,6 +748,10 @@ div.autocomplete ul li.selected {
border: 1px solid #dfc97a !important;
color: #2f2f2f !important;
}
+.notice-msg a {
+ color: #2f2f2f !important;
+ text-decoration: underline;
+}
.error-msg {
background-image: url(images/icon-error.png) !important;
@@ -758,6 +762,10 @@ div.autocomplete ul li.selected {
border: 1px solid #963535 !important;
color: #963535 !important;
}
+.error-msg a {
+ color: #963535 !important;
+ text-decoration: underline;
+}
.success-msg {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' style='width:24px;height:24px' viewBox='0 0 24 24'%3E%3Cpath fill='%23185b00' d='M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z' /%3E%3C/svg%3E") !important;
@@ -768,6 +776,10 @@ div.autocomplete ul li.selected {
border: 1px solid #ceceb6 !important;
color: #185b00 !important;
}
+.success-msg a {
+ color: #185b00 !important;
+ text-decoration: underline;
+}
.warning-msg {
background-image: url(images/information-variant.svg) !important;
@@ -778,6 +790,10 @@ div.autocomplete ul li.selected {
border: 1px solid #d87e34 !important;
color: #2f2f2f !important;
}
+.warning-msg a {
+ color: #2f2f2f !important;
+ text-decoration: underline;
+}
.links-feed {
margin-top: 10px;
diff --git a/skin/adminhtml/default/openmage/override.css.map b/skin/adminhtml/default/openmage/override.css.map
index 0ee560c3411..906d257c18b 100644
--- a/skin/adminhtml/default/openmage/override.css.map
+++ b/skin/adminhtml/default/openmage/override.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["scss/override.scss","scss/_variables.scss","scss/_base.scss","scss/_fonts.scss"],"names":[],"mappings":"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","file":"override.css"}
\ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["scss/override.scss","scss/_variables.scss","scss/_base.scss","scss/_fonts.scss"],"names":[],"mappings":"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","file":"override.css"}
\ No newline at end of file
diff --git a/skin/adminhtml/default/openmage/scss/override.scss b/skin/adminhtml/default/openmage/scss/override.scss
index f74e0b92e75..c7bd0ae9018 100644
--- a/skin/adminhtml/default/openmage/scss/override.scss
+++ b/skin/adminhtml/default/openmage/scss/override.scss
@@ -796,6 +796,10 @@ div {
background-position: 8px center !important;
border: 1px solid $color_chenin_approx !important;
color: $color_dark_grey !important;
+ a {
+ color: $color_dark_grey !important;
+ text-decoration: underline;
+ }
}
.error-msg {
@@ -807,6 +811,10 @@ div {
background-position: 8px center !important;
border: 1px solid $color_sanguine_brown_approx !important;
color: $color_sanguine_brown_approx !important;
+ a {
+ color: $color_sanguine_brown_approx !important;
+ text-decoration: underline;
+ }
}
.success-msg {
@@ -818,6 +826,10 @@ div {
background-position: 8px center !important;
border: 1px solid $color_foggy_gray_approx !important;
color: $color_san_felix_approx !important;
+ a {
+ color: $color_san_felix_approx !important;
+ text-decoration: underline;
+ }
}
.warning-msg {
@@ -829,6 +841,10 @@ div {
background-position: 8px center !important;
border: 1px solid $color_brandy_punch_approx !important;
color: $color_dark_grey !important;
+ a {
+ color: $color_dark_grey !important;
+ text-decoration: underline;
+ }
}
.links-feed {
diff --git a/tests/unit/Mage/Cms/Helper/PageTest.php b/tests/unit/Mage/Cms/Helper/PageTest.php
index 284e0dea6ed..f54b712a50a 100644
--- a/tests/unit/Mage/Cms/Helper/PageTest.php
+++ b/tests/unit/Mage/Cms/Helper/PageTest.php
@@ -20,6 +20,7 @@ final class PageTest extends OpenMageTest
use CmsTrait;
/**
+ * @covers Mage_Cms_Helper_Page::getUsedInStoreConfigPaths()
* @dataProvider provideGetUsedInStoreConfigPaths
* @group Helper
*/
@@ -27,4 +28,24 @@ public function testGetUsedInStoreConfigPaths(array $expectedResult, ?array $pat
{
self::assertSame($expectedResult, Subject::getUsedInStoreConfigPaths($path));
}
+
+ /**
+ * @covers Mage_Cms_Helper_Page::getConfigLabelFromConfigPath()
+ * @dataProvider provideGetConfigLabelFromConfigPath
+ * @group Helper
+ */
+ public function testGetConfigLabelFromConfigPath(string $expectedResult, string $paths): void
+ {
+ self::assertSame($expectedResult, Subject::getConfigLabelFromConfigPath($paths));
+ }
+
+ /**
+ * @covers Mage_Cms_Helper_Page::getScopeInfoFromConfigScope()
+ * @dataProvider provideGetScopeInfoFromConfigScope
+ * @group Helper
+ */
+ public function testGetScopeInfoFromConfigScope(string $expectedResult, string $scope, string $scopeId): void
+ {
+ self::assertStringStartsWith($expectedResult, Subject::getScopeInfoFromConfigScope($scope, $scopeId));
+ }
}
diff --git a/tests/unit/Traits/DataProvider/Mage/Cms/CmsTrait.php b/tests/unit/Traits/DataProvider/Mage/Cms/CmsTrait.php
index 9b02b997d0e..d6df9624f30 100644
--- a/tests/unit/Traits/DataProvider/Mage/Cms/CmsTrait.php
+++ b/tests/unit/Traits/DataProvider/Mage/Cms/CmsTrait.php
@@ -11,6 +11,7 @@
namespace OpenMage\Tests\Unit\Traits\DataProvider\Mage\Cms;
use Generator;
+use Mage_Adminhtml_Block_System_Config_Form;
use Mage_Cms_Helper_Page;
trait CmsTrait
@@ -45,6 +46,45 @@ public function provideGetUsedInStoreConfigPaths(): Generator
];
}
+ public function provideGetConfigLabelFromConfigPath(): Generator
+ {
+ yield 'home page' => [
+ 'Home Page',
+ Mage_Cms_Helper_Page::XML_PATH_HOME_PAGE,
+ ];
+
+ yield 'no cookie page' => [
+ 'No Cookies Page',
+ Mage_Cms_Helper_Page::XML_PATH_NO_COOKIES_PAGE,
+ ];
+
+ yield 'no route page' => [
+ 'No Route Page',
+ Mage_Cms_Helper_Page::XML_PATH_NO_ROUTE_PAGE,
+ ];
+ }
+
+ public function provideGetScopeInfoFromConfigScope(): Generator
+ {
+ yield 'default' => [
+ 'Default Config',
+ Mage_Adminhtml_Block_System_Config_Form::SCOPE_DEFAULT,
+ '1',
+ ];
+
+ yield 'websites' => [
+ 'Main Website',
+ Mage_Adminhtml_Block_System_Config_Form::SCOPE_WEBSITES,
+ '1',
+ ];
+
+ yield 'stores' => [
+ 'Main Website',
+ Mage_Adminhtml_Block_System_Config_Form::SCOPE_STORES,
+ '1',
+ ];
+ }
+
public function provideGetShortFilename(): Generator
{
yield 'full length' => [