mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-21 08:52:21 +00:00
Merge branch 'master' of https://github.com/FH-Complete/FHC-Core
This commit is contained in:
+14
-13
@@ -16,7 +16,7 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
*
|
||||
*/
|
||||
/**
|
||||
@@ -38,6 +38,7 @@ abstract class db extends basis
|
||||
define('FHC_INTEGER',1);
|
||||
define('FHC_STRING',2);
|
||||
define('FHC_BOOLEAN',3);
|
||||
define('FHC_LANG_ARRAY',4);
|
||||
}
|
||||
if (is_null(db::$db_conn))
|
||||
$this->db_connect();
|
||||
@@ -56,7 +57,7 @@ abstract class db extends basis
|
||||
abstract function db_affected_rows($result=null);
|
||||
abstract function db_result_seek($result=null, $offset);
|
||||
abstract function db_last_error();
|
||||
abstract function db_free_result($result=null);
|
||||
abstract function db_free_result($result=null);
|
||||
abstract function db_version();
|
||||
abstract function db_escape($var);
|
||||
abstract function db_null_value($var, $qoute=true);
|
||||
@@ -67,7 +68,7 @@ abstract class db extends basis
|
||||
abstract function db_getResultJSON($result = null);
|
||||
abstract function db_parse_array($var);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Erzeugt aus den Funktionsparameter eine SQL Abfrage
|
||||
* --- Wird in der Art Sonderzeichen gefunden wird dieses als FunktionsParmeter verarbeitet
|
||||
@@ -95,7 +96,7 @@ abstract class db extends basis
|
||||
$where=(!is_null($pWhere)?trim($pWhere):'');
|
||||
$order=(!is_null($pOrder)?trim($pOrder):'');
|
||||
$limit=(is_numeric($pLimit)?$pLimit:'');
|
||||
|
||||
|
||||
if (empty($sql) && empty($art))
|
||||
{
|
||||
$this->errormsg='die SQL Art fehlt!';
|
||||
@@ -123,7 +124,7 @@ abstract class db extends basis
|
||||
$sql.=($where?' '.trim($where).' ':'');
|
||||
else
|
||||
$sql.=($where?' where '.trim($where).' ':'');
|
||||
if ($art=='select')
|
||||
if ($art=='select')
|
||||
{
|
||||
// FIXME: If $where is e.g. 'orderstatus' because there's a column named orderstatus, this would
|
||||
// fail horribly? Same for the 'where'-stuff above. -MP
|
||||
@@ -131,22 +132,22 @@ abstract class db extends basis
|
||||
$sql.=($order?trim($order).' ':'');
|
||||
else
|
||||
$sql.=($order?' order by '.trim($order).' ':'');
|
||||
}
|
||||
if ($art=='select')
|
||||
}
|
||||
if ($art=='select')
|
||||
{
|
||||
if (strstr('limit',strtolower($where)))
|
||||
$sql.=($limit?trim($limit).' ':'');
|
||||
else
|
||||
else
|
||||
$sql.=($limit?' limit '.trim($limit).' ':'');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!$results=$this->db_query($sql))
|
||||
{
|
||||
$this->errormsg=$this->db_last_error();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if ($art!='select' && empty($pSql))
|
||||
return true;
|
||||
|
||||
@@ -159,9 +160,9 @@ abstract class db extends basis
|
||||
$rows=array();
|
||||
while($row = $this->db_fetch_object($results))
|
||||
$rows[]=$row;
|
||||
return $rows;
|
||||
}
|
||||
|
||||
return $rows;
|
||||
}
|
||||
|
||||
}
|
||||
require_once(dirname(__FILE__).'/'.DB_SYSTEM.'.class.php');
|
||||
|
||||
|
||||
+121
-121
@@ -1,121 +1,121 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Werner Masik <werner@gefi.at>
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class bisorgform extends basis_db
|
||||
{
|
||||
public $new;
|
||||
public $result = array();
|
||||
|
||||
//Tabellenspalten
|
||||
public $bisorgform_kurzbz;
|
||||
public $code;
|
||||
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param code des zu ladenden Datensatzes
|
||||
*/
|
||||
public function __construct($code=null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if(!is_null($code))
|
||||
$this->load($code);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Datensatz
|
||||
* @param code des zu ladenden Datensatzes
|
||||
*/
|
||||
public function load($code)
|
||||
{
|
||||
//code auf gueltigkeit pruefen
|
||||
if(!is_numeric($code) || $code == '')
|
||||
{
|
||||
$this->errormsg = 'code muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//laden des Datensatzes
|
||||
$qry = "SELECT
|
||||
distinct code,bisorgform_kurzbz
|
||||
FROM
|
||||
bis.tbl_orgform
|
||||
WHERE
|
||||
code=".$this->db_add_param($code, FHC_INTEGER);
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->bisorgform_kurzbz = $row->bisorgform_kurzbz;
|
||||
$this->code = $row->code;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Laedt alle BIS Orgformen
|
||||
* @return List mit Orgformen wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function getList()
|
||||
{
|
||||
//laden des Datensatzes
|
||||
$qry = "SELECT
|
||||
distinct code,bisorgform_kurzbz
|
||||
FROM
|
||||
bis.tbl_bisorgfom
|
||||
ORDER BY code";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
$this->result = array();
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new bisorgform();
|
||||
$obj->bisorgform_kurzbz = $row->bisorgform_kurzbz;
|
||||
$obj->code = $row->code;
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return $this->result;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Werner Masik <werner@gefi.at>
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class bisorgform extends basis_db
|
||||
{
|
||||
public $new;
|
||||
public $result = array();
|
||||
|
||||
//Tabellenspalten
|
||||
public $bisorgform_kurzbz;
|
||||
public $code;
|
||||
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
* @param code des zu ladenden Datensatzes
|
||||
*/
|
||||
public function __construct($code=null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if(!is_null($code))
|
||||
$this->load($code);
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Datensatz
|
||||
* @param code des zu ladenden Datensatzes
|
||||
*/
|
||||
public function load($code)
|
||||
{
|
||||
//code auf gueltigkeit pruefen
|
||||
if(!is_numeric($code) || $code == '')
|
||||
{
|
||||
$this->errormsg = 'code muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
//laden des Datensatzes
|
||||
$qry = "SELECT
|
||||
distinct code,bisorgform_kurzbz
|
||||
FROM
|
||||
bis.tbl_orgform
|
||||
WHERE
|
||||
code=".$this->db_add_param($code, FHC_INTEGER);
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->bisorgform_kurzbz = $row->bisorgform_kurzbz;
|
||||
$this->code = $row->code;
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Laedt alle BIS Orgformen
|
||||
* @return List mit Orgformen wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function getList()
|
||||
{
|
||||
//laden des Datensatzes
|
||||
$qry = "SELECT
|
||||
distinct code,bisorgform_kurzbz
|
||||
FROM
|
||||
bis.tbl_bisorgform
|
||||
ORDER BY code";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
$this->result = array();
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new bisorgform();
|
||||
$obj->bisorgform_kurzbz = $row->bisorgform_kurzbz;
|
||||
$obj->code = $row->code;
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return $this->result;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -283,6 +283,7 @@ class gebiet extends basis_db
|
||||
public function check_gebiet($gebiet_id)
|
||||
{
|
||||
$this->errormsg = '';
|
||||
$this->warningmsg = '';
|
||||
$this->load($gebiet_id);
|
||||
|
||||
//wenn levels verwendet werden muss maxfragen gesetzt sein
|
||||
@@ -416,7 +417,7 @@ class gebiet extends basis_db
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->errormsg .= "Frage Nummer $row->nummer (ID: $row->frage_id) Sprache $row->sprache hat mehrere gleiche Antworten.\n";
|
||||
$this->warningmsg .= "Frage Nummer $row->nummer (ID: $row->frage_id) Sprache $row->sprache hat mehrere gleiche Antworten.\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -823,9 +823,9 @@ class lehrveranstaltung extends basis_db
|
||||
'lvs = '.$this->db_add_param($this->lvs).', '.
|
||||
'alvs = '.$this->db_add_param($this->alvs).', '.
|
||||
'lvps = '.$this->db_add_param($this->lvps).', '.
|
||||
'las = '.$this->db_add_param($this->las).' '.
|
||||
'benotung = '.$this->db_add_param($this->benotung).' '.
|
||||
'lvinfo = '.$this->db_add_param($this->lvinfo).' '.
|
||||
'las = '.$this->db_add_param($this->las).', '.
|
||||
'benotung = '.$this->db_add_param($this->benotung, FHC_BOOLEAN).', '.
|
||||
'lvinfo = '.$this->db_add_param($this->lvinfo, FHC_BOOLEAN).' '.
|
||||
'WHERE lehrveranstaltung_id = ' . $this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER, false) . ';';
|
||||
}
|
||||
|
||||
|
||||
@@ -632,42 +632,29 @@ class organisationseinheit extends basis_db
|
||||
organisationseinheittyp_kurzbz,
|
||||
aktiv,
|
||||
lehre,
|
||||
sum(a.anzahl) AS anzahl FROM (
|
||||
SELECT
|
||||
tbl_organisationseinheit.oe_kurzbz,
|
||||
tbl_organisationseinheit.oe_parent_kurzbz,
|
||||
tbl_organisationseinheit.bezeichnung,
|
||||
tbl_organisationseinheit.organisationseinheittyp_kurzbz,
|
||||
tbl_organisationseinheit.aktiv,
|
||||
tbl_organisationseinheit.lehre,
|
||||
(SELECT COUNT (tbl_zeitaufzeichnung.*) FROM campus.tbl_zeitaufzeichnung
|
||||
WHERE tbl_organisationseinheit.oe_kurzbz IN (tbl_zeitaufzeichnung.oe_kurzbz_1,tbl_zeitaufzeichnung.oe_kurzbz_2) AND tbl_zeitaufzeichnung.uid=".$this->db_add_param($user)."
|
||||
$zeit) AS anzahl
|
||||
FROM public.tbl_organisationseinheit
|
||||
WHERE
|
||||
(SELECT COUNT (tbl_zeitaufzeichnung.*) FROM campus.tbl_zeitaufzeichnung
|
||||
WHERE tbl_organisationseinheit.oe_kurzbz IN (tbl_zeitaufzeichnung.oe_kurzbz_1,tbl_zeitaufzeichnung.oe_kurzbz_2) AND tbl_zeitaufzeichnung.uid=".$this->db_add_param($user)."
|
||||
$zeit) > $anzahl_ereignisse
|
||||
GROUP BY tbl_organisationseinheit.oe_kurzbz, tbl_organisationseinheit.oe_parent_kurzbz, tbl_organisationseinheit.bezeichnung, tbl_organisationseinheit.organisationseinheittyp_kurzbz, tbl_organisationseinheit.aktiv, tbl_organisationseinheit.lehre, anzahl
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
tbl_organisationseinheit.oe_kurzbz,
|
||||
tbl_organisationseinheit.oe_parent_kurzbz,
|
||||
tbl_organisationseinheit.bezeichnung,
|
||||
tbl_organisationseinheit.organisationseinheittyp_kurzbz,
|
||||
tbl_organisationseinheit.aktiv,
|
||||
tbl_organisationseinheit.lehre,
|
||||
'0' AS anzahl
|
||||
FROM public.tbl_organisationseinheit";
|
||||
count(tbl_zeitaufzeichnung.zeitaufzeichnung_id)
|
||||
FROM campus.tbl_zeitaufzeichnung
|
||||
JOIN public.tbl_organisationseinheit ON(oe_kurzbz IN (oe_kurzbz_1,oe_kurzbz_2))
|
||||
WHERE tbl_zeitaufzeichnung.uid=".$this->db_add_param($user)."
|
||||
$zeit
|
||||
GROUP BY tbl_organisationseinheit.oe_kurzbz HAVING COUNT(*) > $anzahl_ereignisse
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
oe_kurzbz,
|
||||
oe_parent_kurzbz,
|
||||
bezeichnung,
|
||||
organisationseinheittyp_kurzbz,
|
||||
aktiv,
|
||||
lehre,
|
||||
'0'
|
||||
FROM public.tbl_organisationseinheit";
|
||||
|
||||
if(!is_null($aktiv))
|
||||
$qry.=" WHERE aktiv=".$this->db_add_param($aktiv, FHC_BOOLEAN);
|
||||
|
||||
$qry .=" ) AS a
|
||||
GROUP BY oe_kurzbz,oe_parent_kurzbz,bezeichnung,organisationseinheittyp_kurzbz,aktiv,lehre
|
||||
ORDER BY anzahl DESC, bezeichnung";
|
||||
$qry .=" ORDER BY count DESC,bezeichnung,oe_kurzbz";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
@@ -681,7 +668,7 @@ class organisationseinheit extends basis_db
|
||||
$obj->organisationseinheittyp_kurzbz = $row->organisationseinheittyp_kurzbz;
|
||||
$obj->aktiv = $this->db_parse_bool($row->aktiv);
|
||||
$obj->lehre = $this->db_parse_bool($row->lehre);
|
||||
$obj->anzahl = $row->anzahl;
|
||||
$obj->anzahl = $row->count;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
|
||||
+62
-7
@@ -22,6 +22,7 @@
|
||||
/**
|
||||
* Datenbank Abstraktionsklasse fuer Postgresql Datenbank
|
||||
*/
|
||||
require_once('sprache.class.php');
|
||||
|
||||
class basis_db extends db
|
||||
{
|
||||
@@ -292,6 +293,27 @@ class basis_db extends db
|
||||
$var = $this->db_null_value($var, false);
|
||||
break;
|
||||
|
||||
case FHC_LANG_ARRAY:
|
||||
|
||||
$sprache = new sprache();
|
||||
$sprache->getAll(true);
|
||||
$buf = $var;
|
||||
$var = array();
|
||||
$languages = $sprache->getAllIndexesSorted();
|
||||
|
||||
foreach($languages as $sk => $sp)
|
||||
{
|
||||
if(!$sp || !isset($buf[$sp]))
|
||||
$var[$sk] = "";
|
||||
else
|
||||
$var[$sk] = $this->db_escape($buf[$sp]);
|
||||
}
|
||||
$var = str_replace('\\', '\\\\', $var);
|
||||
$var = str_replace('"', '\\\"', $var);
|
||||
$var = '\'{"' . join('","', $var) . '"}\'';
|
||||
|
||||
break;
|
||||
|
||||
case FHC_BOOLEAN:
|
||||
if($var===true)
|
||||
$var='true';
|
||||
@@ -350,15 +372,48 @@ class basis_db extends db
|
||||
*/
|
||||
public function db_parse_array($var)
|
||||
{
|
||||
if ($var == '')
|
||||
if ($var == '')
|
||||
return;
|
||||
preg_match_all('/(?<=^\{|,)(([^,"{]*)|\s*"((?:[^"\\\\]|\\\\(?:.|[0-9]+|x[0-9a-f]+))*)"\s*)(,|(?<!^\{)(?=\}$))/i', $var, $matches, PREG_SET_ORDER);
|
||||
$values = array();
|
||||
foreach ($matches as $match)
|
||||
preg_match_all('/(?<=^\{|,)(([^,"{]*)|\s*"((?:[^"\\\\]|\\\\(?:.|[0-9]+|x[0-9a-f]+))*)"\s*)(,|(?<!^\{)(?=\}$))/i', $var, $matches, PREG_SET_ORDER);
|
||||
$values = array();
|
||||
foreach ($matches as $match)
|
||||
{
|
||||
$values[] = $match[3] != '' ? stripcslashes($match[3]) : (strtolower($match[2]) == 'null' ? null : $match[2]);
|
||||
}
|
||||
return $values;
|
||||
$values[] = $match[3] != '' ? stripcslashes($match[3]) : (strtolower($match[2]) == 'null' ? null : $match[2]);
|
||||
}
|
||||
return $values;
|
||||
}
|
||||
|
||||
/**
|
||||
* Erstellt aus einem DB Array ein PHP Array
|
||||
* @param $var DB Result Array Spalte
|
||||
* @return php array
|
||||
*/
|
||||
public function db_parse_lang_array($var)
|
||||
{
|
||||
|
||||
if ($var == '')
|
||||
return;
|
||||
preg_match_all('/(?<=^\{|,)(([^,"{]*)|\s*"((?:[^"\\\\]|\\\\(?:.|[0-9]+|x[0-9a-f]+))*)"\s*)(,|(?<!^\{)(?=\}$))/i', $var, $matches, PREG_SET_ORDER);
|
||||
$values = array();
|
||||
|
||||
$sprache = new sprache();
|
||||
$sprache->loadIndexArray();
|
||||
|
||||
$sprache = new sprache();
|
||||
$sprache->getAll(true);
|
||||
$languages = $sprache->getAllIndexesSorted();
|
||||
|
||||
|
||||
foreach ($matches as $mk => $match)
|
||||
{
|
||||
$values[$languages[$mk+1]] = $match[3] != '' ? stripcslashes($match[3]) : (strtolower($match[2]) == 'null' ? null : $match[2]);
|
||||
}
|
||||
return $values;
|
||||
}
|
||||
}
|
||||
|
||||
function indexSort($a, $b)
|
||||
{
|
||||
return strcmp($a->index, $b->index);
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -587,8 +587,11 @@ class prestudent extends person
|
||||
case "interessenten":
|
||||
$qry.=" AND a.rolle='Interessent'";
|
||||
break;
|
||||
case "bewerbungnichtabgeschickt":
|
||||
$qry.=" AND a.rolle='Interessent' AND bewerbung_abgeschicktamum is null";
|
||||
break;
|
||||
case "bewerbungabgeschickt":
|
||||
$qry.=" AND a.rolle='Interessent' AND bewerbung_abgeschicktamum is not null";
|
||||
$qry.=" AND a.rolle='Interessent' AND bewerbung_abgeschicktamum is not null AND bestaetigtam is null";
|
||||
break;
|
||||
case "statusbestaetigt":
|
||||
$qry.=" AND a.rolle='Interessent' AND bestaetigtam is not null";
|
||||
|
||||
+58
-52
@@ -15,7 +15,7 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
@@ -30,12 +30,12 @@ class pruefling extends basis_db
|
||||
public $registriert;
|
||||
public $prestudent_id;
|
||||
public $semester;
|
||||
|
||||
|
||||
// ErgebnisArray
|
||||
public $result=array();
|
||||
public $num_rows=0;
|
||||
public $new;
|
||||
|
||||
|
||||
/**
|
||||
* Konstruktor - Laedt optional einen pruefling
|
||||
* @param $frage_id Frage die geladen werden soll (default=null)
|
||||
@@ -47,7 +47,7 @@ class pruefling extends basis_db
|
||||
if($pruefling_id != null)
|
||||
$this->load($pruefling_id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt Pruefling mit der uebergebenen ID
|
||||
* @param $pruefling_id ID der Frage die geladen werden soll
|
||||
@@ -55,7 +55,7 @@ class pruefling extends basis_db
|
||||
public function load($pruefling_id)
|
||||
{
|
||||
$qry = "SELECT * FROM testtool.tbl_pruefling WHERE pruefling_id=".$this->db_add_param($pruefling_id, FHC_INTEGER);
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
@@ -68,21 +68,21 @@ class pruefling extends basis_db
|
||||
$this->semester = $row->semester;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Kein Eintrag gefunden fuer $pruefling_id";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler beim Laden";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Prueft die Variablen vor dem Speichern
|
||||
* Prueft die Variablen vor dem Speichern
|
||||
* auf Gueltigkeit.
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
@@ -90,7 +90,7 @@ class pruefling extends basis_db
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Speichert die Benutzerdaten in die Datenbank
|
||||
* Wenn $new auf true gesetzt ist wird ein neuer Datensatz angelegt
|
||||
@@ -102,7 +102,7 @@ class pruefling extends basis_db
|
||||
//Variablen auf Gueltigkeit pruefen
|
||||
if(!$this->validate())
|
||||
return false;
|
||||
|
||||
|
||||
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
|
||||
{
|
||||
$qry = 'BEGIN;INSERT INTO testtool.tbl_pruefling (studiengang_kz, idnachweis, registriert, prestudent_id, semester) VALUES('.
|
||||
@@ -113,7 +113,7 @@ class pruefling extends basis_db
|
||||
$this->db_add_param($this->semester).");";
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
$qry = 'UPDATE testtool.tbl_pruefling SET'.
|
||||
' studiengang_kz='.$this->db_add_param($this->studiengang_kz, FHC_INTEGER).','.
|
||||
' idnachweis='.$this->db_add_param($this->idnachweis).','.
|
||||
@@ -122,7 +122,7 @@ class pruefling extends basis_db
|
||||
' prestudent_id='.$this->db_add_param($this->prestudent_id, FHC_INTEGER).
|
||||
" WHERE pruefling_id=".$this->db_add_param($this->pruefling_id, FHC_INTEGER, false).";";
|
||||
}
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($this->new)
|
||||
@@ -136,7 +136,7 @@ class pruefling extends basis_db
|
||||
$this->db_query('COMMIT;');
|
||||
return true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK;');
|
||||
$this->errormsg = 'Fehler beim Lesen der Sequence';
|
||||
@@ -150,19 +150,19 @@ class pruefling extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Speichern der Frage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt einen Puefling anhand der Prestudent_id
|
||||
*
|
||||
@@ -172,7 +172,7 @@ class pruefling extends basis_db
|
||||
public function getPruefling($prestudent_id)
|
||||
{
|
||||
$qry = "SELECT * FROM testtool.tbl_pruefling WHERE prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER);
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
@@ -185,21 +185,21 @@ class pruefling extends basis_db
|
||||
$this->semester = $row->semester;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Kein Eintrag gefunden";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler beim Laden";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Ermittelt den aktuellen Level (schwierigkeitsgrad der Frage)
|
||||
* Ermittelt den aktuellen Level (schwierigkeitsgrad der Frage)
|
||||
* des Prueflings fuer das uebergebene Gebiet
|
||||
*
|
||||
* @param $pruefling_id
|
||||
@@ -208,17 +208,17 @@ class pruefling extends basis_db
|
||||
public function getPrueflingLevel($pruefling_id, $gebiet_id)
|
||||
{
|
||||
$gebiet = new gebiet($gebiet_id);
|
||||
|
||||
|
||||
//wenn Levelsystem fuer dieses Gebiet aktiviert ist
|
||||
if($gebiet->level_start!='')
|
||||
{
|
||||
//Maximal und Minimal Level fuer dieses Gebiet ermitteln
|
||||
$max_level = 0;
|
||||
$min_level = 0;
|
||||
|
||||
$qry = "SELECT max(level) as max, min(level) as min FROM testtool.tbl_frage
|
||||
|
||||
$qry = "SELECT max(level) as max, min(level) as min FROM testtool.tbl_frage
|
||||
WHERE gebiet_id=".$this->db_add_param($gebiet_id, FHC_INTEGER);
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
@@ -226,24 +226,24 @@ class pruefling extends basis_db
|
||||
$max_level = $row->max;
|
||||
$min_level = $row->min;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'unbekannter Fehler in getPrueflingLevel';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln des Pruefling-Levels';
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
//alle bisherigen Antworten fuer dieses Gebiet holen
|
||||
$qry = "SELECT
|
||||
tbl_vorschlag.punkte
|
||||
FROM
|
||||
testtool.tbl_pruefling_frage
|
||||
JOIN testtool.tbl_vorschlag USING(frage_id)
|
||||
FROM
|
||||
testtool.tbl_pruefling_frage
|
||||
JOIN testtool.tbl_vorschlag USING(frage_id)
|
||||
JOIN testtool.tbl_antwort USING(vorschlag_id)
|
||||
JOIN testtool.tbl_frage USING(frage_id)
|
||||
WHERE
|
||||
@@ -251,7 +251,7 @@ class pruefling extends basis_db
|
||||
tbl_pruefling_frage.pruefling_id=".$this->db_add_param($pruefling_id, FHC_INTEGER)." AND
|
||||
tbl_antwort.pruefling_id = tbl_pruefling_frage.pruefling_id
|
||||
ORDER BY tbl_pruefling_frage.nummer ASC";
|
||||
|
||||
|
||||
$aktueller_level=$gebiet->level_start;
|
||||
$anzahl_richtig=0;
|
||||
$anzahl_falsch=0;
|
||||
@@ -265,13 +265,13 @@ class pruefling extends basis_db
|
||||
$anzahl_richtig++;
|
||||
$anzahl_falsch=0;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
//wenn die Frage falsch beantwortet wurde dann falsch-zaehler erhoehen
|
||||
$anzahl_richtig=0;
|
||||
$anzahl_falsch++;
|
||||
}
|
||||
|
||||
|
||||
//wenn einer der Zaehler das Sprunglevel erreicht hat, dann
|
||||
//in ein anderes Level springen
|
||||
if($anzahl_richtig==$gebiet->level_sprung_auf)
|
||||
@@ -286,54 +286,60 @@ class pruefling extends basis_db
|
||||
$anzahl_richtig=0;
|
||||
$anzahl_falsch=0;
|
||||
}
|
||||
|
||||
|
||||
//aktueller level darf nicht kleiner/groesser als der minimal/maximal Level sein
|
||||
if($aktueller_level<$min_level)
|
||||
$aktueller_level=$min_level;
|
||||
if($aktueller_level>$max_level)
|
||||
$aktueller_level=$max_level;
|
||||
}
|
||||
|
||||
|
||||
return $aktueller_level;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Abfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Berechnet das Reihungstestergebnis fuer einen Prestudenten
|
||||
*
|
||||
* @param $prestudent_id
|
||||
* @return Endpunkte des Reihungstests
|
||||
*/
|
||||
public function getReihungstestErgebnis($prestudent_id)
|
||||
public function getReihungstestErgebnis($prestudent_id, $punkte=false)
|
||||
{
|
||||
$qry = "SELECT * FROM testtool.vw_auswertung
|
||||
$qry = "SELECT * FROM testtool.vw_auswertung
|
||||
WHERE prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER);
|
||||
|
||||
|
||||
$ergebnis=0;
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
//wenn maxpunkte ueberschritten wurde -> 100%
|
||||
if($row->punkte>=$row->maxpunkte)
|
||||
{
|
||||
$prozent=100;
|
||||
$row->punkte = $row->maxpunkte;
|
||||
}
|
||||
else
|
||||
$prozent = ($row->punkte/$row->maxpunkte)*100;
|
||||
|
||||
$ergebnis+=$prozent*$row->gewicht;
|
||||
|
||||
if($punkte)
|
||||
$ergebnis +=$row->punkte;
|
||||
else
|
||||
$ergebnis+=$prozent*$row->gewicht;
|
||||
}
|
||||
return $ergebnis;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Abfrage';
|
||||
return false;
|
||||
|
||||
@@ -227,7 +227,7 @@ class reihungstest extends basis_db
|
||||
'studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).' '.
|
||||
'WHERE reihungstest_id='.$this->db_add_param($this->reihungstest_id, FHC_INTEGER, false).';';
|
||||
}
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($this->new)
|
||||
@@ -277,11 +277,11 @@ class reihungstest extends basis_db
|
||||
|
||||
if ($studiensemester_kurzbz!=null)
|
||||
$qry .=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz, FHC_STRING, false);
|
||||
|
||||
|
||||
if ($order!=null)
|
||||
$qry .=" ORDER BY ".$order;
|
||||
|
||||
|
||||
|
||||
|
||||
$qry.= ";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
@@ -326,12 +326,16 @@ class reihungstest extends basis_db
|
||||
*/
|
||||
public function getZukuenftige($include_id, $studiengang_kz)
|
||||
{
|
||||
$qry = "SELECT *, '1' as sortierung,(SELECT upper(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=tbl_reihungstest.studiengang_kz) as stg FROM public.tbl_reihungstest WHERE datum>=now()-'1 days'::interval AND studiengang_kz=".$this->db_add_param($studiengang_kz)."
|
||||
$qry = "
|
||||
SELECT *, (SELECT count(*) FROM public.tbl_prestudent WHERE reihungstest_id=a.reihungstest_id) as angemeldete_teilnehmer
|
||||
FROM (
|
||||
SELECT *, '1' as sortierung,(SELECT upper(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=tbl_reihungstest.studiengang_kz) as stg FROM public.tbl_reihungstest WHERE datum>=now()-'1 days'::interval AND studiengang_kz=".$this->db_add_param($studiengang_kz)."
|
||||
UNION
|
||||
SELECT *, '2' as sortierung,(SELECT upper(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=tbl_reihungstest.studiengang_kz) as stg FROM public.tbl_reihungstest WHERE datum>=now()-'1 days'::interval AND studiengang_kz!=".$this->db_add_param($studiengang_kz)."
|
||||
UNION
|
||||
SELECT *, '0' as sortierung,(SELECT upper(typ || kurzbz) FROM public.tbl_studiengang WHERE studiengang_kz=tbl_reihungstest.studiengang_kz) as stg FROM public.tbl_reihungstest WHERE reihungstest_id=".$this->db_add_param($include_id)."
|
||||
ORDER BY sortierung, stg, datum";
|
||||
ORDER BY sortierung, stg, datum
|
||||
) a";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
@@ -354,6 +358,7 @@ class reihungstest extends basis_db
|
||||
$obj->oeffentlich = $this->db_parse_bool($row->oeffentlich);
|
||||
$obj->freigeschaltet = $this->db_parse_bool($row->freigeschaltet);
|
||||
$obj->studiensemester_kurzbz =$row->studiensemester_kurzbz;
|
||||
$obj->angemeldete_teilnehmer = $row->angemeldete_teilnehmer;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
@@ -416,17 +421,17 @@ class reihungstest extends basis_db
|
||||
|
||||
return $obj->anzahl;
|
||||
}
|
||||
|
||||
|
||||
public function delete($reihungstest_id)
|
||||
{
|
||||
$qry = "DELETE from public.tbl_reihungstest WHERE reihungstest_id=".$this->db_add_param($reihungstest_id);
|
||||
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Löschen der Daten';
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
+13
-22
@@ -182,27 +182,18 @@ class service extends basis_db
|
||||
else
|
||||
$zeit = "";
|
||||
|
||||
$qry = " SELECT service_id,oe_kurzbz,bezeichnung,beschreibung,ext_id,content_id, sum(a.anzahl) AS anzahl FROM (
|
||||
SELECT
|
||||
tbl_service.*,
|
||||
(SELECT COUNT (tbl_zeitaufzeichnung.service_id) FROM campus.tbl_zeitaufzeichnung
|
||||
WHERE tbl_service.service_id=tbl_zeitaufzeichnung.service_id AND tbl_zeitaufzeichnung.uid=".$this->db_add_param($user)."
|
||||
$zeit
|
||||
) AS anzahl
|
||||
FROM public.tbl_service
|
||||
WHERE
|
||||
(SELECT COUNT (tbl_zeitaufzeichnung.service_id) FROM campus.tbl_zeitaufzeichnung
|
||||
WHERE tbl_service.service_id=tbl_zeitaufzeichnung.service_id AND tbl_zeitaufzeichnung.uid=".$this->db_add_param($user)."
|
||||
$zeit
|
||||
) > $anzahl_ereignisse
|
||||
GROUP BY tbl_service.service_id,tbl_service.beschreibung,tbl_service.ext_id,tbl_service.oe_kurzbz,tbl_service.bezeichnung,tbl_service.content_id,anzahl
|
||||
|
||||
UNION
|
||||
SELECT tbl_service.*, '0' AS anzahl
|
||||
FROM public.tbl_service
|
||||
) AS a
|
||||
GROUP BY service_id,oe_kurzbz,bezeichnung,beschreibung,ext_id,content_id
|
||||
ORDER BY anzahl DESC,bezeichnung,oe_kurzbz";
|
||||
$qry = " SELECT tbl_service.*, count(tbl_zeitaufzeichnung.service_id)
|
||||
FROM campus.tbl_zeitaufzeichnung
|
||||
JOIN public.tbl_service USING (service_id)
|
||||
WHERE tbl_zeitaufzeichnung.uid=".$this->db_add_param($user)."
|
||||
$zeit
|
||||
GROUP BY tbl_service.service_id HAVING COUNT(*) > $anzahl_ereignisse
|
||||
|
||||
UNION
|
||||
SELECT tbl_service.*, '0' AS anzahl
|
||||
FROM public.tbl_service
|
||||
|
||||
ORDER BY count DESC,bezeichnung,oe_kurzbz";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
@@ -215,7 +206,7 @@ class service extends basis_db
|
||||
$obj->beschreibung = $row->beschreibung;
|
||||
$obj->ext_id = $row->ext_id;
|
||||
$obj->oe_kurzbz = $row->oe_kurzbz;
|
||||
$obj->anzahl = $row->anzahl;
|
||||
$obj->anzahl = $row->count;
|
||||
$obj->content_id = $row->content_id;
|
||||
|
||||
$this->result[] = $obj;
|
||||
|
||||
+317
-271
@@ -1,271 +1,317 @@
|
||||
<?php
|
||||
/* Copyright (C) 2010 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Karl Burkhart <burkhart@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Klasse Sprache
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class sprache extends basis_db
|
||||
{
|
||||
public $result;
|
||||
public static $index_arr = array();
|
||||
public $sprache; // string
|
||||
public $locale;
|
||||
public $index; // int, id des array index
|
||||
public $content; // boolean
|
||||
public $bezeichnung_arr;
|
||||
|
||||
/**
|
||||
*
|
||||
* Konstruktor
|
||||
* @param Sprache die geladen werden soll (Default=null)
|
||||
*/
|
||||
public function __construct($sprache = null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if(!is_null($sprache))
|
||||
$this->load($sprache);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Lädt die Sprache
|
||||
* @param $sprache die geladen werden soll
|
||||
* @return true bei Erfolg, false wenn ein Fehler aufgetreten ist
|
||||
*/
|
||||
public function load($sprache)
|
||||
{
|
||||
$qry = "SELECT *,".$this->getSprachQuery('bezeichnung')." FROM public.tbl_sprache WHERE sprache=".$this->db_add_param($sprache, FHC_STRING, false).";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->sprache = $row->sprache;
|
||||
$this->locale = $row->locale;
|
||||
$this->index = $row->index;
|
||||
$this->content = $this->db_parse_bool($row->content);
|
||||
$this->bezeichnung_arr=$this->parseSprachResult('bezeichnung',$row);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Sprache nicht gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler bei der Abfrage.";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Lädt alle verfügbaren Sprachen
|
||||
* @return true bei Erfolg, false wenn ein Fehler aufgetreten ist.
|
||||
*/
|
||||
public function getAll($content=null)
|
||||
{
|
||||
$qry = "SELECT *,".$this->getSprachQuery('bezeichnung')." FROM public.tbl_sprache";
|
||||
|
||||
if(!is_null($content))
|
||||
$qry.= " WHERE content=".$this->db_add_param($content, FHC_BOOLEAN);
|
||||
$qry.=" ORDER BY sprache";
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg ="Fehler bei der Abfrage.";
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$sprache = new sprache();
|
||||
$sprache->sprache = $row->sprache;
|
||||
$sprache->locale = $row->locale;
|
||||
$sprache->index = $row->index;
|
||||
$sprache->content = $this->db_parse_bool($row->content);
|
||||
$sprache->bezeichnung_arr=$this->parseSprachResult('bezeichnung',$row);
|
||||
|
||||
$this->result[] = $sprache;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Lädt das Index Array
|
||||
* @return true bei Erfolg, false wenn ein Fehler aufgetreten ist.
|
||||
*/
|
||||
public function loadIndexArray()
|
||||
{
|
||||
$qry = "SELECT sprache, index FROM public.tbl_sprache WHERE index is not null ORDER BY index";
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg ="Fehler bei der Abfrage.";
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
self::$index_arr[$row->sprache]=$row->index;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Löscht die übergebene Sprache
|
||||
* @param $sprache die gelöscht werden soll
|
||||
*/
|
||||
public function delete($sprache)
|
||||
{
|
||||
$qry = "DELETE FROM public.tbl_sprache WHERE sprache = ".$this->db_add_param($sprache, FHC_STRING, false).";";
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = "Fehler beim löschen der Sprache aufgetreten.";
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Liefert die Anzahl aller aktiven Sprachen zurück
|
||||
* @return $anzahl der Sprachen, false im Fehlerfall
|
||||
*/
|
||||
public function getAnzahl()
|
||||
{
|
||||
$anzahl = 0;
|
||||
$qry = 'SELECT count(sprache) as anzahl FROM public.tbl_sprache WHERE content = true;';
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler aufgetreten';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$anzahl = $row->anzahl;
|
||||
}
|
||||
|
||||
return $anzahl;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Liefert die Sprache eines Index zurück
|
||||
* @param $index der Sprache die gesucht wird
|
||||
* @return $sprache, false im Fehlerfall
|
||||
*/
|
||||
public function getSpracheFromIndex($index)
|
||||
{
|
||||
$sprache = '';
|
||||
$qry = "SELECT sprache FROM public.tbl_sprache WHERE index=".$this->db_add_param($index, FHC_INTEGER, false).";";
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = "Fehler aufgetreten.";
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$sprache = $row->sprache;
|
||||
}
|
||||
return $sprache;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert einen String mit den aufgespaltenen Elementen fuer mehrsprachige Arrays
|
||||
* Der Result der Query kann dann mittels parseSprachResult wieder in ein Array umgewandelt werden
|
||||
*
|
||||
* @param $feldname
|
||||
* @return string mit den aufgeschluesselten Arrayelementen der Sprache
|
||||
*/
|
||||
public function getSprachQuery($feldname)
|
||||
{
|
||||
$result = '';
|
||||
|
||||
if(!isset(self::$index_arr) || count(self::$index_arr)==0)
|
||||
$this->loadIndexArray();
|
||||
|
||||
foreach(self::$index_arr as $sprache=>$index)
|
||||
{
|
||||
$result .= $feldname.'['.$index.'] as '.$feldname.'_'.$index.',';
|
||||
}
|
||||
return mb_substr($result,0,-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Wandelt den Result von mehrsprachigen Arrays in einer SQL Query in ein PHP Array um
|
||||
*
|
||||
* @param $feldname name der Datenbankspalte
|
||||
* @param $row row des SQL Results
|
||||
* @return array mit den Sprachen der Spalte
|
||||
*/
|
||||
public function parseSprachResult($feldname, $row)
|
||||
{
|
||||
$result = array();
|
||||
|
||||
if(!isset(self::$index_arr) || count(self::$index_arr)==0)
|
||||
$this->getAll();
|
||||
|
||||
foreach(self::$index_arr as $sprache=>$index)
|
||||
{
|
||||
$name = $feldname.'_'.$index;
|
||||
if(isset($row->$name))
|
||||
$result[$sprache] = $row->$name;
|
||||
else
|
||||
$result[$sprache] = null;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Liefert die Bezeichnung einer Sprache in der angegebenen Sprache
|
||||
* @param $sprache Kurzbezeichnung der Sprache dessen Bezeichnung geladen werden soll
|
||||
* @param $anzeigesprache Sprache in der die bezeichnung geladen werden soll
|
||||
*/
|
||||
public function getBezeichnung($sprache, $anzeigesprache)
|
||||
{
|
||||
$qry = "SELECT bezeichnung[(SELECT index FROM public.tbl_sprache WHERE sprache=".$this->db_add_param($anzeigesprache).")]
|
||||
FROM public.tbl_sprache WHERE sprache=".$this->db_add_param($sprache);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
return $row->bezeichnung;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
<?php
|
||||
/* Copyright (C) 2010 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Karl Burkhart <burkhart@technikum-wien.at>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Klasse Sprache
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class sprache extends basis_db
|
||||
{
|
||||
public $result;
|
||||
public static $index_arr = array();
|
||||
public $sprache; // string
|
||||
public $locale;
|
||||
public $index; // int, id des array index
|
||||
public $content; // boolean
|
||||
public $bezeichnung_arr;
|
||||
|
||||
/**
|
||||
*
|
||||
* Konstruktor
|
||||
* @param Sprache die geladen werden soll (Default=null)
|
||||
*/
|
||||
public function __construct($sprache = null)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
if(!is_null($sprache))
|
||||
$this->load($sprache);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Lädt die Sprache
|
||||
* @param $sprache die geladen werden soll
|
||||
* @return true bei Erfolg, false wenn ein Fehler aufgetreten ist
|
||||
*/
|
||||
public function load($sprache)
|
||||
{
|
||||
$qry = "SELECT *,".$this->getSprachQuery('bezeichnung')." FROM public.tbl_sprache WHERE sprache=".$this->db_add_param($sprache, FHC_STRING, false).";";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->sprache = $row->sprache;
|
||||
$this->locale = $row->locale;
|
||||
$this->index = $row->index;
|
||||
$this->content = $this->db_parse_bool($row->content);
|
||||
$this->bezeichnung_arr=$this->parseSprachResult('bezeichnung',$row);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Sprache nicht gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Fehler bei der Abfrage.";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Lädt alle verfügbaren Sprachen
|
||||
* @return true bei Erfolg, false wenn ein Fehler aufgetreten ist.
|
||||
*/
|
||||
public function getAll($content=null)
|
||||
{
|
||||
$qry = "SELECT *,".$this->getSprachQuery('bezeichnung')." FROM public.tbl_sprache";
|
||||
|
||||
if(!is_null($content))
|
||||
$qry.= " WHERE content=".$this->db_add_param($content, FHC_BOOLEAN);
|
||||
$qry.=" ORDER BY sprache";
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg ="Fehler bei der Abfrage.";
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$sprache = new sprache();
|
||||
$sprache->sprache = $row->sprache;
|
||||
$sprache->locale = $row->locale;
|
||||
$sprache->index = $row->index;
|
||||
$sprache->content = $this->db_parse_bool($row->content);
|
||||
$sprache->bezeichnung_arr=$this->parseSprachResult('bezeichnung',$row);
|
||||
|
||||
$this->result[] = $sprache;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Lädt das Index Array
|
||||
* @return true bei Erfolg, false wenn ein Fehler aufgetreten ist.
|
||||
*/
|
||||
public function loadIndexArray()
|
||||
{
|
||||
$qry = "SELECT sprache, index FROM public.tbl_sprache WHERE index is not null ORDER BY index";
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg ="Fehler bei der Abfrage.";
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
self::$index_arr[$row->sprache]=$row->index;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Löscht die übergebene Sprache
|
||||
* @param $sprache die gelöscht werden soll
|
||||
*/
|
||||
public function delete($sprache)
|
||||
{
|
||||
$qry = "DELETE FROM public.tbl_sprache WHERE sprache = ".$this->db_add_param($sprache, FHC_STRING, false).";";
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = "Fehler beim löschen der Sprache aufgetreten.";
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Liefert die Anzahl aller aktiven Sprachen zurück
|
||||
* @return $anzahl der Sprachen, false im Fehlerfall
|
||||
*/
|
||||
public function getAnzahl()
|
||||
{
|
||||
$anzahl = 0;
|
||||
$qry = 'SELECT count(sprache) as anzahl FROM public.tbl_sprache WHERE content = true;';
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler aufgetreten';
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$anzahl = $row->anzahl;
|
||||
}
|
||||
|
||||
return $anzahl;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Liefert die Sprache eines Index zurück
|
||||
* @param $index der Sprache die gesucht wird
|
||||
* @return $sprache, false im Fehlerfall
|
||||
*/
|
||||
public function getSpracheFromIndex($index)
|
||||
{
|
||||
$sprache = '';
|
||||
$qry = "SELECT sprache FROM public.tbl_sprache WHERE index=".$this->db_add_param($index, FHC_INTEGER, false).";";
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = "Fehler aufgetreten.";
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$sprache = $row->sprache;
|
||||
}
|
||||
return $sprache;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Liefert den Index einer Sprache zurück
|
||||
* @param $sprache der Sprache die gesucht wird
|
||||
* @return $index, false im Fehlerfall
|
||||
*/
|
||||
public function getIndexFromSprache($sprache)
|
||||
{
|
||||
$index = false;
|
||||
$qry = "SELECT * FROM public.tbl_sprache WHERE sprache=".$this->db_add_param($sprache).";";
|
||||
|
||||
if(!$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = "Fehler aufgetreten.";
|
||||
return false;
|
||||
}
|
||||
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$index = $row->index;
|
||||
}
|
||||
return $index;
|
||||
}
|
||||
|
||||
public function getAllIndexesSorted()
|
||||
{
|
||||
$languages = array();
|
||||
|
||||
if(!isset($this->result))
|
||||
$this->getAll(true);
|
||||
|
||||
foreach($this->result as $s)
|
||||
{
|
||||
$languages[$s->index] = $s->sprache;
|
||||
}
|
||||
ksort($languages);
|
||||
|
||||
//lücken im sprachenarray füllen
|
||||
for($i = 1; $i<=max(array_keys($languages));$i++)
|
||||
{
|
||||
if(!isset($languages[$i]))
|
||||
$languages[$i] = false;
|
||||
}
|
||||
return $languages;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert einen String mit den aufgespaltenen Elementen fuer mehrsprachige Arrays
|
||||
* Der Result der Query kann dann mittels parseSprachResult wieder in ein Array umgewandelt werden
|
||||
*
|
||||
* @param $feldname
|
||||
* @return string mit den aufgeschluesselten Arrayelementen der Sprache
|
||||
*/
|
||||
public function getSprachQuery($feldname)
|
||||
{
|
||||
$result = '';
|
||||
|
||||
if(!isset(self::$index_arr) || count(self::$index_arr)==0)
|
||||
$this->loadIndexArray();
|
||||
|
||||
foreach(self::$index_arr as $sprache=>$index)
|
||||
{
|
||||
$result .= $feldname.'['.$index.'] as '.$feldname.'_'.$index.',';
|
||||
}
|
||||
return mb_substr($result,0,-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Wandelt den Result von mehrsprachigen Arrays in einer SQL Query in ein PHP Array um
|
||||
*
|
||||
* @param $feldname name der Datenbankspalte
|
||||
* @param $row row des SQL Results
|
||||
* @return array mit den Sprachen der Spalte
|
||||
*/
|
||||
public function parseSprachResult($feldname, $row)
|
||||
{
|
||||
$result = array();
|
||||
|
||||
if(!isset(self::$index_arr) || count(self::$index_arr)==0)
|
||||
$this->getAll();
|
||||
|
||||
foreach(self::$index_arr as $sprache=>$index)
|
||||
{
|
||||
$name = $feldname.'_'.$index;
|
||||
if(isset($row->$name))
|
||||
$result[$sprache] = $row->$name;
|
||||
else
|
||||
$result[$sprache] = null;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Liefert die Bezeichnung einer Sprache in der angegebenen Sprache
|
||||
* @param $sprache Kurzbezeichnung der Sprache dessen Bezeichnung geladen werden soll
|
||||
* @param $anzeigesprache Sprache in der die bezeichnung geladen werden soll
|
||||
*/
|
||||
public function getBezeichnung($sprache, $anzeigesprache)
|
||||
{
|
||||
$qry = "SELECT bezeichnung[(SELECT index FROM public.tbl_sprache WHERE sprache=".$this->db_add_param($anzeigesprache).")]
|
||||
FROM public.tbl_sprache WHERE sprache=".$this->db_add_param($sprache);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object($result))
|
||||
{
|
||||
return $row->bezeichnung;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -241,6 +241,7 @@ class studiengang extends basis_db
|
||||
. 'FROM lehre.vw_studienplan '
|
||||
. 'LEFT JOIN bis.tbl_lgartcode USING (lgartcode) '
|
||||
. 'WHERE onlinebewerbung IS TRUE '
|
||||
. 'AND aktiv IS TRUE '
|
||||
. 'ORDER BY typ, studiengangbezeichnung, tbl_lgartcode.bezeichnung ASC';
|
||||
|
||||
if(!$result = $this->db_query($qry))
|
||||
|
||||
+413
-454
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user