Public Member Functions | |
indexAction () | |
newAction () | |
editAction () | |
saveAction () | |
deleteAction () | |
newConditionHtmlAction () | |
chooserAction () | |
newActionHtmlAction () | |
applyRulesAction () | |
addToAlersAction () | |
Protected Member Functions | |
_initAction () | |
_isAllowed () |
Definition at line 28 of file CatalogController.php.
_initAction | ( | ) | [protected] |
Definition at line 30 of file CatalogController.php.
00031 { 00032 $this->loadLayout() 00033 ->_setActiveMenu('promo/catalog') 00034 ->_addBreadcrumb(Mage::helper('catalogrule')->__('Promotions'), Mage::helper('catalogrule')->__('Promotions')) 00035 ; 00036 return $this; 00037 }
_isAllowed | ( | ) | [protected] |
Reimplemented from Mage_Adminhtml_Controller_Action.
Definition at line 261 of file CatalogController.php.
00262 { 00263 return Mage::getSingleton('admin/session')->isAllowed('promo/catalog'); 00264 }
addToAlersAction | ( | ) |
Definition at line 251 of file CatalogController.php.
00252 { 00253 $alerts = Mage::getResourceModel('customeralert/type')->getAlertsForCronChecking(); 00254 foreach ($alerts as $val) { 00255 Mage::getSingleton('customeralert/config')->getAlertByType('price_is_changed') 00256 ->setParamValues($val) 00257 ->updateForPriceRule(); 00258 } 00259 }
applyRulesAction | ( | ) |
Apply all active catalog price rules
Definition at line 232 of file CatalogController.php.
00233 { 00234 try { 00235 $resource = Mage::getResourceSingleton('catalogrule/rule'); 00236 $resource->applyAllRulesForDateRange(); 00237 Mage::app()->removeCache('catalog_rules_dirty'); 00238 Mage::getSingleton('adminhtml/session')->addSuccess( 00239 Mage::helper('catalogrule')->__('Rules were successfully applied') 00240 ); 00241 } catch (Exception $e) { 00242 Mage::getSingleton('adminhtml/session')->addError( 00243 Mage::helper('catalogrule')->__('Unable to apply rules') 00244 ); 00245 throw $e; 00246 } 00247 00248 $this->_redirect('*/*'); 00249 }
chooserAction | ( | ) |
Definition at line 186 of file CatalogController.php.
00187 { 00188 switch ($this->getRequest()->getParam('attribute')) { 00189 case 'sku': 00190 $type = 'adminhtml/promo_widget_chooser_sku'; 00191 break; 00192 00193 case 'categories': 00194 $type = 'adminhtml/promo_widget_chooser_categories'; 00195 break; 00196 } 00197 if (!empty($type)) { 00198 $block = $this->getLayout()->createBlock($type); 00199 if ($block) { 00200 $this->getResponse()->setBody($block->toHtml()); 00201 } 00202 } 00203 }
deleteAction | ( | ) |
Definition at line 140 of file CatalogController.php.
00141 { 00142 if ($id = $this->getRequest()->getParam('id')) { 00143 try { 00144 $model = Mage::getModel('catalogrule/rule'); 00145 $model->load($id); 00146 $model->delete(); 00147 Mage::app()->saveCache(1, 'catalog_rules_dirty'); 00148 Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('catalogrule')->__('Rule was successfully deleted')); 00149 $this->_redirect('*/*/'); 00150 return; 00151 } 00152 catch (Exception $e) { 00153 Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); 00154 $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id'))); 00155 return; 00156 } 00157 } 00158 Mage::getSingleton('adminhtml/session')->addError(Mage::helper('catalogrule')->__('Unable to find a page to delete')); 00159 $this->_redirect('*/*/'); 00160 }
editAction | ( | ) |
Definition at line 56 of file CatalogController.php.
00057 { 00058 $id = $this->getRequest()->getParam('id'); 00059 $model = Mage::getModel('catalogrule/rule'); 00060 00061 if ($id) { 00062 $model->load($id); 00063 if (! $model->getRuleId()) { 00064 Mage::getSingleton('adminhtml/session')->addError(Mage::helper('catalogrule')->__('This rule no longer exists')); 00065 $this->_redirect('*/*'); 00066 return; 00067 } 00068 } 00069 00070 // set entered data if was error when we do save 00071 $data = Mage::getSingleton('adminhtml/session')->getPageData(true); 00072 if (!empty($data)) { 00073 $model->addData($data); 00074 } 00075 $model->getConditions()->setJsFormObject('rule_conditions_fieldset'); 00076 00077 Mage::register('current_promo_catalog_rule', $model); 00078 00079 $block = $this->getLayout()->createBlock('adminhtml/promo_catalog_edit') 00080 ->setData('action', $this->getUrl('*/promo_catalog/save')); 00081 00082 $this->_initAction(); 00083 00084 $this->getLayout()->getBlock('head') 00085 ->setCanLoadExtJs(true) 00086 ->setCanLoadRulesJs(true); 00087 00088 $this 00089 ->_addBreadcrumb($id ? Mage::helper('catalogrule')->__('Edit Rule') : Mage::helper('catalogrule')->__('New Rule'), $id ? Mage::helper('catalogrule')->__('Edit Rule') : Mage::helper('catalogrule')->__('New Rule')) 00090 ->_addContent($block) 00091 ->_addLeft($this->getLayout()->createBlock('adminhtml/promo_catalog_edit_tabs')) 00092 ->renderLayout(); 00093 00094 }
indexAction | ( | ) |
Definition at line 39 of file CatalogController.php.
00040 { 00041 if (Mage::app()->loadCache('catalog_rules_dirty')) { 00042 Mage::getSingleton('adminhtml/session')->addNotice(Mage::helper('catalogrule')->__('There are rules that have been changed but not applied. Please, click Apply Rules in order to see immediate effect in catalog.')); 00043 } 00044 00045 $this->_initAction() 00046 ->_addBreadcrumb(Mage::helper('catalogrule')->__('Catalog'), Mage::helper('catalogrule')->__('Catalog')) 00047 ->_addContent($this->getLayout()->createBlock('adminhtml/promo_catalog')) 00048 ->renderLayout(); 00049 }
newAction | ( | ) |
newActionHtmlAction | ( | ) |
Definition at line 205 of file CatalogController.php.
00206 { 00207 $id = $this->getRequest()->getParam('id'); 00208 $typeArr = explode('|', str_replace('-', '/', $this->getRequest()->getParam('type'))); 00209 $type = $typeArr[0]; 00210 00211 $model = Mage::getModel($type) 00212 ->setId($id) 00213 ->setType($type) 00214 ->setRule(Mage::getModel('catalogrule/rule')) 00215 ->setPrefix('actions'); 00216 if (!empty($typeArr[1])) { 00217 $model->setAttribute($typeArr[1]); 00218 } 00219 00220 if ($model instanceof Mage_Rule_Model_Action_Abstract) { 00221 $model->setJsFormObject($this->getRequest()->getParam('form')); 00222 $html = $model->asHtmlRecursive(); 00223 } else { 00224 $html = ''; 00225 } 00226 $this->getResponse()->setBody($html); 00227 }
newConditionHtmlAction | ( | ) |
Definition at line 162 of file CatalogController.php.
00163 { 00164 $id = $this->getRequest()->getParam('id'); 00165 $typeArr = explode('|', str_replace('-', '/', $this->getRequest()->getParam('type'))); 00166 $type = $typeArr[0]; 00167 00168 $model = Mage::getModel($type) 00169 ->setId($id) 00170 ->setType($type) 00171 ->setRule(Mage::getModel('catalogrule/rule')) 00172 ->setPrefix('conditions'); 00173 if (!empty($typeArr[1])) { 00174 $model->setAttribute($typeArr[1]); 00175 } 00176 00177 if ($model instanceof Mage_Rule_Model_Condition_Abstract) { 00178 $model->setJsFormObject($this->getRequest()->getParam('form')); 00179 $html = $model->asHtmlRecursive(); 00180 } else { 00181 $html = ''; 00182 } 00183 $this->getResponse()->setBody($html); 00184 }
saveAction | ( | ) |
Definition at line 96 of file CatalogController.php.
00097 { 00098 if ($data = $this->getRequest()->getPost()) { 00099 try { 00100 $model = Mage::getModel('catalogrule/rule'); 00101 if ($id = $this->getRequest()->getParam('rule_id')) { 00102 $model->load($id); 00103 if ($id != $model->getId()) { 00104 Mage::throwException(Mage::helper('catalogrule')->__('Wrong rule specified.')); 00105 } 00106 } 00107 $data['conditions'] = $data['rule']['conditions']; 00108 unset($data['rule']); 00109 00110 if (!empty($data['auto_apply'])) { 00111 $autoApply = true; 00112 unset($data['auto_apply']); 00113 } else { 00114 $autoApply = false; 00115 } 00116 00117 $model->loadPost($data); 00118 Mage::getSingleton('adminhtml/session')->setPageData($model->getData()); 00119 $model->save(); 00120 00121 Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('catalogrule')->__('Rule was successfully saved')); 00122 Mage::getSingleton('adminhtml/session')->setPageData(false); 00123 if ($autoApply) { 00124 $this->_forward('applyRules'); 00125 } else { 00126 Mage::app()->saveCache(1, 'catalog_rules_dirty'); 00127 $this->_redirect('*/*/'); 00128 } 00129 return; 00130 } catch (Exception $e) { 00131 Mage::getSingleton('adminhtml/session')->addError($e->getMessage()); 00132 Mage::getSingleton('adminhtml/session')->setPageData($data); 00133 $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('rule_id'))); 00134 return; 00135 } 00136 } 00137 $this->_redirect('*/*/'); 00138 }