From 1fa90044c6ee6d55d1da78ea388a3b69ddeaaf32 Mon Sep 17 00:00:00 2001 From: Fabrizio Balliano Date: Mon, 14 Oct 2024 13:54:22 +0200 Subject: [PATCH] OM PR 4243 OpenMage/magento-lts#4243 --- .../Adminhtml/Block/Catalog/Product/Grid.php | 3 +- .../core/Mage/Adminhtml/Block/Review/Grid.php | 5 ++- .../Mage/Adminhtml/Block/Sales/Order/Grid.php | 14 +++++--- app/code/core/Mage/Rss/Block/Order/New.php | 8 ++++- app/code/core/Mage/Rss/Helper/Data.php | 32 ++++++++++++++++++- app/code/core/Mage/Rss/etc/config.xml | 5 +++ app/code/core/Mage/Rss/etc/system.xml | 22 +++++++------ app/locale/en_US/Mage_Rss.csv | 1 + 8 files changed, 69 insertions(+), 21 deletions(-) diff --git a/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Grid.php b/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Grid.php index b672f4346..5fbe76249 100644 --- a/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Grid.php +++ b/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Grid.php @@ -291,8 +291,7 @@ protected function _prepareColumns() ); if (Mage::helper('catalog')->isModuleEnabled('Mage_Rss') && - Mage::helper('rss')->isRssEnabled() && - Mage::getStoreConfigFlag('rss/catalog/notifystock') + Mage::helper('rss')->isRssAdminCatalogNotifyStockEnabled() ) { $this->addRssList('rss/catalog/notifystock', Mage::helper('catalog')->__('Notify Low Stock RSS')); } diff --git a/app/code/core/Mage/Adminhtml/Block/Review/Grid.php b/app/code/core/Mage/Adminhtml/Block/Review/Grid.php index 123ddb6e6..2a3210b2d 100644 --- a/app/code/core/Mage/Adminhtml/Block/Review/Grid.php +++ b/app/code/core/Mage/Adminhtml/Block/Review/Grid.php @@ -188,7 +188,7 @@ protected function _prepareColumns() 'ret' => (Mage::registry('usePendingFilter')) ? 'pending' : null ] ], - 'field' => 'id' + 'field' => 'id' ] ], 'filter' => false, @@ -197,8 +197,7 @@ protected function _prepareColumns() ); if (Mage::helper('catalog')->isModuleEnabled('Mage_Rss') && - Mage::helper('rss')->isRssEnabled() && - Mage::getStoreConfigFlag('rss/catalog/review') + Mage::helper('rss')->isRssAdminCatalogReviewEnabled() ) { $this->addRssList('rss/catalog/review', Mage::helper('catalog')->__('Pending Reviews RSS')); } diff --git a/app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php b/app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php index 2a004b75d..1eedbc39d 100644 --- a/app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php +++ b/app/code/core/Mage/Adminhtml/Block/Sales/Order/Grid.php @@ -140,11 +140,15 @@ protected function _prepareColumns() ); } - if (Mage::helper('catalog')->isModuleEnabled('Mage_Rss') && - Mage::helper('rss')->isRssEnabled() && - Mage::getStoreConfigFlag('rss/order/new') - ) { - $this->addRssList('rss/order/new', Mage::helper('sales')->__('New Order RSS')); + if (Mage::helper('sales')->isModuleOutputEnabled('Mage_Rss')) { + $filterString = $this->getParam($this->getVarNameFilter()); + $filter = Mage::helper('adminhtml')->prepareFilterString($filterString); + $storeId = array_key_exists('store_id', $filter) ? $filter['store_id'] : null; + + if (Mage::helper('rss')->isRssAdminOrderNewEnabled($storeId)) { + $slug = $storeId ? '/store/' . $storeId : ''; + $this->addRssList('rss/order/new' . $slug, Mage::helper('sales')->__('New Order RSS')); + } } $this->addExportType('*/*/exportCsv', Mage::helper('sales')->__('CSV')); diff --git a/app/code/core/Mage/Rss/Block/Order/New.php b/app/code/core/Mage/Rss/Block/Order/New.php index 735e3e576..ca984aa44 100644 --- a/app/code/core/Mage/Rss/Block/Order/New.php +++ b/app/code/core/Mage/Rss/Block/Order/New.php @@ -43,9 +43,11 @@ protected function _construct() #[\Override] protected function _toHtml() { + $storeId = $this->getRequest()->getParam('store'); $order = Mage::getModel('sales/order'); + $period = Mage::helper('rss')->getRssAdminOrderNewPeriod($storeId); $passDate = $order->getResource()->formatDate( - mktime(0, 0, 0, (int)date('m'), (int)date('d') - 7) + mktime(0, 0, 0, (int)date('m'), (int)date('d') - $period) ); $newurl = Mage::helper('adminhtml')->getUrl('adminhtml/sales_order', ['_secure' => true, '_nosecret' => true]); @@ -64,6 +66,10 @@ protected function _toHtml() ->addAttributeToSort('created_at', 'desc') ; + if ($storeId) { + $collection->addAttributeToFilter('store_id', $storeId); + } + $detailBlock = Mage::getBlockSingleton('rss/order_details'); Mage::dispatchEvent('rss_order_new_collection_select', ['collection' => $collection]); diff --git a/app/code/core/Mage/Rss/Helper/Data.php b/app/code/core/Mage/Rss/Helper/Data.php index 777429d39..e9698828c 100644 --- a/app/code/core/Mage/Rss/Helper/Data.php +++ b/app/code/core/Mage/Rss/Helper/Data.php @@ -20,7 +20,11 @@ class Mage_Rss_Helper_Data extends Mage_Core_Helper_Abstract /** * Config path to RSS field */ - public const XML_PATH_RSS_ACTIVE = 'rss/config/active'; + public const XML_PATH_RSS_ACTIVE = 'rss/config/active'; + public const XML_PATH_RSS_ADMIN_CATALOG_NOTIFYSTOCK = 'rss/admin_catalog/notifystock'; + public const XML_PATH_RSS_ADMIN_CATALOG_REVIEW = 'rss/admin_catalog/review'; + public const XML_PATH_RSS_ADMIN_ORDER_NEW = 'rss/admin_order/new'; + public const XML_PATH_RSS_ADMIN_ORDER_NEW_PERIOD = 'rss/admin_order/new_period'; protected $_moduleName = 'Mage_Rss'; @@ -127,4 +131,30 @@ public function isRssEnabled() { return Mage::getStoreConfigFlag(self::XML_PATH_RSS_ACTIVE); } + + public function isRssAdminCatalogNotifyStockEnabled(): bool + { + return $this->isRssEnabled() && Mage::getStoreConfigFlag(self::XML_PATH_RSS_ADMIN_CATALOG_NOTIFYSTOCK); + } + + public function isRssAdminCatalogReviewEnabled(): bool + { + return $this->isRssEnabled() && Mage::getStoreConfigFlag(self::XML_PATH_RSS_ADMIN_CATALOG_REVIEW); + } + + /** + * @param null|string|bool|int|Mage_Core_Model_Store $store + */ + public function isRssAdminOrderNewEnabled($store = null): bool + { + return $this->isRssEnabled() && Mage::getStoreConfigFlag(self::XML_PATH_RSS_ADMIN_ORDER_NEW, $store); + } + + /** + * @param null|string|bool|int|Mage_Core_Model_Store $store + */ + public function getRssAdminOrderNewPeriod($store = null): int + { + return (int)Mage::getStoreConfig(self::XML_PATH_RSS_ADMIN_ORDER_NEW_PERIOD, $store); + } } diff --git a/app/code/core/Mage/Rss/etc/config.xml b/app/code/core/Mage/Rss/etc/config.xml index 44a0c07b8..fa33c5c55 100644 --- a/app/code/core/Mage/Rss/etc/config.xml +++ b/app/code/core/Mage/Rss/etc/config.xml @@ -108,6 +108,11 @@ + + + 7 + + diff --git a/app/code/core/Mage/Rss/etc/system.xml b/app/code/core/Mage/Rss/etc/system.xml index e01688aaa..e7a2b8deb 100644 --- a/app/code/core/Mage/Rss/etc/system.xml +++ b/app/code/core/Mage/Rss/etc/system.xml @@ -46,7 +46,7 @@ 1 1 - + select adminhtml/system_config_source_enabledisable @@ -136,7 +136,7 @@ 1 1 - + Enabling can increase security risk by exposing some order details. select @@ -170,8 +170,6 @@ 5 1 - 1 - 1 @@ -179,8 +177,6 @@ adminhtml/system_config_source_enabledisable 10 1 - 1 - 1 @@ -188,8 +184,6 @@ adminhtml/system_config_source_enabledisable 20 1 - 1 - 1 @@ -200,7 +194,7 @@ 1 1 - + select adminhtml/system_config_source_enabledisable @@ -209,6 +203,16 @@ 1 1 + + + validate-digits + 20 + 1 + 1 + 1 + 1 + required-entry validate-digits validate-greater-than-zero + diff --git a/app/locale/en_US/Mage_Rss.csv b/app/locale/en_US/Mage_Rss.csv index b24f56c7c..0174f54ee 100644 --- a/app/locale/en_US/Mage_Rss.csv +++ b/app/locale/en_US/Mage_Rss.csv @@ -29,6 +29,7 @@ "Message:","Message:" "Miscellaneous Feeds","Miscellaneous Feeds" "New Order Notification","New Order Notification" +"New Order Period (days)","New Order Period (days)" "New Orders","New Orders" "New Products","New Products" "New Products from %s","New Products from %s"