Example #1
0
 /**
  * @param string $path  etc  /member/home
  * @param string $bodyId  etc global_path-user-index-home
  * @return array|null
  * 
  */
 public function getTour($path, $bodyid)
 {
     $forceEnable = false;
     //if(Zend_Registry::get('YNTOUR_STATUS_ENABLED')){
     //    $forceEnable = true;
     //}
     $result = array('id' => 0, 'enable' => false, 'total' => 0, 'rows' => array(), 'title' => '', 'autoplay' => 0, 'autoclose' => 0, 'autoclose_time_delay' => 0, 'hash' => '', 'view_rule' => 'all');
     $this->view = Zend_Registry::get('Zend_View');
     $model = new Yntour_Model_DbTable_Tours();
     $select = $model->select()->where('bodyid=?', $bodyid)->orWhere('path=?', $path);
     $tour = $model->fetchRow($select);
     // tour exists
     if (!is_object($tour)) {
         return $result;
     }
     $viewer = Engine_Api::_()->user()->getViewer();
     $id = $viewer->getIdentity();
     if ($tour->view_rule == 'members' && $id == 0) {
         return $result;
     }
     //if($tour->view_rule == 'guests' && $viewer->level_id > 2)
     //{
     //return $result;
     //}
     // 0: path only, check exact path
     // 1: body_id. all page that has same body id
     if ($tour->path != $path && $tour->option == 0 || $tour->enabled == 0 && $viewer->level_id > 2) {
         //
         return $result;
     }
     if (!is_object($tour)) {
         return $result;
     }
     $model = new Yntour_Model_DbTable_Touritems();
     $select = $model->select()->where('tour_id=?', $tour->getIdentity())->order('priority');
     $rows = $model->fetchAll($select)->toArray();
     $temp_rows = array();
     $language_select = $this->view->translate()->getLocale();
     $model_language = new Yntour_Model_DbTable_Itemlanguages();
     foreach ($rows as $row) {
         $body = $model_language->getLanguage($row['touritem_id'], $language_select)->body;
         if ($body) {
             $row['body'] = $body;
         }
         $row['width'] = intval($row['width']);
         $temp_rows[] = $row;
     }
     $total = count($temp_rows);
     $result = array('hash' => $tour->hash, 'total' => $total, 'enable' => $forceEnable | $total, 'id' => $tour->getIdentity(), 'title' => $tour->title, 'rows' => $temp_rows, 'autoplay' => $tour->autoplay, 'autoclose' => $tour->autoclose, 'autoclose_time_delay' => $tour->autoclose_time_delay, 'hash' => $tour->hash, 'view_rule' => $tour->view_rule);
     return $result;
 }
Example #2
0
 public function getLanguages()
 {
     $model_language = new Yntour_Model_DbTable_Itemlanguages();
     $select = $model_language->select()->where('item_id = ?', $this->touritem_id);
     return $model_language->fetchAll($select);
 }
Example #3
0
 public function itemEditAction()
 {
     $tourId = $this->_getParam('id', 0);
     $form = $this->view->form = new Yntour_Form_Admin_Touritem_Edit(array('tourId' => $tourId));
     $request = $this->getRequest();
     $id = $this->_getParam('item_id');
     $model = new Yntour_Model_DbTable_Touritems();
     $item = $model->find($id)->current();
     $array = $item->toArray();
     $languages = $item->getLanguages();
     if (count($languages) > 0) {
         foreach ($languages as $language) {
             $array['body_' . $language->language] = $language->body;
         }
     } else {
         $array['body_' . $this->view->translate()->getLocale()] = $array['body'];
     }
     if ($request->isGet()) {
         $form->populate($array);
         return;
     }
     if ($request->isPost() && $form->isValid($request->getPost())) {
         $data = $form->getValues();
         $item->setFromArray($data);
         $item->body = $data['body_en'];
         //Save all item body to itemlanguages
         $model_language = new Yntour_Model_DbTable_Itemlanguages();
         $translate = Zend_Registry::get('Zend_Translate');
         $languageList = $translate->getList();
         foreach ($languageList as $lang) {
             $model_language->updateLanguage($id, $data['body_' . $lang], $lang);
         }
         if ($item->save()) {
             $router = Zend_Controller_Front::getInstance()->getRouter();
             $url = $router->assemble(array('action' => 'item'), null, false);
             $this->_helper->redirector->setPrependBase(false)->gotoUrl($url);
         }
     }
 }
Example #4
0
 public function editStepAction()
 {
     $form = $this->view->form = new Yntour_Form_Touritem_Create();
     //https://jira.younetco.com/browse/CHECKDEMO-134 left & top doesn't have means when create new step
     $form->removeElement("left_position");
     $form->removeElement("top_position");
     $model = new Yntour_Model_DbTable_Touritems();
     $id = $this->_getParam('touritem_id', 0);
     $request = $this->getRequest();
     $language_select = $this->view->translate()->getLocale();
     if ($request->isGet()) {
         $x = $this->_getParam('x');
         $y = $this->_getParam('y');
         $form->populate(array('left_position' => $x, 'top_position' => $y));
         return;
     }
     if ($request->isPost() && $form->isValid($request->getPost())) {
         $data = $form->getValues();
         $item = $model->fetchNew();
         $item->creation_date = date('Y-m-d H:i:s');
         $item->setFromArray($data);
         $item->tour_id = $request->getParam('tour_id');
         $item->dompath = str_replace('.is_active', '', urldecode($request->getParam('dompath')));
         $item->save();
         $model_language = new Yntour_Model_DbTable_Itemlanguages();
         $model_language->updateLanguage($item->touritem_id, $data['body'], $language_select);
         $this->_forward('success', 'utility', 'core', array('smoothboxClose' => 10, 'parentRefresh' => 10, 'messages' => array('Successful.')));
     }
 }