index 0b5f1778a9263186bbada5d718d35540cb2ffcd6..3a9e38d75856c25e3fa1bb45c3019d840dfa3fc5 100644 (file)
var $scopeMode= "auto";
var $alphabet= null;
var $converter= array();
+ var $pid;
function filter($filename)
if (!$this->load($filename)) {
die("Cannot parse $filename!");
}
+
+ $this->pid= preg_replace("/[^0-9]/", "", microtime(TRUE));
}
}
}
- // 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);
}
// Load template
- return ("<input type='hidden' name='FILTER_LOADED' value='1'>".$smarty->fetch(get_template_path($this->xmlData['definition']['template'], true)));
+ return ("<input type='hidden' name='FILTER_PID' value='".$this->pid."'>".$smarty->fetch(get_template_path($this->xmlData['definition']['template'], true)));
}
}
}
- if (isset($_POST['FILTER_LOADED'])) {
+ if (isset($_POST['FILTER_PID']) && $_POST['FILTER_PID'] == $this->pid) {
// Load post values and adapt filter, base and scope accordingly - but
// only if we didn't get a _GET
foreach ($this->elements as $tag => $element) {
}
+ function getObjectBase($dn)
+ {
+ global $config;
+ $base= "";
+
+ // Try every object storage
+ $storage= $this->objectStorage;
+ if (!is_array($storage)){
+ $storage= array($storage);
+ }
+ foreach ($storage as $location) {
+ $pattern= "/^[^,]+,".preg_quote($location, '/')."/i";
+ $base= preg_replace($pattern, '', $dn);
+ }
+
+ /* Set to base, if we're not on a correct subtree */
+ if (!isset($config->idepartments[$base])){
+ $base= $config->current['BASE'];
+ }
+
+ return $base;
+ }
+
+
}
+// 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);
+}
+
?>