This commit is contained in:
Christian Paminger
2014-11-10 08:25:48 +00:00
parent 6dfe76e95b
commit cd5de08a55
6 changed files with 79 additions and 37 deletions
+33 -5
View File
@@ -179,12 +179,12 @@ class filter extends basis_db
switch ($filter->type)
{
case 'select':
$html.='<select name="'.$filter->kurzbz.'[]" ';
$html.='<select class="form-control" name="'.$filter->kurzbz.'[]" ';
$html.=$filter->htmlattr;
$html.=' >';
$this->loadValues($filter->sql, $filter->valuename, $filter->showvalue);
foreach ($this->values as $value)
$html.="\n\t\t\t\t".'<option value="'.$value->value.'">'.$value->text.'</option>';
$html.="\n\t\t\t\t".'<option class="form-control" value="'.$value->value.'">'.$value->text.'</option>';
$html.="\n\t\t\t</select>";
}
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;
}
}
?>
+30 -2
View File
@@ -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<count($result);$i++)
{
$result[$i] = mb_str_replace('$','',$result[$i]);
}
return array_unique($result);
}
}
?>
+12 -2
View File
@@ -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 '<strong>fue.tbl_aktivitaet: '.$db->db_last_error().'</strong><br>';
else
echo ' fue.tbl_aktivitaet: Spalte sort hinzugefuegt!<br>';
}
// 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 '<strong>public.tbl_studiensemester: '.$db->db_last_error().'</strong><br>';
else
echo ' public.tbl_studiensemester: Spalte studienjahr_kurzbz hinzugefuegt!<br>';
}
echo '<br><br><br>';
$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"),
+1 -1
View File
@@ -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';
+2 -2
View File
@@ -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']))
+1 -25
View File
@@ -70,7 +70,7 @@ elseif($statistik->sql!='')
$variablenstring = $statistik->sql;
}
$vars = parseVars($variablenstring);
$vars = $statistik->parseVars($variablenstring);
//var_dump($vars);
echo '
<script type="text/javascript">
@@ -120,29 +120,5 @@ echo '
echo '</body>
</html>';
/***FUNCTIONS***/
/**
*
* 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<count($result);$i++)
{
$result[$i] = mb_str_replace('$','',$result[$i]);
}
return array_unique($result);
}
?>