diff --git a/include/filter.class.php b/include/filter.class.php index 366ab6ac8..89b8ff35c 100644 --- a/include/filter.class.php +++ b/include/filter.class.php @@ -179,12 +179,12 @@ class filter extends basis_db switch ($filter->type) { case 'select': - $html.='"; } return $html; @@ -209,16 +209,23 @@ class filter extends basis_db $obj->text=''; for ($i=0; $i<$this->db_num_fields(); $i++) { - if ($this->db_field_name(null,$i)==$valuename) + if ($this->db_field_name(null,$i)=='value') { $obj->value=$row[$i]; if ($showvalue) $obj->text.=' ('.$row[$i].') '; } + elseif ($this->db_field_name(null,$i)=='name') + { + if ($showvalue) + $obj->text.=' - '.$row[$i]; + else + $obj->text.=$row[$i]; + } else - $obj->text.='- '.$row[$i].' '; + $obj->text.=' - '.$row[$i]; } - $obj->text = mb_substr($obj->text,1); + //$obj->text = mb_substr($obj->text,1); $this->values[] = $obj; } //var_dump($this); @@ -384,5 +391,26 @@ class filter extends basis_db } } + /** + * Ermittelt alle POST/GET-Variablen + * @return Zeichenkette fuer eine GET-Methode, false im Fehlerfall + */ + public function getVars() + { + $vars=''; + foreach($_REQUEST as $name=>$value) + { + if (is_array($value)) + { + foreach($value AS $val) + $vars.='&'.$name.'='.$val; + } + else + $vars.='&'.$name.'='.$value; + } + //$vars.='&statistik_kurzbz='.$_REQUEST['statistik_kurzbz']; + return $vars; + } + } ?> diff --git a/include/statistik.class.php b/include/statistik.class.php index 15f7eb65f..94d0cfe78 100644 --- a/include/statistik.class.php +++ b/include/statistik.class.php @@ -152,12 +152,17 @@ class statistik extends basis_db } } /** - * Laedt alle Statistiken + * Laedt alle Statistiken einer Gruppe, Parameter publish zum Filtern. * @return true wenn ok, sonst false */ - public function getGruppe($gruppe) + public function getGruppe($gruppe,$publish=null) { $qry = "SELECT * FROM public.tbl_statistik WHERE gruppe='$gruppe'"; + if ($publish==true) + $qry.=' AND publish '; + elseif ($publish==false) + $qry.=' AND NOT publish '; + $qry.=' ORDER BY bezeichnung;'; if($result = $this->db_query($qry)) { @@ -561,5 +566,28 @@ class statistik extends basis_db { return json_encode($this->json); } + /** + * + * Parst Variablen aus einem String und liefert diese als Array zurueck + * @param $value String mit Variablen + * z.B.: "Select * from tbl_person where person_id<'$person_id'" + * oder "../content/statistik/bewerberstatistik.php?stsem=$StSem&stg_kz=$stg_kz" + * + * @return Array mit den Variablennamen + */ +function parseVars($value) +{ + $result = array(); + + $check = '/\$[0-9A-z]+/'; + preg_match_all($check, $value, $result); + $result = $result[0]; + + for($i=0;$i diff --git a/system/checksystem.php b/system/checksystem.php index 1f2ca0cd4..a2163d23d 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -2112,13 +2112,23 @@ if(!$result = @$db->db_query("SELECT sort FROM lehre.tbl_studienplan_lehrveranst if(!$result = @$db->db_query("SELECT sort FROM fue.tbl_aktivitaet LIMIT 1;")) { $qry = "ALTER TABLE fue.tbl_aktivitaet ADD COLUMN sort integer;"; - if(!$db->db_query($qry)) echo 'fue.tbl_aktivitaet: '.$db->db_last_error().'
'; else echo ' fue.tbl_aktivitaet: Spalte sort hinzugefuegt!
'; } +// Spalte studienjahr_kurzbz in public.tbl_studiensemester +if(!$result = @$db->db_query("SELECT studienjahr_kurzbz FROM public.tbl_studiensemester LIMIT 1;")) +{ + $qry = "ALTER TABLE public.tbl_studiensemester ADD COLUMN studienjahr_kurzbz varchar(16);"; + if(!$db->db_query($qry)) + echo 'public.tbl_studiensemester: '.$db->db_last_error().'
'; + else + echo ' public.tbl_studiensemester: Spalte studienjahr_kurzbz hinzugefuegt!
'; +} + + echo '


'; $tabellen=array( @@ -2320,7 +2330,7 @@ $tabellen=array( "public.tbl_studentlehrverband" => array("student_uid","studiensemester_kurzbz","studiengang_kz","semester","verband","gruppe","updateamum","updatevon","insertamum","insertvon","ext_id"), "public.tbl_studiengang" => array("studiengang_kz","kurzbz","kurzbzlang","typ","bezeichnung","english","farbe","email","telefon","max_semester","max_verband","max_gruppe","erhalter_kz","bescheid","bescheidbgbl1","bescheidbgbl2","bescheidgz","bescheidvom","orgform_kurzbz","titelbescheidvom","aktiv","ext_id","zusatzinfo_html","moodle","sprache","testtool_sprachwahl","studienplaetze","oe_kurzbz","lgartcode","mischform","projektarbeit_note_anzeige"), "public.tbl_studiengangstyp" => array("typ","bezeichnung","beschreibung"), - "public.tbl_studiensemester" => array("studiensemester_kurzbz","bezeichnung","start","ende","ext_id"), + "public.tbl_studiensemester" => array("studiensemester_kurzbz","bezeichnung","start","ende","studienjahr_kurzbz","ext_id"), "public.tbl_tag" => array("tag"), "public.tbl_variable" => array("name","uid","wert"), "public.tbl_vorlage" => array("vorlage_kurzbz","bezeichnung","anmerkung","mimetype"), diff --git a/vilesci/statistik/filter_details.php b/vilesci/statistik/filter_details.php index a6a4f1754..b26fba89f 100644 --- a/vilesci/statistik/filter_details.php +++ b/vilesci/statistik/filter_details.php @@ -43,7 +43,7 @@ $filter = new filter(); $filter->filter_id = ''; $filter->kurzbz = 'NewFilter'; - $filter->sql = ''; + $filter->sql = 'SELECT foo AS value, bar AS name FROM foobar WHERE ... ORDER BY name'; $filter->valuename = ''; $filter->showvalue = true; $filter->type = 'select'; diff --git a/vilesci/statistik/filter_overview.php b/vilesci/statistik/filter_overview.php index cdfd803d5..63a84c33a 100644 --- a/vilesci/statistik/filter_overview.php +++ b/vilesci/statistik/filter_overview.php @@ -32,8 +32,8 @@ $user = get_uid(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); -if(!$rechte->isBerechtigt('basis/statistik', 'suid')) - die('Sie haben keine Berechtigung für diese Seite'); +if(!$rechte->isBerechtigt('basis/statistik', 's')) + die('Sie haben keine Berechtigung (basis/statistik) für diese Seite'); if(isset($_POST['action']) && $_POST['action']=='delete' && isset($_POST['filter_id'])) diff --git a/vilesci/statistik/statistik.php b/vilesci/statistik/statistik.php index e6e0d5ea0..d92dbf6f1 100644 --- a/vilesci/statistik/statistik.php +++ b/vilesci/statistik/statistik.php @@ -70,7 +70,7 @@ elseif($statistik->sql!='') $variablenstring = $statistik->sql; } -$vars = parseVars($variablenstring); +$vars = $statistik->parseVars($variablenstring); //var_dump($vars); echo '