/** * @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; }
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); }
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); } } }
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.'))); } }