public function saveAction() { // data $fields = $this->getRequest()->getPost('fields'); $useDefault = $this->getRequest()->getPost('use_default'); $data = array(); if (Mage::helper('morphes_admin')->isGlobal()) { $model = Mage::getModel('morphes_filters/filter2')->load($this->getRequest()->getParam('id')); } else { $model = Mage::getModel('morphes_filters/filter2_store')->loadByGlobalId($this->getRequest()->getParam('id'), Mage::helper('morphes_admin')->getStore()->getId()); } $response = new Varien_Object(); $update = array(); /* @var $messages Mage_Adminhtml_Block_Messages */ $messages = $this->getLayout()->createBlock('adminhtml/messages'); try { // processing $model->addEditedData($fields, $useDefault); $model->addEditedDetails($this->getRequest()); $model->validateKeys(); Mage::helper('morphes_db')->replicateObject($model, array($model->getEntityName() => array('saved' => array($model->getId())))); $model->validate(); // do save $model->save(); Mage::dispatchEvent('m_saved', array('object' => $model)); $messages->addSuccess($this->__('Your changes are successfully saved.')); } catch (Morphes_Db_Exception_Validation $e) { foreach ($e->getErrors() as $error) { $messages->addError($error); } $response->setError(true); } catch (Exception $e) { $messages->addError($e->getMessage()); $response->setError(true); } $update[] = array('selector' => '#messages', 'html' => $messages->getGroupedHtml()); $response->setUpdate($update); $this->getResponse()->setBody($response->toJson()); }