Mage_Adminhtml_Promo_CatalogController Class Reference

Inheritance diagram for Mage_Adminhtml_Promo_CatalogController:

Mage_Adminhtml_Controller_Action Mage_Core_Controller_Varien_Action

List of all members.

Public Member Functions

 indexAction ()
 newAction ()
 editAction ()
 saveAction ()
 deleteAction ()
 newConditionHtmlAction ()
 chooserAction ()
 newActionHtmlAction ()
 applyRulesAction ()
 addToAlersAction ()

Protected Member Functions

 _initAction ()
 _isAllowed ()


Detailed Description

Definition at line 28 of file CatalogController.php.


Member Function Documentation

_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 (  ) 

Definition at line 51 of file CatalogController.php.

00052     {
00053         $this->_forward('edit');
00054     }

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     }


The documentation for this class was generated from the following file:

Generated on Sat Jul 4 17:23:27 2009 for Magento by  doxygen 1.5.8