From 65765bceb152552e8c26c9694888a3086afe6830 Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 5 Jul 2016 16:28:35 +0200 Subject: [PATCH 1/2] - Removed CI Inheritance from Prestudent because it breaks the person inheritance - Added function to parse Language Arrays to db_extras --- ci_db_extra.php | 60 +++++++++++---- include/prestudent.class.php | 140 ++++++++++++----------------------- 2 files changed, 91 insertions(+), 109 deletions(-) diff --git a/ci_db_extra.php b/ci_db_extra.php index a4dffc19b..78a1b0781 100755 --- a/ci_db_extra.php +++ b/ci_db_extra.php @@ -33,16 +33,16 @@ trait db_extra { if(is_null($i)) return pg_fetch_object($this->db_result); - else + else return pg_fetch_object($this->db_result, $i); } - else + else { if(is_null($i)) return pg_fetch_object($result); - else + else return pg_fetch_object($result, $i); - } + } } public function db_add_param($var, $type=FHC_STRING, $nullable=true) @@ -57,7 +57,7 @@ trait db_extra switch($type) { - case FHC_INTEGER: + case FHC_INTEGER: $var = $this->db_escape($var); if(!is_numeric($var) && $var!=='') die('Invalid Integer Parameter detected:'.$var); @@ -76,14 +76,14 @@ trait db_extra break; case FHC_STRING: - default: + default: $var = $this->db_escape($var); $var = $this->db_null_value($var); break; } - return $var; + return $var; } - + public function db_escape($var) { return pg_escape_string($var); @@ -94,14 +94,14 @@ trait db_extra if($qoute) return ($var!==''?$this->db_qoute($var):'null'); else - return ($var!==''?$var:'null'); + return ($var!==''?$var:'null'); } - + public function db_qoute($var) { return "'".$var."'"; } - + public function db_parse_bool($var) { if($var=='t') @@ -113,7 +113,7 @@ trait db_extra else die('Invalid DB Boolean. Wrong DB-Engine?'); } - + /** * Bereitet ein Array von Elementen auf, damit es in der IN-Klausel eines * Select Befehls verwendet werden kann. @@ -129,7 +129,7 @@ trait db_extra } return $string; } - + public function db_num_fields($result=null) { if(is_null($result)) @@ -137,12 +137,12 @@ trait db_extra else return pg_num_fields($result); } - + public function convert_html_chars($value) { return htmlspecialchars($value); } - + /** * Liefert den Feldnamen mit index i */ @@ -153,9 +153,37 @@ trait db_extra else return pg_field_name($result, $i); } - + public function db_last_error() { return pg_last_error(); } + + /** + * 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*)(,|(?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; + } } diff --git a/include/prestudent.class.php b/include/prestudent.class.php index ddf39cd70..7b4d17527 100755 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -19,19 +19,20 @@ * Andreas Oesterreicher and * Rudolf Hangl . */ -require_once(dirname(__FILE__).'/datum.class.php'); require_once(dirname(__FILE__).'/person.class.php'); +require_once(dirname(__FILE__).'/log.class.php'); -// CI -require_once(dirname(__FILE__).'/../ci_hack.php'); -require_once(dirname(__FILE__).'/../application/models/crm/Prestudent_model.php'); +require_once(dirname(__FILE__).'/phrasen.class.php'); +require_once(dirname(__FILE__).'/globals.inc.php'); +require_once(dirname(__FILE__).'/sprache.class.php'); -class prestudent extends Prestudent_model +$sprache = getSprache(); +$lang = new sprache(); +$lang->load($sprache); +$p = new phrasen($sprache); + +class prestudent extends person { - use db_extra; //CI Hack - - public $errormsg; // string - //Tabellenspalten public $prestudent_id; // varchar(16) public $aufmerksamdurch_kurzbz; @@ -105,22 +106,22 @@ class prestudent extends Prestudent_model * Laedt Prestudent mit der uebergebenen ID * @param $prestudent_id ID des Prestudenten der geladen werden soll */ - public function load($prestudent_id = null) + public function load($prestudent_id=null) { - if (!is_numeric($prestudent_id)) + if(!is_numeric($prestudent_id)) { $this->errormsg = 'ID ist ungueltig'; return false; } - $result = parent::load($prestudent_id); + $qry = 'SELECT * ' + . 'FROM public.tbl_prestudent ' + . 'WHERE prestudent_id = '.$this->db_add_param($prestudent_id, FHC_INTEGER); - if (is_object($result) && $result->error == EXIT_SUCCESS && is_array($result->retval)) + if($this->db_query($qry)) { - if (count($result->retval) > 0) + if($row = $this->db_fetch_object()) { - $row = $result->retval[0]; - $this->prestudent_id = $row->prestudent_id; $this->aufmerksamdurch_kurzbz = $row->aufmerksamdurch_kurzbz; $this->studiengang_kz = $row->studiengang_kz; @@ -155,8 +156,10 @@ class prestudent extends Prestudent_model $this->zgvdoktordatum = $row->zgvdoktordatum; $this->zgvdoktornation = $row->zgvdoktornation; - $person = new person(); - return $person->load($row->person_id); + if(!person::load($row->person_id)) + return false; + else + return true; } else { @@ -176,7 +179,7 @@ class prestudent extends Prestudent_model * auf Gueltigkeit. * @return true wenn ok, false im Fehlerfall */ - protected function validate() + public function validate() { if($this->punkte>9999.9999) { @@ -331,7 +334,7 @@ class prestudent extends Prestudent_model return false; } } - + /** * Falls ZGV vorhanden, setze Ausstellungsstaat (für BIS-Meldung) * auf Nation der höchsten angegebenen ZGV @@ -779,12 +782,14 @@ class prestudent extends Prestudent_model */ public function save_rolle() { + global $p; if($this->new) { //pruefen ob die Rolle schon vorhanden ist if($this->load_rolle($this->prestudent_id, $this->status_kurzbz, $this->studiensemester_kurzbz, $this->ausbildungssemester)) { - $this->errormsg = 'Diese Rolle existiert bereits'; + //$this->errormsg = 'Diese Rolle existiert bereits'; + $this->errormsg = $p->t('errors/rolleExistiertBereits'); return false; } @@ -821,7 +826,8 @@ class prestudent extends Prestudent_model { if($this->load_rolle($this->prestudent_id, $this->status_kurzbz, $this->studiensemester_kurzbz, $this->ausbildungssemester)) { - $this->errormsg = 'Diese Rolle existiert bereits'; + //$this->errormsg = 'Diese Rolle existiert bereits'; + $this->errormsg = $p->t('errors/rolleExistiertBereits'); return false; } } @@ -971,22 +977,33 @@ class prestudent extends Prestudent_model * @param $studiensemester_kurzbz * @return boolean */ - public function getLastStatus($prestudent_id, $studiensemester_kurzbz = '', $status_kurzbz = '') + public function getLastStatus($prestudent_id, $studiensemester_kurzbz='', $status_kurzbz = '') { - if ($prestudent_id == '' || !is_numeric($prestudent_id)) + if($prestudent_id=='' || !is_numeric($prestudent_id)) { $this->errormsg = 'Prestudent_id ist ungueltig'; return false; } - $result = parent::getLastStatus($prestudent_id, $studiensemester_kurzbz, $status_kurzbz); - - if (is_object($result) && $result->error != EXIT_SUCCESS && is_array($result->retval)) + $qry = "SELECT tbl_prestudentstatus.*, bezeichnung AS studienplan_bezeichnung, + tbl_status.bezeichnung_mehrsprachig + FROM public.tbl_prestudentstatus + LEFT JOIN lehre.tbl_studienplan USING (studienplan_id) + JOIN public.tbl_status USING (status_kurzbz) + WHERE tbl_status.status_kurzbz = tbl_prestudentstatus.status_kurzbz + AND prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER); + + if($studiensemester_kurzbz!='') + $qry.=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); + + if($status_kurzbz !='') + $qry.= " AND status_kurzbz =".$this->db_add_param($status_kurzbz); + + $qry.=" ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1"; + if($this->db_query($qry)) { - if (count($result->retval) > 0) + if($row = $this->db_fetch_object()) { - $row = $result->retval[0]; - $this->prestudent_id = $row->prestudent_id; $this->status_kurzbz = $row->status_kurzbz; $this->status_mehrsprachig = $this->db_parse_lang_array($row->bezeichnung_mehrsprachig); @@ -1716,67 +1733,4 @@ class prestudent extends Prestudent_model return false; } } - - - /** - * Laedt alle Studenten eines Studienplans und eines Studiensemesters - * @param $studienplan_id - * @param $studiensemester_kurzbz - * @param $studiengang_kz - * @return array mit allen Prestudenten, welche sich für den angegebenen Studienplan im angegebenen Semester beworben haben - */ - public function getAllStudentenFromStudienplanAndStudsem($studienplan_id, $studiensemester_kurzbz, $studiengang_kz) - { - if(!is_numeric($studienplan_id)) - { - $this->errormsg = 'studienplan_id ist ungueltig'; - return false; - } - - if(!$studiensemester_kurzbz || $studiensemester_kurzbz == "") - { - $this->errormsg = 'studiensemester_kurzbz ist ungueltig'; - return false; - } - - $qry = "SELECT DISTINCT prestudent_id, vorname, nachname, gebdatum, rt_gesamtpunkte, tbl_prestudent.studiengang_kz, bis.tbl_zgvgruppe.bezeichnung, get_rolle_prestudent(prestudent_id, null) as laststatus - FROM - public.tbl_prestudent - JOIN public.tbl_person USING(person_id) - LEFT JOIN bis.tbl_zgvgruppe_zuordnung USING(zgv_code) - LEFT JOIN bis.tbl_zgvgruppe USING(gruppe_kurzbz) - WHERE - tbl_prestudent.studiengang_kz=". $this->db_add_param($studiengang_kz)." - AND EXISTS( - SELECT - 1 - FROM - public.tbl_prestudentstatus - WHERE - tbl_prestudent.prestudent_id=tbl_prestudentstatus.prestudent_id - AND studiensemester_kurzbz=". $this->db_add_param($studiensemester_kurzbz)." - AND status_kurzbz='Bewerber' - AND ( - studienplan_id=". $this->db_add_param($studienplan_id)." - OR - (anmerkung like '%' || (SELECT orgform_kurzbz || '_' || sprache FROM lehre.tbl_studienplan WHERE studienplan_id=". $this->db_add_param($studienplan_id).") || '%') - ) - );"; - - - if($result = $this->db_query($qry)) - { - $ret = array(); - - while($row = $this->db_fetch_object($result)) - $ret[] = $row; - - return $ret; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } } From 8713b819ba98ce0a98f5f14b0615ffcfe226f706 Mon Sep 17 00:00:00 2001 From: oesi Date: Tue, 5 Jul 2016 17:39:17 +0200 Subject: [PATCH 2/2] =?UTF-8?q?Erstversion=20f=C3=BCr=20AufnahmeTermine=20?= =?UTF-8?q?Karteireiter=20im=20FAS=20Template=20f=C3=BCr=20Messages=20Kart?= =?UTF-8?q?eireiter=20im=20FAS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/messages.js.php | 32 ++++ content/messages.xul.php | 102 ++++++++++ content/student/aufnahmetermine.js.php | 230 +++++++++++++++++++++++ content/student/aufnahmetermine.xul.php | 217 +++++++++++++++++++++ content/student/studentenoverlay.xul.php | 7 +- content/student/studentoverlay.js.php | 58 +++++- include/reihungstest.class.php | 68 +++++++ rdf/aufnahmetermine.rdf.php | 92 +++++++++ 8 files changed, 802 insertions(+), 4 deletions(-) create mode 100644 content/messages.js.php create mode 100644 content/messages.xul.php create mode 100644 content/student/aufnahmetermine.js.php create mode 100644 content/student/aufnahmetermine.xul.php create mode 100644 rdf/aufnahmetermine.rdf.php diff --git a/content/messages.js.php b/content/messages.js.php new file mode 100644 index 000000000..48ac65d4d --- /dev/null +++ b/content/messages.js.php @@ -0,0 +1,32 @@ + + */ +require_once('../config/vilesci.config.inc.php'); +?> +// ********** FUNKTIONEN ********** // +var MessagePersonID=''; + +// **** +// * Laedt die Trees +// **** +function loadMessages(person_id) +{ + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + MessagePersonID = person_id; +} diff --git a/content/messages.xul.php b/content/messages.xul.php new file mode 100644 index 000000000..667d07bda --- /dev/null +++ b/content/messages.xul.php @@ -0,0 +1,102 @@ + + */ +header("Cache-Control: no-cache"); +header("Cache-Control: post-check=0, pre-check=0",false); +header("Expires Mon, 26 Jul 1997 05:00:00 GMT"); +header("Pragma: no-cache"); +header("Content-type: application/vnd.mozilla.xul+xml"); + +require_once('../config/vilesci.config.inc.php'); +require_once('../include/functions.inc.php'); +require_once('../include/variable.class.php'); + +$user=get_uid(); +$variable = new variable(); +if(!$variable->loadVariables($user)) +{ + die('Fehler beim Laden der Variablen:'.$variable->errormsg); +} + +echo ''."\n"; + +echo ''; +echo ''; +echo ''; + +$person_id = filter_input(INPUT_GET,'person_id'); +echo ' +variable->locale.'/fas.dtd'); +echo ']> +'; +?> + +);" + > + +