diff --git a/include/filter.class.php b/include/filter.class.php index f15fd39e9..349a6a6c1 100644 --- a/include/filter.class.php +++ b/include/filter.class.php @@ -184,13 +184,30 @@ class filter extends basis_db } /** - * Ausgabe des HTML Widgets - * @param kurzbz des Datensatzes, der gefunden werden soll + * Ausgabe des HTML Widgets. Parameter, die als GET übergeben werden, werden ausgelesen und vorselektiert + * @param $kurzbz String Kurzbz des Datensatzes, der gefunden werden soll * @return boolean true wenn ok, false im Fehlerfall */ public function getHtmlWidget($kurzbz) { $html=''; + // GET-Parameter parsen und in String rausschreiben + parse_str($this->getVars(), $getParams); + + foreach ($getParams AS $key=>$value) + { + // Vordefinierte Parameter entfernen + if ($key == 'type' || + $key == 'statistik_kurzbz' || + $key == 'report_id' || + $key == 'putlog' || + $key == 'systemfilter_id' || + $key == 'debug') + { + unset($getParams[$key]); + } + } + foreach ($this->result as $filter) { if ($filter->kurzbz==$kurzbz) @@ -206,11 +223,46 @@ class filter extends basis_db $sql = str_replace('$user', $this->db_add_param($user), $filter->sql); $this->loadValues($sql, $filter->valuename, $filter->showvalue); foreach ($this->values as $value) - $html.="\n\t\t\t\t".''; + { + // Wenn ein Attribut als GET-Parameter übergeben wurde, dann vorselektieren + if (isset($getParams[$filter->kurzbz])) + { + //GET-Parameter aufsplitten + $paramsArr = explode(',',$getParams[$filter->kurzbz]); + //echo '
', var_dump($value->value), ''; + //$value->value = preg_replace('/(.*?)\s*selected.*/im', '$1', $value->value); + $value->value = preg_replace('/"\s*.*/im', '', $value->value); + //echo '
', var_dump($value->value), ''; + + if (in_array($value->value, $paramsArr)) + $html .= "\n\t\t\t\t".''; + else + { + //$value->value = preg_replace('/(.*?)selected=.selected./', '$1', $value->value); + //$value->value = preg_replace('/(.*?)\s*[selected=?selected?]/', '$1', $value->value); + //$value->value = preg_replace('/(.*?)\s*selected="selected"\s*/', '${1}', $value->value); + //$value->value = preg_replace('/^\s*selected=.*?selected.*?\s*/', ' ', $value->value); + //$value->value = str_replace('selected=', '', $value->value); + + //echo '
', var_dump($value->value), ''; + $html .= "\n\t\t\t\t".''; + } + } + else + { + //$value->value = str_replace('selected="selected', '', $value->value); + $html .= "\n\t\t\t\t".''; + } + } $html.="\n\t\t\t"; break; case 'datepicker': - $html .= ''; + $html .= 'kurzbz])) + { + $html .= ' value="'.$getParams[$filter->kurzbz].'"'; + } + $html .= ' >'; $html .= '';