/** * Save action * * @return void */ public function saveAction() { $event = Mage::getModel('enterprise_catalogevent/event')->setStoreId($this->getRequest()->getParam('store', 0)); /* @var $event Enterprise_CatalogEvent_Model_Event */ if ($eventId = $this->getRequest()->getParam('id', false)) { $event->load($eventId); } else { $event->setCategoryId($this->getRequest()->getParam('category_id')); } $postData = $this->_filterPostData($this->getRequest()->getPost()); if (!isset($postData['catalogevent'])) { $this->_getSession()->addError(Mage::helper('enterprise_catalogevent')->__('An error occurred while saving this event.')); $this->_redirect('*/*/edit', array('_current' => true)); return; } $data = new Varien_Object($postData['catalogevent']); $event->setDisplayState($data->getDisplayState())->setStoreDateStart($data->getDateStart())->setStoreDateEnd($data->getDateEnd())->setSortOrder($data->getSortOrder()); $isUploaded = true; try { $uploader = new Varien_File_Uploader('image'); $uploader->setAllowedExtensions(array('jpg', 'jpeg', 'gif', 'png')); $uploader->setAllowRenameFiles(true); $uploader->setAllowCreateFolders(true); $uploader->setFilesDispersion(false); } catch (Exception $e) { $isUploaded = false; } $validateResult = $event->validate(); if ($validateResult !== true) { foreach ($validateResult as $errorMessage) { $this->_getSession()->addError($errorMessage); } $this->_getSession()->setEventData($event->getData()); $this->_redirect('*/*/edit', array('_current' => true)); return; } try { if ($data->getData('image/is_default')) { $event->setImage(null); } elseif ($data->getData('image/delete')) { $event->setImage(''); } elseif ($isUploaded) { try { $event->setImage($uploader); } catch (Exception $e) { Mage::throwException(Mage::helper('enterprise_catalogevent')->__('Image was not uploaded.')); } } $event->save(); $this->_getSession()->addSuccess(Mage::helper('enterprise_catalogevent')->__('Event has been saved.')); if ($this->getRequest()->getParam('_continue')) { $this->_redirect('*/*/edit', array('_current' => true, 'id' => $event->getId())); } else { $this->_redirect('*/*/'); } } catch (Exception $e) { $this->_getSession()->addError($e->getMessage()); $this->_getSession()->setEventData($event->getData()); $this->_redirect('*/*/edit', array('_current' => true)); } }