function &_fetch(&$counter, $params)
 {
     $tree_array =& parent::_fetch($counter, $params);
     if (!count($tree_array)) {
         return array();
     }
     $result = array();
     $current_date = date('Y-m-d', time());
     $prev_item_key = null;
     foreach ($tree_array as $id => $tree_item) {
         $tree_item['is_expanded'] = true;
         if (!$tree_item['is_last_child']) {
             $prev_item_parent_id = $tree_item['parent_node_id'];
             $prev_item_key = $tree_item['id'];
         }
         if (!isset($tree_item['start_date'])) {
             $result[$id] = $tree_item;
             continue;
         }
         if ($tree_item['start_date'] <= $current_date && $tree_item['finish_date'] >= $current_date) {
             $result[$id] = $data;
             continue;
         }
         if ($tree_item['is_last_child'] && $tree_item['parent_node_id'] == $prev_item_parent_id) {
             $result[$prev_item_key]['is_last_child'] = true;
         }
     }
     return $result;
 }
  function & _fetch(&$counter, $params)
  {
    $tree_array = parent :: _fetch($counter, $params);
    $group_params['order'] = array('priority' => 'ASC');
    $user_groups =& fetch_sub_branch('/root/admin/user_groups', 'user_group', $counter, $group_params);

    $dataspace =& dataspace_registry :: get('set_group_access');

    $groups = $dataspace->get('filter_groups');

    if (!is_array($groups) || !count($groups))
      return $tree_array;

    foreach(array_keys($user_groups) as $key)
    {
      if (!in_array($key, $groups))
        unset($user_groups[$key]);
    }

    foreach($tree_array as $id => $node)
    {
      $object_id = $node['id'];
      foreach($user_groups as $group_id => $group_data)
      {
        $tree_array[$id]['groups'][$group_id]['selector_name'] = 'policy[' . $object_id . '][' .  $group_id . ']';
      }
    }

    return $tree_array;
  }
 function &_fetch(&$counter, $params)
 {
     $tree_array = parent::_fetch($counter, $params);
     $user_groups =& fetch_sub_branch('/root/user_groups', 'user_group', $counter);
     foreach ($tree_array as $id => $node) {
         $object_id = $node['id'];
         foreach ($user_groups as $group_id => $group_data) {
             $tree_array[$id]['groups'][$group_id]['read_selector_name'] = 'policy[' . $object_id . '][' . $group_id . '][r]';
             $tree_array[$id]['groups'][$group_id]['write_selector_name'] = 'policy[' . $object_id . '][' . $group_id . '][w]';
         }
     }
     return $tree_array;
 }
 function &_fetch(&$counter, $params)
 {
     $result =& parent::_fetch($counter, $params);
     $uri = new uri($_SERVER['PHP_SELF']);
     foreach ($result as $key => $data) {
         if ($uri->compare($data['url'], $url_rest, $query_match)) {
             if ($url_rest >= 0) {
                 $result[$key]['in_path'] = true;
             }
             if ($url_rest == 0) {
                 $result[$key]['selected'] = true;
             }
         }
     }
     return $result;
 }
 function &_fetch(&$counter, $params)
 {
     $result =& parent::_fetch($counter, $params);
     $uri = new uri($_SERVER['PHP_SELF']);
     foreach ($result as $key => $data) {
         if (is_integer($res = $uri->compare_path(new uri($data['url'])))) {
             if ($res >= 0) {
                 $result[$key]['in_path'] = true;
             }
             if ($res == 0) {
                 $result[$key]['selected'] = true;
             }
         }
     }
     return $result;
 }
 function &_fetch(&$counter, $params)
 {
     $result =& parent::_fetch($counter, $params);
     $requested_uri = new uri($_SERVER['REQUEST_URI']);
     $nav_uri = new uri();
     foreach ($result as $key => $data) {
         $nav_uri->parse($data['url']);
         if ($requested_uri->compare_path($nav_uri) === 0) {
             $result[$key]['selected'] = true;
             if ($nav_uri->get_query_item('action') !== $requested_uri->get_query_item('action')) {
                 $result[$key]['selected'] = false;
             }
         }
     }
     return $result;
 }