public function itemEditAction() { $data = $this->getRequest()->getPost('data'); $id = $this->_getParam('id'); $cloneId = $this->_getParam('clone_id'); $langFilter = $this->_getParam('langFilter'); $defaultTeaserId = $this->_getParam('teaser_id'); //check if cancel button is pressed if ($this->_formHelper->isCancel()) { //cancel form return $this->_formHelper->returnCancel($this->view->url(array('action' => 'index')), $this->translate('Action canceled')); } //create form object $form = new Teaser_Form_TeaserItem($data); //postback - save? if ($this->_formHelper->isSave()) { //check if valid if ($form->isValid()) { $values = $form->getValues(); //create entity object from submitted values, and save $item = new Teaser_Model_Item($values); $item->set_start_dt(HCMS_Utils_Date::dateLocalToIso($item->get_start_dt())); if (isset($data["end_dt"]) && $data["end_dt"] != "") { $item->set_end_dt(HCMS_Utils_Date::dateLocalToIso($item->get_end_dt())); } Teaser_Model_ItemMapper::getInstance()->save($item, $langFilter != '' ? $langFilter : null); //save done, return success return $this->_formHelper->returnSuccess($this->view->url(array('action' => 'index')), $this->translate('Item saved.')); } else { //we have errors - return json or continue $this->_formHelper->returnError($form->getMessages()); } } elseif (!$this->_formHelper->getRequest()->isPost()) { if (!isset($id) && isset($cloneId)) { $id = $cloneId; } //edit action if (isset($id) && $id > 0) { $item = new Teaser_Model_Item(); if (!Teaser_Model_ItemMapper::getInstance()->find($id, $item, $langFilter != '' ? $langFilter : null)) { throw new Exception("Item not found"); } Teaser_Model_ItemMapper::getInstance()->populateTeaserIds($item); //fetch data $data = $item->toArray(); $data['start_dt'] = HCMS_Utils_Date::dateIsoToLocal($item->get_start_dt(), "HH:mm"); $data['end_dt'] = HCMS_Utils_Date::dateIsoToLocal($item->get_end_dt(), "HH:mm"); $data['teaser_ids'] = $item->get_teaser_ids(); if (isset($cloneId)) { unset($data['id']); $data['title'] = 'Clone ' . $data['title']; } //populate form with data $form->setData($data); } if (null != $this->_getParam('box_code')) { $data['box_code'] = $this->_getParam('box_code'); } } $languages = Application_Model_TranslateMapper::getInstance()->getLanguages(); $this->view->languages = $languages; if (!isset($data['teaser_ids'])) { $data['teaser_ids'] = array(); } $this->view->data = $data; //teasers with the same box $this->view->availableTeasers = Teaser_Model_TeaserMapper::getInstance()->fetchAll(array('box_code' => $data['box_code'])); $this->view->defaultTeaserId = $defaultTeaserId; }