コード例 #1
0
ファイル: RouteMapper.php プロジェクト: bokultis/kardiomedika
 /**
  * Find a route from wildcard routes
  * 
  * @param string $match
  * @param Cms_Model_Route $route
  * @param string $lang
  * @return boolean
  */
 function _findFromWildCards($match, Cms_Model_Route $route, $lang = null)
 {
     if (!isset($lang)) {
         $lang = 'all';
     }
     if (!isset($this->_routesWildcard[$lang])) {
         return false;
     }
     foreach ($this->_routesWildcard[$lang] as $pattern => $routeId) {
         if (substr($match, 0, strlen($pattern)) == $pattern) {
             $foundRoute = $this->_routes[$routeId];
             $route->setOptions($foundRoute->toArray());
             $params = $route->get_params();
             //set url_id param
             $params['url_id'] = substr($match, strlen($pattern));
             $route->set_params($params);
             return true;
         }
     }
     return false;
 }
コード例 #2
0
 public function editAction()
 {
     $data = $this->getRequest()->getPost('data');
     $submit = $this->getRequest()->getPost('submit');
     $id = $this->_getParam('id');
     $data['lang'] = $this->_getParam('langFilter');
     /* get all modules */
     $criteria['application_id'] = $this->_applicationId;
     //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 Cms_Form_RouteRedirect($data);
     //postback - save?
     if ($this->_formHelper->isSave()) {
         //check if valid
         if ($form->isValid()) {
             $values = $form->getValues();
             //create entity object from submitted values, and save
             $route = new Cms_Model_Route($values);
             $route->set_application_id($this->_applicationId);
             $route->set_path("cms/redirect/index");
             $route->set_params("url/" . urlencode($route->get_params()));
             Cms_Model_RouteMapper::getInstance()->save($route);
             //save done, return success
             return $this->_formHelper->returnSuccess($this->view->url(array('action' => 'index')), $this->translate('Route saved.'));
         } else {
             //we have errors - return json or continue
             $this->_formHelper->returnError($form->getMessages());
         }
     } elseif (!$this->_formHelper->getRequest()->isPost()) {
         //edit action
         if (isset($id) && $id > 0) {
             $route = new Cms_Model_Route();
             if (!Cms_Model_RouteMapper::getInstance()->find($id, $route)) {
                 throw new Exception("Route not found");
             }
             $data = $route->toArray();
             $data["params"] = urldecode(substr($data["params"], 4));
             //populate form with data
             $form->setData($data);
         }
     }
     $this->view->languages = Application_Model_TranslateMapper::getInstance()->getLanguages();
     $page = new Cms_Model_Page();
     if (isset($data['page_id'])) {
         Cms_Model_PageMapper::getInstance()->find($data['page_id'], $page);
     }
     $this->view->page_title = $page->get_title();
     $this->view->langFilter = $data['lang'];
     $data["path"] = "cms/redirect/index";
     $this->view->data = $data;
 }