mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
310 lines
8.0 KiB
PHP
310 lines
8.0 KiB
PHP
<?php
|
|
/**
|
|
* Klasse email (FAS-Online)
|
|
* @create 14-03-2006
|
|
*/
|
|
class email
|
|
{
|
|
var $conn; // @var resource DB-Handle
|
|
var $new; // @var boolean
|
|
var $errormsg; // @var string
|
|
var $result = array(); // @var email Objekt
|
|
|
|
//Tabellenspalten
|
|
var $email_id; // @var integer
|
|
var $person_id; // @var integer
|
|
var $email; // @var string
|
|
var $name; // @var string
|
|
var $typ; // @var integer
|
|
var $zustelladresse; // @var boolean
|
|
var $updateamum; // @var timestamp
|
|
var $updatevon=0; // @var string
|
|
|
|
|
|
/**
|
|
* Konstruktor
|
|
* @param conn Connection zur Datenbank
|
|
* mail_id ID des zu ladenden Datensatzes
|
|
*/
|
|
function email($conn, $mail_id=null)
|
|
{
|
|
$this->conn = $conn;
|
|
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
|
|
if(!pg_query($conn,$qry))
|
|
{
|
|
$this->errormsg = "Encoding konnte nicht gesetzt werden";
|
|
return false;
|
|
}
|
|
if($mail_id != null)
|
|
$this->load($mail_id);
|
|
}
|
|
|
|
/**
|
|
* Laedt einen Datensatz
|
|
* @param mail_id ID des zu ladenden Datensatzes
|
|
*/
|
|
function load($mail_id)
|
|
{
|
|
//mail_id auf gueltigkeit pruefen
|
|
if(!is_numeric($mail_id) || $mail_id == '')
|
|
{
|
|
$this->errormsg = 'mail_id muss eine gueltige Zahl sein';
|
|
return false;
|
|
}
|
|
|
|
//laden des Datensatzes
|
|
$qry = "SELECT * FROM email WHERE email_pk='$mail_id';";
|
|
|
|
if(!$res = pg_query($this->conn,$qry))
|
|
{
|
|
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
|
return false;
|
|
}
|
|
|
|
if($row=pg_fetch_object($res))
|
|
{
|
|
$this->email_id = $row->email_pk;
|
|
$this->person_id = $row->person_fk;
|
|
$this->email = $row->email;
|
|
$this->name = $row->name;
|
|
$this->typ = $row->typ;
|
|
$this->zustelladresse = ($row->zustelladresse=='J'?true:false);
|
|
$this->updateamum = $row->creationdate;
|
|
$this->updatevon = $row->creationuser;
|
|
}
|
|
else
|
|
{
|
|
$this->errormsg = 'Fehler bei der Datenbankabfrage';
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Laedt alle Datensaetze
|
|
* @return true wenn ok, false im Fehlerfall
|
|
*/
|
|
function getAll()
|
|
{
|
|
/* Frisst zu viel Speicher und wird beendet
|
|
|
|
$qry = "SELECT * FROM email;";
|
|
|
|
if(!$res = pg_query($this->conn, $qry))
|
|
{
|
|
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
|
return false;
|
|
}
|
|
|
|
while($row = pg_fetch_object($res))
|
|
{
|
|
$mail_obj = new email($this->conn);
|
|
|
|
$mail_obj->email_id = $row->email_pk;
|
|
$mail_obj->person_id = $row->person_fk;
|
|
$mail_obj->email = $row->email;
|
|
$mail_obj->name = $row->name;
|
|
$mail_obj->typ = $row->typ;
|
|
$mail_obj->zustelladresse = ($row->zustelladresse=='J'?true:false);
|
|
$mail_obj->updateamum = $row->creationdate;
|
|
$mail_obj->updatevon = $row->creationuser;
|
|
|
|
$this->result[] = $mail_obj;
|
|
}
|
|
|
|
return true;
|
|
*/
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Laedt alle Datensaetze zu einer person
|
|
* @param pers_id ID der Person zu der die Mails geladen werden sollen
|
|
* @return true wenn ok, false im Fehlerfall
|
|
*/
|
|
function load_pers($pers_id)
|
|
{
|
|
//pers_id auf gueltigkeit pruefen
|
|
if(!is_numeric($pers_id) || $pers_id == '')
|
|
{
|
|
$this->errormsg = 'pers_id muss eine gueltige Zahl sein';
|
|
return false;
|
|
}
|
|
|
|
//Datensaetze laden
|
|
$qry = "SELECT * FROM email WHERE person_fk='$pers_id';";
|
|
|
|
if(!$result = pg_query($this->conn, $qry))
|
|
{
|
|
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
|
return false;
|
|
}
|
|
|
|
while($row = pg_fetch_object($result))
|
|
{
|
|
$mail_obj = new email($this->conn);
|
|
|
|
$mail_obj->email_id = $row->email_pk;
|
|
$mail_obj->person_id = $row->person_fk;
|
|
$mail_obj->email = $row->email;
|
|
$mail_obj->name = $row->name;
|
|
$mail_obj->typ = $row->typ;
|
|
$mail_obj->zustelladresse = ($row->zustelladresse=='J'?true:false);
|
|
$mail_obj->updateamum = $row->creationdate;
|
|
$mail_obj->updatevon = $row->creationuser;
|
|
|
|
$this->result[] = $mail_obj;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Loescht einen Datensatz
|
|
* @param mail_id ID des zu leoschenden Datensatzes
|
|
* @return true wenn ok, false im Fehlerfall
|
|
*/
|
|
function delete($mail_id)
|
|
{
|
|
//mail_id auf gueltigkeit pruefen
|
|
if(!is_numeric($mail_id) || $mail_id == '')
|
|
{
|
|
$this->errormsg = 'mail_id muss eine gueltige Zahl sein';
|
|
return false;
|
|
}
|
|
|
|
$qry = "DELETE FROM email WHERE email_pk = '$mail_id';";
|
|
|
|
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;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$this->errormsg = 'Fehler beim loeschen';
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Prueft die variablen auf gueltigkeit
|
|
* @return true wenn ok, false im Fehlerfall
|
|
*/
|
|
function checkvars()
|
|
{
|
|
//Gesamtlaenge pruefen
|
|
if(strlen($this->name)>255)
|
|
{
|
|
$this->errormsg = 'Name darf nicht mehr als 255 Zeichen lang sein';
|
|
return false;
|
|
}
|
|
if(strlen($this->email)>255)
|
|
{
|
|
$this->errormsg = 'EMail darf nicht mehr als 255 Zeichen lang sein';
|
|
return false;
|
|
}
|
|
|
|
//Zahlenfelder pruefen
|
|
if(!is_numeric($this->person_id))
|
|
{
|
|
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
|
|
return false;
|
|
}
|
|
if(!is_numeric($this->typ))
|
|
{
|
|
$this->errormsg = 'Typ muss eine gueltige Zahl sein';
|
|
return false;
|
|
}
|
|
|
|
$this->errormsg = '';
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Speichert den aktuellen Datensatz
|
|
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
|
|
* andernfalls wird der Datensatz mit der ID in $email_id aktualisiert
|
|
* @return true wenn ok, false im Fehlerfall
|
|
*/
|
|
function save()
|
|
{
|
|
if(!$this->checkvars())
|
|
return false;
|
|
|
|
if($this->new)
|
|
{
|
|
//Neuen Datensatz anlegen
|
|
|
|
//Naechste ID aus Sequence holen
|
|
$qry = "SELECT nextval('email_seq') as id;";
|
|
if(!$row=pg_fetch_object(pg_query($this->conn, $qry)))
|
|
{
|
|
$this->errormsg = 'Fehler beim auslesen der ID aus der Sequence';
|
|
return false;
|
|
}
|
|
$this->email_id = $row->id;
|
|
|
|
$qry = "INSERT INTO email (email_pk, person_fk, name, email, typ, creationdate, creationuser, zustelladresse)".
|
|
" VALUES ('$this->email_id', '$this->person_id', '$this->name', '$this->email', '$this->typ', now(),".
|
|
" $this->updatevon, '".($this->zustelladresse?'J':'N')."');";
|
|
}
|
|
else
|
|
{
|
|
//Bestehenden Datensatz aktualisieren
|
|
|
|
//email_id auf gueltigkeit pruefen
|
|
if(!is_numeric($this->email_id) || $this->email_id == '')
|
|
{
|
|
$this->errormsg = 'email_id muss eine gueltige Zahl sein';
|
|
return false;
|
|
}
|
|
|
|
$qry = "UPDATE email SET person_fk = '$this->person_id', name = '$this->name', email = '$this->email',".
|
|
" typ = '$this->typ', zustelladresse = '".($this->zustelladresse?'J':'N')."' WHERE email_pk = '$this->email_id';";
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$this->errormsg = 'Fehler beim speichern des Datensatzes';
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
?>
|