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"