Example #1
0
 function get($id = 0)
 {
     if (self::$cached_links != null) {
         if ($id == 0) {
             return self::$cached_links;
         } else {
             return self::$cached_links_index[$id];
         }
     }
     global $user;
     //$this->db->query("select * from be_links where id in (select link_id as id from be_link_permissions where group_id in(1,3))");
     $this->db->from("be_link_permissions");
     $this->db->where('be_link_permissions.group_id in (' . implode(',', $user->groups) . ')');
     $this->db->join('be_links', 'be_links.id = be_link_permissions.link_id', 'inner');
     $this->db->group_by('be_links.id');
     $this->db->order_by("be_links.order", "ASC");
     $data = $this->db->get();
     $links = array();
     $links_index = array();
     $results = $data->result();
     //print_r($results);
     //die();
     foreach ($results as $link_entry) {
         if ($link_entry->parent != 0 && $id == 0) {
             continue;
         }
         $link['id'] = $link_entry->id;
         $link['name'] = $link_entry->name;
         $link['target'] = $link_entry->target;
         $link['title'] = $link_entry->title;
         $link['tags'] = trim(str_replace("|", ",", $link_entry->tags), ",");
         $link['parent'] = $link_entry->parent;
         $link['order'] = $link_entry->order;
         $link['childs'] = array();
         foreach ($results as $sublink_entry) {
             if ($sublink_entry->parent == 0 || $sublink_entry->parent != $link_entry->id) {
                 continue;
             }
             $sublink['id'] = $sublink_entry->id;
             $sublink['name'] = $sublink_entry->name;
             $sublink['target'] = $sublink_entry->target;
             $sublink['title'] = $sublink_entry->title;
             $sublink['tags'] = trim(str_replace("|", ",", $sublink_entry->tags), ",");
             $sublink['parent'] = $sublink_entry->parent;
             $sublink['order'] = $sublink_entry->order;
             array_push($link['childs'], $sublink);
             $links_index[$sublink_entry->id] = $sublink;
         }
         $links[$link_entry->id] = $link;
         $links_index[$link_entry->id] = $link;
     }
     /*foreach($results as $link_entry)
                 {
                     if(!array_key_exists($link_entry->id, $links)){
                         $links[$link_entry->id] = array();
                         $links[$link_entry->id]['groups'] = array();
                         $links[$link_entry->id]['childs'] = array();
                     }
                     
                     $links[$link_entry->id]['id'] = $link_entry->id;
                     $links[$link_entry->id]['name'] = $link_entry->name;
                     $links[$link_entry->id]['target'] = $link_entry->target;
                     $links[$link_entry->id]['title'] = $link_entry->title; 
                     $links[$link_entry->id]['tags'] = trim(str_replace("|", ",", $link_entry->tags), ","); 
                     $links[$link_entry->id]['parent'] = $link_entry->parent;
                     $links[$link_entry->id]['order'] = $link_entry->order;
     
     
                     if($link_entry->parent != 0){
                         $links[$link_entry->parent]['childs'][$link_entry->id] = $links[$link_entry->id];
                         if(!array_key_exists('groups', $links[$link_entry->parent]))
                             $links[$link_entry->parent]['groups'] = array();
                     }
                         
     
                     array_push($links[$link_entry->id]['groups'], intval($link_entry->group_id));
        
                 }*/
     foreach ($links as $key => $link) {
         $links[$key] = (object) $links[$key];
     }
     foreach ($links_index as $key => $link) {
         $links_index[$key] = (object) $links_index[$key];
     }
     self::$cached_links = $links;
     self::$cached_links_index = $links_index;
     if ($id == 0) {
         return self::$cached_links;
     } else {
         return self::$cached_links[$id];
     }
 }