Umstellung auf Basisklasse und Datenbankklasse

This commit is contained in:
Andreas Österreicher
2009-06-18 07:02:35 +00:00
parent 66480938cb
commit a568e68d3c
85 changed files with 6096 additions and 8012 deletions
+81 -136
View File
@@ -20,65 +20,52 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
* Gerald Raab <gerald.raab@technikum-wien.at>.
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
class studiengang
class studiengang extends basis_db
{
var $conn; // resource DB-Handle
var $new; // boolean
var $errormsg; // string
var $result = array(); // studiengang Objekt
public $new; // boolean
public $result = array(); // studiengang Objekt
var $studiengang_kz; // integer
var $kurzbz; // varchar(5)
var $kurzbzlang; // varchar(10)
var $bezeichnung; // varchar(128)
var $english; // varchar(128)
var $typ; // char(1)
var $farbe; // char(6)
var $email; // varchar(64)
var $max_semester; // smallint
var $max_verband; // char(1)
var $max_gruppe; // char(1)
var $erhalter_kz; // smallint
var $bescheid; // varchar(256)
var $bescheidbgbl1; // varchar(16)
var $bescheidbgbl2; // varchar(16)
var $bescheidgz; // varchar(16)
var $bescheidvom; // Date
var $titelbescheidvom; // Date
var $ext_id; // bigint
var $orgform_kurzbz;
var $zusatzinfo_html;
var $sprache;
var $testtool_sprachwahl;
public $studiengang_kz; // integer
public $kurzbz; // varchar(5)
public $kurzbzlang; // varchar(10)
public $bezeichnung; // varchar(128)
public $english; // varchar(128)
public $typ; // char(1)
public $farbe; // char(6)
public $email; // varchar(64)
public $max_semester; // smallint
public $max_verband; // char(1)
public $max_gruppe; // char(1)
public $erhalter_kz; // smallint
public $bescheid; // varchar(256)
public $bescheidbgbl1; // varchar(16)
public $bescheidbgbl2; // varchar(16)
public $bescheidgz; // varchar(16)
public $bescheidvom; // Date
public $titelbescheidvom; // Date
public $ext_id; // bigint
public $orgform_kurzbz;
public $zusatzinfo_html;
public $sprache;
public $testtool_sprachwahl;
var $kuerzel; // = typ + kurzbz (Bsp: BBE)
public $kuerzel; // = typ + kurzbz (Bsp: BBE)
var $studiengang_typ_arr = array();
var $kuerzel_arr = array();
public $studiengang_typ_arr = array();
public $kuerzel_arr = array();
// **************************************************************
// * Konstruktor
// * @param conn Connection zur Datenbank
// * studiengang_kz Kennzahl des zu ladenden Studienganges
// **************************************************************
function studiengang($conn, $studiengang_kz=null, $unicode=false)
/**
* Konstruktor
* @param studiengang_kz Kennzahl des zu ladenden Studienganges
*/
public function __construct($studiengang_kz=null)
{
$this->conn = $conn;
/*
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
*/
if(is_numeric($studiengang_kz))
parent::__construct();
if(!is_null($studiengang_kz))
$this->load($studiengang_kz);
$this->studiengang_typ_arr["b"] = "Bachelor";
@@ -88,12 +75,12 @@ class studiengang
$this->studiengang_typ_arr["e"] = "Erhalter";
}
// *****************************************************
// * Laedt einen Studiengang
// * @param stg_id ID des Studienganges der zu laden ist
// * @return true wenn ok, false im Fehlerfall
// *****************************************************
function load($studiengang_kz)
/**
* Laedt einen Studiengang
* @param studiengang_kz KZ des Studienganges der zu Laden ist
* @return true wenn ok, false im Fehlerfall
*/
public function load($studiengang_kz)
{
if(!is_numeric($studiengang_kz))
{
@@ -101,11 +88,11 @@ class studiengang
return false;
}
$qry = "SELECT * FROM public.tbl_studiengang WHERE studiengang_kz=$studiengang_kz";
$qry = "SELECT * FROM public.tbl_studiengang WHERE studiengang_kz='".addslashes($studiengang_kz)."'";
if($res = pg_query($this->conn, $qry))
if($this->db_query($qry))
{
if($row = pg_fetch_object($res))
if($row = $this->db_fetch_object())
{
$this->studiengang_kz=$row->studiengang_kz;
$this->kurzbz=$row->kurzbz;
@@ -145,11 +132,13 @@ class studiengang
return true;
}
// *******************************************
// * Liefert alle Studiengaenge
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function getAll($order=null, $aktiv=true)
/**
* Liefert alle Studiengaenge
* @param $order Sortierreihenfolge
* @param $aktiv wenn true dann nur aktive sonst alle
* @return true wenn ok, false im Fehlerfall
*/
public function getAll($order=null, $aktiv=true)
{
$qry = 'SELECT * FROM public.tbl_studiengang';
if ($aktiv)
@@ -158,15 +147,15 @@ class studiengang
if($order!=null)
$qry .=" ORDER BY $order";
if(!$res = pg_query($this->conn, $qry))
if(!$this->db_query($qry))
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
while($row = pg_fetch_object($res))
while($row = $this->db_fetch_object())
{
$stg_obj = new studiengang($this->conn);
$stg_obj = new studiengang();
$stg_obj->studiengang_kz=$row->studiengang_kz;
$stg_obj->kurzbz=$row->kurzbz;
@@ -202,76 +191,57 @@ class studiengang
return true;
}
/**
* Loescht einen Studiengang
* @param $stg_id ID des zu loeschenden Studienganges
* @return true wenn ok, false im Fehlerfall
*/
function delete($stg_id)
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
/**
* Prueft die Gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
private function validate()
{
$this->bezeichnung = str_replace("'",'´',$this->bezeichnung);
$this->kurzbz = str_replace("'",'´',$this->kurzbz);
$this->kurzbzlang = str_replace("'",'´',$this->kurzbzlang);
$this->english = str_replace("'",'´',$this->english);
//Laenge Pruefen
if(strlen($this->bezeichnung)>128)
{
$this->errormsg = "Bezeichnung darf nicht laenger als 128 Zeichen sein bei <b>$this->ext_id</b> - $this->bezeichnung";
$this->errormsg = 'Bezeichnung darf nicht laenger als 128 Zeichen sein.';
return false;
}
if(strlen($this->kurzbz)>5)
{
$this->errormsg = "Kurzbez darf nicht laenger als 5 Zeichen sein bei <b>$this->ext_id</b> - $this->kurzbz";
$this->errormsg = 'Kurzbez darf nicht laenger als 5 Zeichen sein.';
return false;
}
if(strlen($this->kurzbzlang)>10)
{
$this->errormsg = "Kurzbezlang darf nicht laenger als 10 Zeichen sein bei <b>$this->ext_id</b> - $this->kurzbzlang";
$this->errormsg = 'Kurzbezlang darf nicht laenger als 10 Zeichen sein';
return false;
}
if(strlen($this->english)>128)
{
$this->errormsg = "english darf nicht laenger als 128 Zeichen sein bei <b>$this->ext_id</b> - $this->english";
$this->errormsg = 'english darf nicht laenger als 128 Zeichen sein';
return false;
}
if(!is_numeric($this->studiengang_kz))
{
$this->errormsg = 'studiengang_kz ungueltig! ('.$this->studiengang_kz.'/'.$this->ext_id.')';
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function save()
public function save()
{
//Gueltigkeit der Variablen pruefen
if(!$this->checkvars())
if(!$this->validate())
{
return false;
}
if($this->new)
{
//Pruefen ob studiengang_kz gueltig ist
if(!is_numeric($this->studiengang_kz))
{
$this->errormsg = 'studiengang_kz ungueltig! ('.$this->studiengang_kz.'/'.$this->ext_id.')';
return false;
}
//Neuen Datensatz anlegen
$qry = 'INSERT INTO public.tbl_studiengang (studiengang_kz, kurzbz, kurzbzlang, bezeichnung, english,
typ, farbe, email, telefon, max_verband, max_semester, max_gruppe, erhalter_kz, bescheid, bescheidbgbl1,
@@ -304,13 +274,6 @@ class studiengang
{
//bestehenden Datensatz akualisieren
//Pruefen ob studiengang_kz gueltig ist
if(!is_numeric($this->studiengang_kz))
{
$this->errormsg = 'studiengang_kz ungueltig.';
return false;
}
$qry = 'UPDATE public.tbl_studiengang SET '.
'studiengang_kz='.$this->addslashes($this->studiengang_kz).', '.
'kurzbz='.$this->addslashes($this->kurzbz).', '.
@@ -337,26 +300,9 @@ class studiengang
'zusatzinfo_html='.$this->addslashes($this->zusatzinfo_html).' '.
'WHERE studiengang_kz='.$this->addslashes($this->studiengang_kz).';';
}
//echo $qry;
if(pg_query($this->conn, $qry))
{
/*//Log schreiben
$sql = $qry;
$qry = "SELECT nextval('log_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
return false;
}
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}*/
if($this->db_query($qry))
{
return true;
}
else
@@ -366,22 +312,21 @@ class studiengang
}
}
// *******************************************
// * Setzt Studiengaenge aktiv/inaktiv
// * benoetigt studiengang_kz und 'on'/'off'
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function toggleAktiv($studiengang_kz)
/**
* Setzt Studiengaenge aktiv/inaktiv
* benoetigt studiengang_kz und 'on'/'off'
* @return true wenn ok, false im Fehlerfall
*/
public function toggleAktiv($studiengang_kz)
{
if(!is_numeric($studiengang_kz))
{
$this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein';
return false;
}
$qry = "UPDATE public.tbl_studiengang SET aktiv = NOT aktiv WHERE studiengang_kz='$studiengang_kz'";
$qry = "UPDATE public.tbl_studiengang SET aktiv = NOT aktiv WHERE studiengang_kz='".addslashes($studiengang_kz)."'";
if(pg_query($this->conn, $qry))
if($this->db_query($qry))
{
return true;
}