Code

Removed accidentally checked in file:contrib/resolution
[gosa.git] / gosa-plugins / gosa-ng / admin / newConfigManagement / class_filterConfigManagement.inc
1 <?php
3 class filterConfigManagement {
5     static function query($base, $scope, $filter, $attributes, $category, $objectStorage= "")
6     {
7         // Walk through the data array till we reach the correct level, then 
8         //  create the list of entries.
9         $data = session::get('CONFIG_ITEM');
10         if(!$data) return(array());
12         // Prepare filter, strip out regex regex related chars, except for *
13         $filter = preg_replace('/\*/','____STAR____', $filter);
14         $filter = preg_quote($filter,'/');
15         $filter = preg_replace('/____STAR____/','.*', $filter);
17         // Add entries 
18         $ret = array();
19         foreach($data['children'] as $item){
20             filterDeviceItems::addEntry($ret, $item, $scope == 'sub', $filter);
21         }
22         return($ret);
23     }
25     static function addEntry(&$ret, $item, $recursive = FALSE, $filter)
26     {
27         if(preg_match("/".$filter."/",$item['name'])){
28             $entry = array();
29             $entry['dn'] = $item['id'];
30             $entry[] = 'dn';
31             $entry['cn'] = array($item['name'], 'count' => 1);
32             $entry[] = 'cn';
33             $entry['id'] = array($item['id'], 'count' => 1);
34             $entry[] = 'id';
35             $entry['description'] = array($item['type'], 'count' => 1);
36             $entry[] = 'description';
37             $entry['objectClass'] = array($item['type'],'count' => 1);
38             $entry[] = 'objectClass';
39             $entry['count'] = 5;
40             $ret[] = $entry;
41         }
43         if($recursive && isset($item['children']) && count($item['children'])){
44             foreach($item['children'] as $item){
45                 filterDeviceItems::addEntry($ret, $item, $recursive,$filter);
46             }
47         }
49     }
50 }
52 ?>