public function save($params = '*', $tsl_params = '*') { $db = Zend_Registry::get('db'); $mapper = new SxModule_News_Mapper(); $data = $mapper->toArray($this, 'item'); $tslData = $mapper->toArray($this, 'tsl'); if (is_array($params)) { $data = $mapper->fromInput($data, $params); } if (is_array($tsl_params)) { $tslData = $mapper->fromInput($tslData, $tsl_params); } if ($this->getId()) { $data['date_updated'] = new Zend_Db_Expr('NOW()'); $db->update('News', $data, 'nid = ' . $db->quote((int) $this->getId())); $db->update('NewsTsl', $tslData, 'nid = ' . $db->quote((int) $this->getId()) . ' AND lng = ' . $db->quote($this->getLng())); } else { $data['date_created'] = new Zend_Db_Expr('NOW()'); $data['date_updated'] = '0000-00-00 00:00:00'; $db->insert('News', $data); $this->setId($db->lastInsertId()); $config = Zend_Registry::get('config'); foreach ($config->system->language as $lng => $slng) { $tslData['lng'] = $lng; $tslData['nid'] = (int) $this->getId(); $db->insert('NewsTsl', $tslData); } } return $this; }
public function editAction() { SxCms_Acl::requireAcl('news', 'news.edit'); $proxy = new SxModule_News_Proxy(); $item = $proxy->getById((int) $this->_getParam('id'), $_SESSION['System']['lng']); $item->setTmx($this->tmx); if ($this->getRequest()->isPost()) { $mapper = new SxModule_News_Mapper(); $fields = $mapper->fromInput($this->_getAllParams(), $this->_editablefields()); $data = $mapper->toObject($fields, $item); if ($this->_getParam('date_by_message') != '') { $dateByMessage = $this->_getParam('date_by_message') . ' ' . $this->_getParam('message_h') . ':' . $this->_getParam('message_i') . ':00'; } else { $dateByMessage = '0000-00-00 00:00:00'; } $datePublished = $this->_getParam('date_published') . ' ' . $this->_getParam('publish_h') . ':' . $this->_getParam('publish_i') . ':00'; $dateExpired = null; if ($this->_getParam('date_expired')) { $dateExpired = $this->_getParam('date_expired') . ' ' . $this->_getParam('expire_h') . ':' . $this->_getParam('expire_i') . ':00'; } $data->setDatePublished($datePublished)->setDateExpired($dateExpired)->setDateByMessage($dateByMessage)->setActive($this->_getParam('active', 0) == 1 ? 1 : 0); $validator = new SxModule_News_Validator(); if ($validator->validate($data)) { $this->_imageResizeAndSave($data); $data->save(); $cache = Zend_Registry::get('cache'); $cache->clean(Zend_Cache::CLEANING_MODE_MATCHING_ANY_TAG, array('SxModule_News')); $flashMessenger = $this->_helper->getHelper('FlashMessenger'); $flashMessenger->addMessage($this->admin_tmx->_('newsedited')); $this->_helper->redirector->gotoSimple('index', 'news'); } $item = $data; } $this->view->item = $item; $this->view->messages = Sanmax_MessageStack::getInstance('SxModule_News'); }