Пример #1
0
 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;
 }
Пример #2
0
 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');
 }