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 ?>