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 '