X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=gosa-core%2Finclude%2Fclass_filter.inc;h=6e256f8158e824db66468b71d939e56e0ecbedc9;hb=4b3498ae8e78a11c7c99663d45bab6a0a14df052;hp=bde9b17266dc19626f0e9a42c3f8b58b20aec2ec;hpb=ce382410d752f2aa4abb3855016f9cc00de17a8c;p=gosa.git diff --git a/gosa-core/include/class_filter.inc b/gosa-core/include/class_filter.inc index bde9b1726..6e256f815 100644 --- a/gosa-core/include/class_filter.inc +++ b/gosa-core/include/class_filter.inc @@ -1,4 +1,24 @@ load($filename)) { die("Cannot parse $filename!"); } @@ -47,8 +67,12 @@ class filter { // Move information $entry= $this->xmlData['search']; - $this->baseMode= $entry['base']; $this->scopeMode= $entry['scope']; + if ($entry['scope'] == "auto") { + $this->scope= "one"; + } else { + $this->scope= $entry['scope']; + } $this->query= $entry['query']; } else { return false; @@ -98,6 +122,17 @@ class filter { $this->alphabetElements[]= $tag; } } + + // Sort elements for element length to allow proper replacing later on + function strlenSort($a, $b) { + if (strlen($a['tag']) == strlen($b['tag'])) { + return 0; + } + return (strlen($a['tag']) < strlen($b['tag']) ? -1 : 1); + } + uasort($this->elements, 'strlenSort'); + $this->elements= array_reverse($this->elements); + } return true; @@ -107,7 +142,15 @@ class filter { function getTextfield($element) { $tag= $element['tag']; - $result= ""; + $size= 30; + if (isset($element['size'])){ + $size= $element['size']; + } + $maxlength= 30; + if (isset($element['maxlength'])){ + $maxlength= $element['maxlength']; + } + $result= ""; if (isset($element['autocomplete'])) { $frequency= "0.5"; $characters= "1"; @@ -153,11 +196,7 @@ class filter { } // Handle translations - if (is_array($value['set'])) { - $result.= ""; - } else { - $result.= ""; - } + $result.= ""; } // Use autocompleter for additional data @@ -198,22 +237,12 @@ class filter { } - function setBases($bases) { - $this->bases= $bases; - } - - function setObjectStorage($storage) { $this->objectStorage= $storage; } - function setObjectBase($base) { - $this->objectBase= $base; - } - - - function setCurrentBase($base) { + function setBase($base) { $this->base= $base; } @@ -223,23 +252,6 @@ class filter { } - function renderBase() - { - $result= ""; - - return $result; - } - - function renderAlphabet($columns= 10) { // Return pre-rendered alphabet if available @@ -298,7 +310,6 @@ class filter { $smarty->assign("ALPHABET", $this->renderAlphabet()); $smarty->assign("APPLY", $this->renderApply()); $smarty->assign("SCOPE", $this->renderScope()); - $smarty->assign("BASE", $this->renderBase()); // Load template and replace elementsHtml[] foreach ($this->elements as $tag => $element) { @@ -366,7 +377,7 @@ class filter { } $result= array_merge($result, call_user_func(array($backend, 'query'), $this->base, $this->scope, $filter, $attributes, - $this->category, $this->objectStorage, $this->objectBase)); + $this->category, $this->objectStorage)); } @@ -411,20 +422,13 @@ class filter { $this->elementValues[$tag]= ""; } } - } - // Save base - if (isset($_POST['BASE']) && $this->baseMode == "true") { - $base= validate($_POST['BASE']); - if (isset($this->bases[$base])) { - $this->base= $base; + // Save scope if needed + if ($this->scopeMode == "auto") { + $this->scope= isset($_POST['SCOPE'])?"sub":"one"; } } - // Save scope if needed - if ($this->scopeMode == "auto") { - $this->scope= isset($_POST['SCOPE'])?"sub":"one"; - } } @@ -448,13 +452,12 @@ class filter { // Make filter $filter= preg_replace("/\\$$tag/", normalizeLDAP($value), $filter); - if (isset($config['base']) && isset($config['scope']) - && isset($config['category']) && isset($config['objectbase']) ) { + if (isset($config['base']) && isset($config['scope']) && isset($config['category'])) { $result= call_user_func(array($backend, 'query'), $config['base'], $config['scope'], $filter, $attributes, - $config["category"], $config["objectbase"]); + $config["category"], $config["objectStorage"]); } else { $result= call_user_func(array($backend, 'query'), $this->base, $this->scope, $filter, $attributes, - $this->category, $this->objectStorage, $this->objectBase); + $this->category, $this->objectStorage); } foreach ($result as $entry) { @@ -478,21 +481,29 @@ class filter { global $class_mapping; $result= array(); + // Introduce maximum number of entries + $max= 25; + foreach ($this->autocompleters as $tag => $config) { if(isset($_POST[$tag])){ $result= $this->getCompletitionList($config, $tag, $_POST[$tag]); + $result= array_unique($result); + asort($result); echo ''; } - } } + } ?>