Beispiel #1
0
 function getDeeper($id = 0)
 {
     $m = $this->funcGetList($id);
     $mu = new Default_Model_Url();
     $menu = array();
     $front = Zend_Controller_Front::getInstance();
     $router = $front->getRouter();
     $request = $front->getRequest();
     $reg = Zend_Registry::isRegistered('Zkernel_Multilang') ? Zend_Registry::get('Zkernel_Multilang') : '';
     $view = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer')->view;
     if ($m) {
         foreach ($m as $el) {
             if ($this->funcElCheck($el)) {
                 $el = $view->override()->overrideSingle($el, 'menu');
                 $p = $reg && !$reg->session && !@$reg->_default->domain ? array('lang' => $reg->stitle) : array();
                 if ($el->route && $el->param && $el->route) {
                     if ($el->route == 'default') {
                         $map = '';
                     } else {
                         $mk = substr($el->route, 7);
                         if (isset($this->_map_cache[$mk])) {
                             $map = $this->_map_cache[$mk];
                         } else {
                             $map = $mu->fetchOne('map', array('`id` = ?' => substr($el->route, 7)));
                             $this->_map_cache[$mk] = $map;
                         }
                     }
                     $pp = explode(',', $el->param);
                     if ($map) {
                         $mp = explode(',', $map);
                         if ($mp && $pp) {
                             foreach ($mp as $n => $mp1) {
                                 $p[$mp1] = $pp[$n];
                             }
                         }
                     } else {
                         if ($pp) {
                             foreach ($pp as $mp1) {
                                 $ppp = explode(':', $mp1);
                                 $p[@$ppp[0] ? $ppp[0] : 'id'] = @$ppp[1];
                             }
                         }
                     }
                 }
                 if (empty($el->url)) {
                     $md = array('label' => $el->title, 'controller' => $el->controller, 'action' => $el->action, 'params' => $p, 'route' => $el->route ? $el->route : 'default', 'uri' => $el->url, 'pages' => $this->getDeeper($el->id));
                     $d = $el->toArray();
                     unset($d['param']);
                     $menu[] = array_merge($d, $this->funcElArray($el, $md));
                 } else {
                     $md = array('label' => $el->title, 'uri' => $el->url, 'pages' => $this->getDeeper($el->id), 'key' => $el->key, 'pic' => $el->pic);
                     $menu[] = $this->funcElArray($el, $md);
                 }
             }
         }
     }
     return $menu;
 }
Beispiel #2
0
 function _getRoutes()
 {
     $model = new Default_Model_Url();
     $route = $model->fetchOne('id', array('`url` = "page/(.*)"'));
     $ret = array();
     $res = $this->model->fetchAll('`cedit` = 1', 'title');
     if ($res) {
         $res = $this->view->override($res, 'page');
         foreach ($res as $el) {
             $ret[$el->stitle . '|dbroute' . $route] = $el->title;
         }
     }
     return $ret;
 }