Exemplo n.º 1
0
 /** @return array|false */
 private function getNavigation($id)
 {
     if (false === ($navis = GWF_Navigations::getById($id))) {
         return false;
         # TODO
     }
     $nsid = $navis->getID();
     $pb = $navis->isnotPB() ? 'navi_vars' : 'navi_pbvars';
     $cols = 't.*, page_url, page_title, page_lang, page_meta_desc/*, page_views,*/';
     $t = GDO::table('GWF_Navigation');
     # TODO: page_lang, permissions
     $where = "navi_nid={$nsid}";
     $navi = array();
     $navi['category_name'] = $navis->getName();
     $navi['subs'] = array();
     $navi['links'] = false !== ($links = $t->selectAll($cols, $where, 'navi_position', array($pb))) ? $links : array();
     if (false === ($subs = $navis->selectAll('navis_id', 'navis_pid=' . $nsid))) {
         $subs = array();
         # TODO: error
     }
     foreach ($subs as $sub) {
         if (false !== ($sn = $this->getNavigation($sub['navis_id']))) {
             $navi['subs'][] = $sn;
         } else {
             # TODO
         }
     }
     return $navi;
 }