index f713e4860bb517565245444406ee8f7ed5b792ee..e0e09c7bc31ea7f911fb5445433c89d93d8abfdb 100644 (file)
if(isset($this->attrs['gosaUserDefinedFilter'])){
for($i=0; $i< $this->attrs['gosaUserDefinedFilter']['count']; $i++){
$tmp = userFilter::explodeFilterString($this->attrs['gosaUserDefinedFilter'][$i]);
- if(isset($tmp['name'])){
- $this->filters[$tmp['name']]= $tmp;
+ if(isset($tmp['tag'])){
+ $this->filters[$tmp['tag']]= $tmp;
}
}
}
// Get filters and their backends
$queries = array();
foreach(split(",", $filterList) as $data){
- list($filter, $backend) = preg_split('/:/', $data);
- $queries[] = array('backend' => $backend, 'filter' => base64_decode($filter));
+ if(!empty($data)){
+ list($filter, $backend) = preg_split('/:/', $data);
+ $queries[] = array('backend' => $backend, 'filter' => base64_decode($filter));
+ }
}
// build up filter entry.
$tmp = array(
'parent' => $parent,
- 'name' => $name,
+ 'tag' => $name,
'categories' => $categories,
'description' => base64_decode($description),
- 'queries' => $queries,
+ 'query' => $queries,
'flags' => $flags);
return($tmp);
$data[$name] = array('data' =>
array(
$filter['parent'],
- $filter['name'],
+ $filter['tag'],
$filter['description'],
implode(", ",$filter['categories']),
implode(", ",$filter['flags'])));
static function getFilter($category=array())
{
global $config;
+
$ldap=$config->get_ldap_link();
$ui = get_userinfo();
$ldap->cd($config->current['BASE']);
while($attrs = $ldap->fetch()){
for($i=0; $i < $attrs['gosaUserDefinedFilter']['count']; $i++){
$tmp = userFilter::explodeFilterString($attrs['gosaUserDefinedFilter'][$i]);
- if(!isset($tmp['name'])) continue;
+ if(!isset($tmp['tag'])) continue;
// Remove line breaks from the filter, which may were added for better reading.
- $c = preg_split('/\n/',$tmp['filter']);
-
- foreach($c as $key => $str) $c[$key] = trim($str);
- $tmp['filter'] = implode($c);
+ foreach($tmp['query'] as $key => $query){
+ $c = preg_split('/\n/',$query['filter']);
+ foreach($c as $cKey => $str) $c[$cKey] = trim($str);
+ $tmp['query'][$key]['filter'] = mb_convert_encoding(implode($c),'UTF-8');
+ }
// The filter is visible if it is shared or if is one of our own creations.
// ... and enabled.
$visible = in_array('enable', $tmp['flags']) &&
($attrs['dn'] == $ui->dn || in_array('share', $tmp['flags']));
- // Convert filter encoding
- $tmp['filter'] = mb_convert_encoding($tmp['filter'], 'UTF-8');
-
// Add filter if it matches the category list
if($visible && (count($category) == 0 || array_intersect($category, $tmp['categories']))){
- $filter[$tmp['name']] = $tmp;
+ $filter[$tmp['tag']] = $tmp;
}
}
}
foreach($this->filters as $filter){
$tmp = $filter['parent'].";";
$tmp.= implode(',', $filter['categories']).";";
- $tmp.= $filter['name'].";";
+ $tmp.= $filter['tag'].";";
$tmp.= base64_encode($filter['description']).";";
// Add queries
- foreach($filter['queries'] as $query){
+ foreach($filter['query'] as $query){
$tmp.= base64_encode($query['filter']).":".$query['backend'].",";
}
$tmp = trim($tmp,",").";";