From d9b05ddfce80dd4de38c7d33f9d7fd708f4e1f04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 7 Mar 2018 18:11:58 +0100 Subject: [PATCH 01/20] Cleanup --- cis/private/freifaecher/anmeldung.php | 95 ++++++++++++++------------- 1 file changed, 48 insertions(+), 47 deletions(-) diff --git a/cis/private/freifaecher/anmeldung.php b/cis/private/freifaecher/anmeldung.php index 85c450787..8b9eac33e 100644 --- a/cis/private/freifaecher/anmeldung.php +++ b/cis/private/freifaecher/anmeldung.php @@ -30,11 +30,11 @@ require_once('../../../include/lehrveranstaltung.class.php'); require_once('../../../include/phrasen.class.php'); require_once('../../../include/basis_db.class.php'); -$sprache = getSprache(); +$sprache = getSprache(); $p = new phrasen($sprache); if (!$db = new basis_db()) - $db=false; + die('Unable to Connect'); $user = get_uid(); @@ -42,38 +42,45 @@ $user = get_uid(); $stsem_obj = new studiensemester(); $stsem = $stsem_obj->getaktorNext(); -?> - - +?> + - - - <?php echo $p->t('freifach/freifaecherAnmeldung');?> + + + <?php echo $p->t('freifach/freifaecherAnmeldung');?> -

t('freifach/freifaecherAnmeldung');?>

- t('freifach/markierenFreifachFuerAnmeldung');?>: -
+
db_query('BEGIN'); //Zuerst die alten Eintraege herausloeschen... - $qry = "DELETE FROM campus.tbl_benutzerlvstudiensemester WHERE uid='$user' AND studiensemester_kurzbz='$stsem'"; - if(!$db->db_query($qry)) + $qry = "DELETE FROM campus.tbl_benutzerlvstudiensemester + WHERE + uid=".$db->db_add_param($user)." + AND studiensemester_kurzbz=".$db->db_add_param($stsem); + if (!$db->db_query($qry)) die($p->t('freifach/fehlerBeimAktualisieren')); //...dann die angeklickten FF hinzufuegen foreach ($_POST['chkbox'] as $elem) { - $qry = "INSERT INTO campus.tbl_benutzerlvstudiensemester(uid, lehrveranstaltung_id, studiensemester_kurzbz) VALUES('$user','$elem','$stsem');"; - if(!$db->db_query($qry)) + if (!is_numeric($elem)) + { + $db->db_query('ROLLBACK'); + die('Unbekannter Parameter gefunden - Operation wird abgebrochen'); + } + + $qry = "INSERT INTO campus.tbl_benutzerlvstudiensemester(uid, lehrveranstaltung_id, studiensemester_kurzbz) + VALUES(".$db->db_add_param($user).",".$db->db_add_param($elem).",".$db->db_add_param($stsem).");"; + if (!$db->db_query($qry)) { $db->db_query('ROLLBACK'); die($p->t('freifach/freifaecherNichtZugeteilt')); @@ -85,53 +92,60 @@ if(isset($_POST['submit'])) else { //Wenn keine Checkbox angeklickt wurde, alle Eintraege herausloeschen - $qry = "DELETE FROM campus.tbl_benutzerlvstudiensemester WHERE uid='$user' AND studiensemester_kurzbz='$stsem'"; - if(!$db->db_query($qry)) - die($p->t('freifach/fehlerBeimAktualisieren')); + $qry = "DELETE FROM campus.tbl_benutzerlvstudiensemester + WHERE uid=".$db->db_add_param($user)." AND studiensemester_kurzbz=".$db->db_add_param($stsem); + + if (!$db->db_query($qry)) + die($p->t('freifach/fehlerBeimAktualisieren')); else - echo "".$p->t('freifach/datenErfolgreichAktualisiert')."!
"; + echo "".$p->t('freifach/datenErfolgreichAktualisiert')."!
"; } } //Freifachzuteilungen holen -$qry = "SELECT * FROM campus.tbl_benutzerlvstudiensemester WHERE uid = '$user' AND studiensemester_kurzbz='$stsem'"; -if($result=$db->db_query($qry)) +$qry = "SELECT * FROM campus.tbl_benutzerlvstudiensemester +WHERE uid = ".$db->db_add_param($user)." AND studiensemester_kurzbz=".$db->db_add_param($stsem); + +if ($result = $db->db_query($qry)) { $ff = array(); - while($row=$db->db_fetch_object($result)) - $ff[] = $row->lehrveranstaltung_id; + while ($row = $db->db_fetch_object($result)) + { + $ff[] = $row->lehrveranstaltung_id; + } } else - echo $p->t('freifach/fehlerBeimAuslesen');; + echo $p->t('freifach/fehlerBeimAuslesen'); echo '
'; //Freifaecher laden $lv_obj = new lehrveranstaltung(); -if($lv_obj->load_lva('0',null,null,true,null,'bezeichnung')) +if ($lv_obj->load_lva('0', null, null, true, null, 'bezeichnung')) { $anz = count($lv_obj->lehrveranstaltungen); echo "
"; - $i=0; + $i = 0; echo ""; @@ -144,18 +158,5 @@ else die($p->t('freifach/fehlerBeimAuslesenFreifach')); } ?> - -
"; - foreach($lv_obj->lehrveranstaltungen as $row) + foreach ($lv_obj->lehrveranstaltungen as $row) { //Auftrennen in eine zweite Spalte bei der haelfte der Eintraege - if($i==intval($anz/2)) + if ($i == intval($anz / 2)) echo ""; - if(in_array($row->lehrveranstaltung_id,$ff)) + if (in_array($row->lehrveranstaltung_id, $ff)) $checked = "checked='true'"; else $checked = ''; //Wenn aktiv=false dann ist fuer dieses Lehrfach keine Anmeldung mehr moeglich - if($row->aktiv==false && $checked=='') + if ($row->aktiv == false && $checked == '') $disabled = "disabled='true'"; else $disabled = ""; - echo "$row->bezeichnung
"; + echo "\n"; + echo "$row->bezeichnung
"; $i++; } echo "
 
- - - - -
  -
- - - \ No newline at end of file + From f0f29be54bcff82672b90600b7823730a4eb3515 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 8 Mar 2018 09:22:53 +0100 Subject: [PATCH 02/20] =?UTF-8?q?Jahresplan=20-=20Deprecated=20functions?= =?UTF-8?q?=20entfernt=20Problem=20bei=20der=20Suche=20nach=20Eintr=C3=A4g?= =?UTF-8?q?en=20behoben?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/jahresplan/index.php | 12 +- include/jahresplan.class.php | 543 ++++++++++++++++--------------- 2 files changed, 282 insertions(+), 273 deletions(-) diff --git a/cis/private/jahresplan/index.php b/cis/private/jahresplan/index.php index 7c135a790..8de7600ee 100644 --- a/cis/private/jahresplan/index.php +++ b/cis/private/jahresplan/index.php @@ -50,7 +50,7 @@ $veranstaltungskategorie_kurzbz=trim((isset($_REQUEST['veranstaltungskategorie_k // Parameter Veranstaltung $veranstaltung_id=trim((isset($_REQUEST['veranstaltung_id']) ? $_REQUEST['veranstaltung_id']:'')); $Jahr=trim((isset($_REQUEST['Jahr']) ? $_REQUEST['Jahr']:date("Y", mktime(0,0,0,date("m"),date("d"),date("y"))))); -$Monat=trim((isset($_REQUEST['Monat']) ? $_REQUEST['Monat']:date("m", mktime(0,0,0,date("m"),date("d"),date("y"))))); +$Monat=trim((isset($_REQUEST['Monat']) && $_REQUEST['Monat']!='' ? $_REQUEST['Monat']:date("m", mktime(0,0,0,date("m"),date("d"),date("y"))))); $suchtext=trim((isset($_REQUEST['suchtext']) ? $_REQUEST['suchtext']:'')); if(!is_numeric($Jahr)) @@ -59,7 +59,7 @@ if(!is_numeric($Monat)) die($p->t("eventkalender/monatIstUngueltig")); if($veranstaltung_id!='' && !is_numeric($veranstaltung_id)) die($p->t("eventkalender/veranstaltungIdIstUngueltig")); - + // ------------------------------------------------------------------------------------------ // Alle Kategoriedaten lesen fuer Selektfeld (open in jahresplan_funktionen) // ------------------------------------------------------------------------------------------ @@ -196,13 +196,13 @@ if (!$veranstaltungskategorie=$Jahresplan->loadVeranstaltungskategorie())

 t('eventkalender/veranstaltungen');?> 

- + '.$p->t("eventkalender/veranstaltung").' | '.$p->t("eventkalender/kategorie").' ] '.$userNAME.'

'; ?> - + @@ -269,7 +269,7 @@ if (!$veranstaltungskategorie=$Jahresplan->loadVeranstaltungskategorie()) - loadVeranstaltungskategorie()) { $veranstaltung=array(); } - + # var_dump($veranstaltung); # exit; diff --git a/include/jahresplan.class.php b/include/jahresplan.class.php index a3bff5f29..3f52a5bf2 100644 --- a/include/jahresplan.class.php +++ b/include/jahresplan.class.php @@ -22,36 +22,36 @@ */ /** * - * @classe Jahresplan + * @classe Jahresplan * * @param connectSQL Datenbankverbindung - * @param veranstaltungskategorie_kurzbz Veranstaltungskategorie Key - * @param veranstaltung_id Veranstaltung Key + * @param veranstaltungskategorie_kurzbz Veranstaltungskategorie Key + * @param veranstaltung_id Veranstaltung Key * @param reservierung_id Reservierung Key * */ -require_once(dirname(__FILE__).'/basis_db.class.php'); +require_once(dirname(__FILE__).'/basis_db.class.php'); -class jahresplan extends basis_db +class jahresplan extends basis_db { public $new; // @boolean - public $result = array(); // jahresplan Objekt + public $result = array(); // jahresplan Objekt - // Veranstaltungskategorie - public $veranstaltungskategorie_kurzbz; // @string (16) KEY + // Veranstaltungskategorie + public $veranstaltungskategorie_kurzbz; // @string (16) KEY public $bezeichnung; // @string (64) public $farbe; // @string (6) public $bild; // @string (255) - - // Veranstaltungen - public $veranstaltung_id; // @int serial (Key) - + + // Veranstaltungen + public $veranstaltung_id; // @int serial (Key) + public $titel; // @string (64) public $beschreibung; // @string (255) public $inhalt; // @string (255) - + public $start; // @timestamp oder @date - public $ende; // @timestamp oder @date + public $ende; // @timestamp oder @date public $insertamum; // @timestamp public $insertvon; // @string (16) @@ -59,59 +59,58 @@ class jahresplan extends basis_db public $updatevon; // @string (16) public $freigabeamum; // @timestamp oder @date public $freigabevon; // @string (16) - + // Reservierung - public $reservierung_id; // @int serial (key) + public $reservierung_id; // @int serial (key) public $startDatum; // @int public $endeDatum; // @int public $startZeit; // @int - public $endeZeit; // @int - - // Suchbedingungen + public $endeZeit; // @int + + // Suchbedingungen public $show_only_public_kategorie=true; // @boolean - Public Kategorien sollen gelesen werden = false - public $start_jahr; // @int - public $ende_jahr; // @int - - public $start_jahr_monat; // @int - public $ende_jahr_monat; // @int - - public $start_jahr_woche; // @int - public $ende_jahr_woche; // @int - - public $suchtext; // @int + public $start_jahr; // @int + public $ende_jahr; // @int + + public $start_jahr_monat; // @int + public $ende_jahr_monat; // @int + + public $start_jahr_woche; // @int + public $ende_jahr_woche; // @int + + public $suchtext; // @int public $freigabe; // @boolean - + public $schemaSQL="campus"; // string Datenbankschema - + /** * Konstruktor - * @param $db Connection zur DB - * $veranstaltungskategorie_kurzbz zum ladenden der Kategorie Funktion + * @param $veranstaltungskategorie_kurzbz zum ladenden der Kategorie Funktion * $veranstaltung_id zum ladenden der Veranstaltung Funktion * $reservierung_id zum ladenden der Reservierung Funktion * $show_only_public_kategorie Boolean welche Kategorien Public oder Alle fuer Lektoren und Mitarbeiter */ - public function __construct($veranstaltungskategorie_kurzbz="",$veranstaltung_id="",$reservierung_id="",$show_only_public_kategorie=true) + public function __construct($veranstaltungskategorie_kurzbz="",$veranstaltung_id="",$reservierung_id="",$show_only_public_kategorie=true) { parent::__construct(); // Init alle Funktionen und Variablen $this->InitJahresplan(); - + // Berechtigungen beim Lesen $this->show_only_public_kategorie=$show_only_public_kategorie; - + // Veranstaltungskategorie $this->veranstaltungskategorie_kurzbz=$veranstaltungskategorie_kurzbz; if (!empty($this->veranstaltungskategorie_kurzbz)) $this->loadVeranstaltungskategorie($this->veranstaltungskategorie_kurzbz); - + // Veranstaltungen $this->veranstaltung_id=$veranstaltung_id; if (!empty($this->veranstaltung_id)) $this->loadVeranstaltung($this->veranstaltung_id,$this->veranstaltungskategorie_kurzbz); - + $this->reservierung_id=$reservierung_id; if (!empty($this->reservierung_id)) $this->loadReservierung($this->reservierung_id,$this->veranstaltung_id); @@ -122,43 +121,43 @@ class jahresplan extends basis_db * Initialisierung * */ - public function InitJahresplan() + public function InitJahresplan() { $this->errormsg=''; - $this->new=false; - + $this->new=false; + $this->InitVeranstaltungskategorie(); $this->InitVeranstaltung(); - $this->InitReservierung(); + $this->InitReservierung(); } - + /** * Initialisierung der Kategorien * */ public function InitVeranstaltungskategorie() - { - // Veranstaltungskategorie - $this->veranstaltungskategorie_kurzbz=''; - $this->bezeichnung=''; - $this->farbe=''; - $this->bild=''; - $this->result=array(); + { + // Veranstaltungskategorie + $this->veranstaltungskategorie_kurzbz=''; + $this->bezeichnung=''; + $this->farbe=''; + $this->bild=''; + $this->result=array(); } /** * Speichert bzw. Aendert eine Veranstaltungskategorie * @return true wenn ok, false im Fehlerfall - */ + */ public function saveVeranstaltungskategorie() - { + { // Initialisieren $this->errormsg=''; $qry=''; - + $fildsList=''; $fildsValue=''; - + if (empty($this->veranstaltungskategorie_kurzbz) || $this->veranstaltungskategorie_kurzbz==null ) { $this->errormsg='Veranstaltungskategorie - Kurzbz. fehlt!'; @@ -170,7 +169,7 @@ class jahresplan extends basis_db $this->errormsg='Veranstaltungskategorie - Bezeichnung fehlt!'; return false; } - + if($this->new) { @@ -179,61 +178,61 @@ class jahresplan extends basis_db $fildsList.='farbe,'; $fildsList.='bild'; - $fildsValue.="'".addslashes($this->veranstaltungskategorie_kurzbz)."',"; - $fildsValue.="'".addslashes($this->bezeichnung)."',"; - $fildsValue.="'".addslashes($this->farbe)."',"; - $fildsValue.="'".addslashes($this->bild)."'"; - - $qry=" insert into ".$this->schemaSQL.".tbl_veranstaltungskategorie (".$fildsList.") values (".$fildsValue."); "; + $fildsValue.= $this->db_add_param($this->veranstaltungskategorie_kurzbz).","; + $fildsValue.= $this->db_add_param($this->bezeichnung).","; + $fildsValue.= $this->db_add_param($this->farbe).","; + $fildsValue.= $this->db_add_param($this->bild); + + $qry=" INSERT INTO ".$this->schemaSQL.".tbl_veranstaltungskategorie (".$fildsList.") VALUES (".$fildsValue."); "; } else { - $fildsValue.=(!empty($fildsValue)?',':'')."bezeichnung='".addslashes($this->bezeichnung)."'"; - $fildsValue.=(!empty($fildsValue)?',':'')."farbe='".addslashes($this->farbe)."'"; - $fildsValue.=(!empty($fildsValue)?',':'')."bild='".addslashes($this->bild)."'"; + $fildsValue.=(!empty($fildsValue)?',':'')."bezeichnung=".$this->db_add_param($this->bezeichnung); + $fildsValue.=(!empty($fildsValue)?',':'')."farbe=".$this->db_add_param($this->farbe); + $fildsValue.=(!empty($fildsValue)?',':'')."bild=".$this->db_add_param($this->bild); - $qry.=" update ".$this->schemaSQL.".tbl_veranstaltungskategorie set "; + $qry.=" UPDATE ".$this->schemaSQL.".tbl_veranstaltungskategorie set "; $qry.=$fildsValue; - $qry.=" where veranstaltungskategorie_kurzbz='".addslashes($this->veranstaltungskategorie_kurzbz)."' "; - } - + $qry.=" WHERE veranstaltungskategorie_kurzbz=".$this->db_add_param($this->veranstaltungskategorie_kurzbz)." "; + } + if($this->db_query($qry)) return true; else { if (empty($this->errormsg)) - $this->errormsg = 'Fehler beim speichern des Datensatzes'; + $this->errormsg = 'Fehler beim Speichern des Datensatzes'; return false; - } + } } /** * Loescht eine Veranstaltungskategorie * @return true wenn ok, false im Fehlerfall - */ + */ public function deleteVeranstaltungskategorie($veranstaltungskategorie_kurzbz="") { // Initialisieren $qry=""; $this->errormsg=''; - + // Parameter if (!empty($veranstaltungskategorie_kurzbz)) $this->veranstaltungskategorie_kurzbz=$veranstaltungskategorie_kurzbz; - + // Plausib if (empty($this->veranstaltungskategorie_kurzbz) || $this->veranstaltungskategorie_kurzbz==null ) { $this->errormsg='Veranstaltungskategorie - Kurzbz. fehlt!'; return false; } - + // Abfrage - $qry.=" delete from ".$this->schemaSQL.".tbl_veranstaltungskategorie "; + $qry.=" DELETE FROM ".$this->schemaSQL.".tbl_veranstaltungskategorie "; if (is_array($this->veranstaltungskategorie_kurzbz)) - $qry.=" where veranstaltungskategorie_kurzbz in ('".implode("','",$this->veranstaltungskategorie_kurzbz)."') "; - else - $qry.=" where veranstaltungskategorie_kurzbz='".addslashes($this->veranstaltungskategorie_kurzbz)."' "; + $qry.=" WHERE veranstaltungskategorie_kurzbz in (".$this->db_implode4SQL($this->veranstaltungskategorie_kurzbz).") "; + else + $qry.=" WHERE veranstaltungskategorie_kurzbz=".$this->db_add_param($this->veranstaltungskategorie_kurzbz)." "; if($this->db_query($qry)) return true; @@ -246,9 +245,9 @@ class jahresplan extends basis_db } /** - * Lesen der Veranstaltungskategorien + * Lesen der Veranstaltungskategorien * @return Array mit Veranstaltungs-Objekt wenn ok, false im Fehlerfall - */ + */ public function loadVeranstaltungskategorie($veranstaltungskategorie_kurzbz="") { // Initialisieren @@ -258,26 +257,26 @@ class jahresplan extends basis_db if (!empty($veranstaltungskategorie_kurzbz)) $this->veranstaltungskategorie_kurzbz=$veranstaltungskategorie_kurzbz; - - // Abfrage - $qry.="SELECT * FROM ".$this->schemaSQL.".tbl_veranstaltungskategorie "; - $qry.=" WHERE veranstaltungskategorie_kurzbz IS NOT NULL "; - // Suche nach einer einzigen Veranstaltungskategorie_kurzbz - if (!is_array($this->veranstaltungskategorie_kurzbz) && !empty($this->veranstaltungskategorie_kurzbz) ) - { - $qry.=" and veranstaltungskategorie_kurzbz='".addslashes($this->veranstaltungskategorie_kurzbz)."' "; - } - elseif (is_array($this->veranstaltungskategorie_kurzbz) && count($this->veranstaltungskategorie_kurzbz)>0 ) - { - $qry.=" and veranstaltungskategorie_kurzbz in ('".implode("','",$this->veranstaltungskategorie_kurzbz)."') "; + // Abfrage + $qry.="SELECT * FROM ".$this->schemaSQL.".tbl_veranstaltungskategorie "; + $qry.=" WHERE veranstaltungskategorie_kurzbz IS NOT NULL "; + + // Suche nach einer einzigen Veranstaltungskategorie_kurzbz + if (!is_array($this->veranstaltungskategorie_kurzbz) && !empty($this->veranstaltungskategorie_kurzbz) ) + { + $qry.=" AND veranstaltungskategorie_kurzbz=".$this->db_add_param($this->veranstaltungskategorie_kurzbz)." "; + } + elseif (is_array($this->veranstaltungskategorie_kurzbz) && count($this->veranstaltungskategorie_kurzbz)>0 ) + { + $qry.=" AND veranstaltungskategorie_kurzbz in (".$this->db_implode4SQL($this->veranstaltungskategorie_kurzbz).") "; } - // Entscheiden welche Daten angezeigt werden Public oder fuer Mitarbeiter alles + // Entscheiden welche Daten angezeigt werden Public oder fuer Mitarbeiter alles if ($this->show_only_public_kategorie) - $qry.=" and veranstaltungskategorie_kurzbz not like '*%' "; + $qry.=" AND veranstaltungskategorie_kurzbz not like '*%' "; - $qry.=" ORDER BY veranstaltungskategorie_kurzbz "; + $qry.=" ORDER BY veranstaltungskategorie_kurzbz "; if($this->db_query($qry)) { @@ -293,7 +292,7 @@ class jahresplan extends basis_db if (empty($this->errormsg)) $this->errormsg = 'Fehler Veranstaltungskategorien lesen!'; return false; - } + } } @@ -301,10 +300,10 @@ class jahresplan extends basis_db * Initialisierung Veranstaltung * */ - public function InitVeranstaltung() + public function InitVeranstaltung() { $this->InitVeranstaltungskategorie(); - + $this->veranstaltung_id=0; $this->veranstaltungskategorie_kurzbz=''; @@ -312,8 +311,8 @@ class jahresplan extends basis_db $this->beschreibung=''; $this->inhalt=''; - - $this->start=''; + + $this->start=''; $this->ende=''; $this->insertamum=''; @@ -322,7 +321,7 @@ class jahresplan extends basis_db $this->updatevon=''; $this->freigabeamum=''; $this->freigabevon=''; - + // Suchfelder $this->start_jahr=''; $this->ende_jahr=''; @@ -335,7 +334,7 @@ class jahresplan extends basis_db $this->suchtext=''; $this->freigabe=false; - + $this->result=array(); } @@ -343,7 +342,7 @@ class jahresplan extends basis_db * Speichert bzw. Aendert eine Veranstaltung * @return true wenn ok, false im Fehlerfall * ToDo: angleichen an die anderen Save Funktionen - */ + */ public function saveVeranstaltung() { // Initialisieren @@ -351,7 +350,7 @@ class jahresplan extends basis_db $qry=''; $fildsList=''; $fildsValue=''; - + if (!$this->new && ( empty($this->veranstaltung_id) || $this->veranstaltung_id==null) ) { $this->errormsg='Veranstaltungs - ID fehlt!'; @@ -368,13 +367,13 @@ class jahresplan extends basis_db { $this->errormsg='Veranstaltungs - Beschreibung fehlt!'; return false; - } - + } + if($this->new) { $fildsList.='veranstaltungskategorie_kurzbz,'; $fildsList.='beschreibung,'; - $fildsList.='inhalt,'; + $fildsList.='inhalt,'; $fildsList.='start,'; $fildsList.='ende,'; $fildsList.='insertamum,'; @@ -384,37 +383,38 @@ class jahresplan extends basis_db $fildsList.='freigabeamum,'; $fildsList.='freigabevon'; - $fildsValue.="'".addslashes($this->veranstaltungskategorie_kurzbz)."',"; - $fildsValue.="'".addslashes($this->beschreibung)."',"; - $fildsValue.="'".addslashes($this->inhalt)."',"; - $fildsValue.="'".addslashes($this->start)."',"; - $fildsValue.="'".addslashes($this->ende)."',"; - $fildsValue.="'".addslashes($this->insertamum)."',"; - $fildsValue.="'".addslashes($this->insertvon)."',"; - $fildsValue.="'".addslashes($this->updateamum)."',"; - $fildsValue.="'".addslashes($this->updatevon)."',"; - $fildsValue.=(is_null($this->freigabeamum) || empty($this->freigabeamum)?'null':"'".addslashes($this->freigabeamum)."'").","; - $fildsValue.=(is_null($this->freigabevon) || empty($this->freigabevon)?'null':"'".addslashes($this->freigabevon)."'"); - $qry.=" insert into ".$this->schemaSQL.".tbl_veranstaltung (".$fildsList.") values (".$fildsValue.") "; + $fildsValue.=$this->db_add_param($this->veranstaltungskategorie_kurzbz).","; + $fildsValue.=$this->db_add_param($this->beschreibung).","; + $fildsValue.=$this->db_add_param($this->inhalt).","; + $fildsValue.=$this->db_add_param($this->start).","; + $fildsValue.=$this->db_add_param($this->ende).","; + $fildsValue.=$this->db_add_param($this->insertamum).","; + $fildsValue.=$this->db_add_param($this->insertvon).","; + $fildsValue.=$this->db_add_param($this->updateamum).","; + $fildsValue.=$this->db_add_param($this->updatevon).","; + $fildsValue.=(is_null($this->freigabeamum) || empty($this->freigabeamum)?'null':$this->db_add_param($this->freigabeamum)).","; + $fildsValue.=(is_null($this->freigabevon) || empty($this->freigabevon)?'null':$this->db_add_param($this->freigabevon)); + + $qry.=" INSERT INTO ".$this->schemaSQL.".tbl_veranstaltung (".$fildsList.") VALUES (".$fildsValue.") "; } else { - $fildsValue.=(!empty($fildsValue)?',':'')."veranstaltungskategorie_kurzbz='".addslashes($this->veranstaltungskategorie_kurzbz)."'"; - $fildsValue.=(!empty($fildsValue)?',':'')."beschreibung='".addslashes($this->beschreibung)."'"; - $fildsValue.=(!empty($fildsValue)?',':'')."inhalt='".addslashes($this->inhalt)."'"; - $fildsValue.=(!empty($fildsValue)?',':'')."start='".addslashes($this->start)."'"; - $fildsValue.=(!empty($fildsValue)?',':'')."ende='".addslashes($this->ende)."'"; - $fildsValue.=(!empty($fildsValue)?',':'')."updateamum='".addslashes($this->updateamum)."'"; - $fildsValue.=(!empty($fildsValue)?',':'')."updatevon='".addslashes($this->updatevon)."'"; + $fildsValue.=(!empty($fildsValue)?',':'')."veranstaltungskategorie_kurzbz=".$this->db_add_param($this->veranstaltungskategorie_kurzbz); + $fildsValue.=(!empty($fildsValue)?',':'')."beschreibung=".$this->db_add_param($this->beschreibung); + $fildsValue.=(!empty($fildsValue)?',':'')."inhalt=".$this->db_add_param($this->inhalt); + $fildsValue.=(!empty($fildsValue)?',':'')."start=".$this->db_add_param($this->start); + $fildsValue.=(!empty($fildsValue)?',':'')."ende=".$this->db_add_param($this->ende); + $fildsValue.=(!empty($fildsValue)?',':'')."updateamum=".$this->db_add_param($this->updateamum); + $fildsValue.=(!empty($fildsValue)?',':'')."updatevon=".$this->db_add_param($this->updatevon); if (is_null($this->freigabeamum)) $fildsValue.=(!empty($fildsValue)?',':'')."freigabeamum=null"; else - $fildsValue.=(!empty($fildsValue)?',':'')."freigabeamum='".addslashes($this->freigabeamum)."'"; - $fildsValue.=(!empty($fildsValue)?',':'').(is_null($this->freigabevon) || empty($this->freigabevon)?"freigabevon=null":"freigabevon='".addslashes($this->freigabevon)."'"); - $qry.=" update ".$this->schemaSQL.".tbl_veranstaltung set "; + $fildsValue.=(!empty($fildsValue)?',':'')."freigabeamum=".$this->db_add_param($this->freigabeamum); + $fildsValue.=(!empty($fildsValue)?',':'').(is_null($this->freigabevon) || empty($this->freigabevon)?"freigabevon=null":"freigabevon=".$this->db_add_param($this->freigabevon)); + $qry.=" UPDATE ".$this->schemaSQL.".tbl_veranstaltung SET "; $qry.=$fildsValue; - $qry.=" where veranstaltung_id='".addslashes($this->veranstaltung_id)."' "; + $qry.=" WHERE veranstaltung_id=".$this->db_add_param($this->veranstaltung_id); } if(!$this->db_query($qry)) @@ -423,10 +423,10 @@ class jahresplan extends basis_db $this->errormsg = 'Fehler beim Speichern des Datensatzes'; return false; } - + if($this->new) { - $qry=" select max(".$this->schemaSQL.".tbl_veranstaltung.veranstaltung_id) from ".$this->schemaSQL.".tbl_veranstaltung; "; + $qry=" SELECT max(".$this->schemaSQL.".tbl_veranstaltung.veranstaltung_id) FROM ".$this->schemaSQL.".tbl_veranstaltung; "; if(!$this->db_query($qry)) { if (empty($this->errormsg)) @@ -447,7 +447,7 @@ class jahresplan extends basis_db $veranstaltung_id=$this->veranstaltung_id; $this->InitVeranstaltung(); $this->veranstaltung_id=$veranstaltung_id; - if (!$this->loadVeranstaltung()) + if (!$this->loadVeranstaltung()) return false; return $this->result; } @@ -455,39 +455,39 @@ class jahresplan extends basis_db /** * Loescht eine Veranstaltung * @return true wenn ok, false im Fehlerfall - */ + */ public function deleteVeranstaltung($veranstaltung_id="") { // Initialisieren $qry=''; $this->errormsg=''; - + if (!empty($veranstaltung_id)) $this->veranstaltung_id=$veranstaltung_id; - + if (empty($this->veranstaltung_id) || $this->veranstaltung_id==null ) { $this->errormsg='Veranstaltung - ID fehlt!'; return false; } - + // Abfrage $qry.="BEGIN; "; - - // Reservierung - $qry.="update ".$this->schemaSQL.".tbl_reservierung set veranstaltung_id=null "; + + // Reservierung + $qry.="UPDATE ".$this->schemaSQL.".tbl_reservierung SET veranstaltung_id=null "; if (is_array($this->veranstaltung_id)) - $qry.=" WHERE veranstaltung_id in (".implode(",",$this->veranstaltung_id)."); "; - else - $qry.=" WHERE veranstaltung_id =".$this->veranstaltung_id."; "; - - // Veranstaltung - $qry.=" delete from ".$this->schemaSQL.".tbl_veranstaltung "; + $qry.=" WHERE veranstaltung_id in (".$this->db_implode4SQL($this->veranstaltung_id)."); "; + else + $qry.=" WHERE veranstaltung_id =".$this->db_add_param($this->veranstaltung_id, FHC_INTEGER)."; "; + + // Veranstaltung + $qry.=" DELETE FROM ".$this->schemaSQL.".tbl_veranstaltung "; if (is_array($this->veranstaltung_id)) - $qry.=" WHERE veranstaltung_id in (".implode(",",$this->veranstaltung_id)."); "; - else - $qry.=" WHERE veranstaltung_id =".$this->veranstaltung_id."; "; - + $qry.=" WHERE veranstaltung_id in (".$this->db_implode4SQL($this->veranstaltung_id)."); "; + else + $qry.=" WHERE veranstaltung_id =".$this->db_add_param($this->veranstaltung_id, FHC_INTEGER)."; "; + $qry.=" COMMIT; "; if($this->db_query($qry)) @@ -497,18 +497,18 @@ class jahresplan extends basis_db if (empty($this->errormsg)) $this->errormsg = 'Fehler beim Veranstaltung löschen '; return false; - } + } } /** - * Lesen der Veranstaltung + * Lesen der Veranstaltung * @return Array mit Veranstaltungs-Objekt wenn ok, false im Fehlerfall */ public function loadVeranstaltung($veranstaltungskategorie_kurzbz="",$veranstaltung_id="",$freigabe="",$show_only_public_kategorie="") { //Init $qry=''; - + $this->errormsg=''; $this->result=array(); @@ -517,13 +517,13 @@ class jahresplan extends basis_db if (!empty($veranstaltungskategorie_kurzbz)) $this->veranstaltungskategorie_kurzbz=$veranstaltungskategorie_kurzbz; - + if ($freigabe!='') $this->freigabe=$freigabe; if ($show_only_public_kategorie!='') $this->show_only_public_kategorie=$show_only_public_kategorie; - + $qry.="SELECT tbl_veranstaltung.* "; $qry.=", to_char(tbl_veranstaltung.start, 'YYYYMMDD') as \"start_jjjjmmtt\" "; @@ -538,7 +538,7 @@ class jahresplan extends basis_db $qry.=", to_char(tbl_veranstaltung.start, 'DD') as \"start_tag\" "; $qry.=", to_char(tbl_veranstaltung.ende, 'DD') as \"ende_tag\" "; - + $qry.=", to_char(tbl_veranstaltung.start, 'Day') as \"start_tagname\" "; $qry.=", to_char(tbl_veranstaltung.ende, 'Day') as \"ende_tagname\" "; @@ -547,7 +547,7 @@ class jahresplan extends basis_db $qry.=", to_char(tbl_veranstaltung.start, 'Q') as \"start_quartal\" "; $qry.=", to_char(tbl_veranstaltung.ende, 'Q') as \"ende_quartal\" "; - + $qry.=", EXTRACT(EPOCH FROM tbl_veranstaltung.start::TIMESTAMP WITHOUT TIME ZONE at time zone 'CEST' ) as \"start_timestamp\" "; $qry.=", EXTRACT(EPOCH FROM tbl_veranstaltung.ende::TIMESTAMP WITHOUT TIME @@ -567,7 +567,7 @@ ZONE at time zone 'CEST' ) as \"ende_timestamp\" "; $qry.=", to_char(tbl_veranstaltung.updateamum, 'DD.MM.YYYY') as \"updateamum_datum\" "; $qry.=", to_char(tbl_veranstaltung.updateamum, 'HH24:MI') as \"updateamum_zeit\" "; $qry.=", EXTRACT(EPOCH FROM tbl_veranstaltung.updateamum) as \"updateamum_timestamp\" "; - + $qry.=", to_char(tbl_veranstaltung.freigabeamum, 'DD.MM.YYYY') as \"freigabeamum_datum\" "; $qry.=", to_char(tbl_veranstaltung.freigabeamum, 'HH24:MI') as \"freigabeamum_zeit\" "; $qry.=", EXTRACT(EPOCH FROM tbl_veranstaltung.freigabeamum) as \"freigabeamum_timestamp\" "; @@ -577,108 +577,108 @@ ZONE at time zone 'CEST' ) as \"ende_timestamp\" "; $qry.=" FROM ".$this->schemaSQL.".tbl_veranstaltungskategorie "; $qry.=" LEFT JOIN ".$this->schemaSQL.".tbl_veranstaltung ON ".$this->schemaSQL.".tbl_veranstaltung.veranstaltungskategorie_kurzbz=".$this->schemaSQL.".tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz "; $qry.=" WHERE ".$this->schemaSQL.".tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz>'' "; - + if ($this->freigabe) { $qry.=" AND ".$this->schemaSQL.".tbl_veranstaltung.freigabevon>'' "; } - // Suche nach einer einzigen Veranstaltung_id - if (!is_array($this->veranstaltung_id) && !empty($this->veranstaltung_id) ) + // Suche nach einer einzigen Veranstaltung_id + if (!is_array($this->veranstaltung_id) && !empty($this->veranstaltung_id)) { if(!is_numeric($this->veranstaltung_id)) { $this->errormsg = 'Veranstaltung_id ist ungueltig'; return false; } - $qry.=" AND ".$this->schemaSQL.".tbl_veranstaltung.veranstaltung_id='".addslashes($this->veranstaltung_id)."' "; + $qry.=" AND ".$this->schemaSQL.".tbl_veranstaltung.veranstaltung_id=".$this->db_add_param($this->veranstaltung_id)." "; } elseif (is_array($this->veranstaltung_id) && count($this->veranstaltung_id)>0 ) { - $qry.=" AND ".$this->schemaSQL.".tbl_veranstaltung.veranstaltung_id in (".addslashes(implode(",",$this->veranstaltung_id)).") "; + $qry.=" AND ".$this->schemaSQL.".tbl_veranstaltung.veranstaltung_id in (".$this->db_implode4SQL($this->veranstaltung_id).") "; } // Suche nach einer einzigen Veranstaltungskategorie_kurzbz if (!is_array($this->veranstaltungskategorie_kurzbz) && $this->veranstaltungskategorie_kurzbz!='' ) { - $qry.=" AND ".$this->schemaSQL.".tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz='".addslashes($this->veranstaltungskategorie_kurzbz)."' "; + $qry.=" AND ".$this->schemaSQL.".tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz=".$this->db_add_param($this->veranstaltungskategorie_kurzbz)." "; } elseif (is_array($this->veranstaltungskategorie_kurzbz) && count($this->veranstaltungskategorie_kurzbz)>0 ) { - $qry.=" AND ".$this->schemaSQL.".tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz in ('".implode("','",$this->veranstaltungskategorie_kurzbz)."') "; + $qry.=" AND ".$this->schemaSQL.".tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz in (".$this->db_implode4SQL($this->veranstaltungskategorie_kurzbz).") "; } if (!empty($this->start) && empty($this->ende) ) - $qry.=" AND ".$this->schemaSQL.".tbl_veranstaltung.start=to_timestamp(".$this->start.") "; + $qry.=" AND ".$this->schemaSQL.".tbl_veranstaltung.start=to_timestamp(".$this->db_add_param($this->start).") "; else if (empty($this->start) && !empty($this->ende) ) - $qry.=" AND ".$this->schemaSQL.".tbl_veranstaltung.ende=to_timestamp(".$this->ende.") "; + $qry.=" AND ".$this->schemaSQL.".tbl_veranstaltung.ende=to_timestamp(".$this->db_add_param($this->ende).") "; else if (!empty($this->start) && !empty($this->ende) ) { - $qry.=" AND to_timestamp(".$this->start.") >=to_timestamp(".$this->schemaSQL.".tbl_veranstaltung.start) "; - $qry.=" AND to_timestamp(".$this->ende.") <= to_timestamp(".$this->schemaSQL.".tbl_veranstaltung.ende) "; + $qry.=" AND to_timestamp(".$this->db_add_param($this->start).") >=to_timestamp(".$this->schemaSQL.".tbl_veranstaltung.start) "; + $qry.=" AND to_timestamp(".$this->db_add_param($this->ende).") <= to_timestamp(".$this->schemaSQL.".tbl_veranstaltung.ende) "; } if (!empty($this->start_jahr) && empty($this->ende_jahr)) - $qry.=" AND to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYY')='".addslashes($this->start_jahr)."'"; + $qry.=" AND to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYY')=".$this->db_add_param($this->start_jahr); elseif (empty($this->start_jahr) && !empty($this->ende_jahr) ) - $qry.=" AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYY')='".addslashes($this->ende_jahr)."'"; + $qry.=" AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYY')=".$this->db_add_param($this->ende_jahr); elseif (empty($this->start_jahr) && !empty($this->ende_jahr) ) { - $qry.=" AND '".addslashes($this->start_jahr)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYY') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYY') "; - $qry.=" AND '".addslashes($this->ende_jahr)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYY') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYY') "; + $qry.=" AND ".$this->db_add_param($this->start_jahr)." between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYY') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYY') "; + $qry.=" AND ".$this->db_add_param($this->ende_jahr)." between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYY') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYY') "; } if (!empty($this->start_jahr_monat) && empty($this->ende_jahr_monat) ) - $qry.=" AND '".addslashes($this->start_jahr_monat)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMM') and to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMM')"; + $qry.=" AND ".$this->db_add_param($this->start_jahr_monat)." between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMM') and to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMM')"; elseif (empty($this->start_jahr_monat) && !empty($this->ende_jahr_monat) ) - $qry.=" AND '".addslashes($this->start_jahr_monat)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMM') and to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMM')"; + $qry.=" AND ".$this->db_add_param($this->start_jahr_monat)." between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMM') and to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMM')"; elseif (!empty($this->start_jahr_monat) && !empty($this->ende_jahr_monat) ) { - $qry.=" AND '".addslashes($this->start_jahr_monat)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMM') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMM') "; - $qry.=" AND '".addslashes($this->ende_jahr_monat)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMM') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMM') "; + $qry.=" AND ".$this->db_add_param($this->start_jahr_monat)." between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMM') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMM') "; + $qry.=" AND ".$this->db_add_param($this->ende_jahr_monat)." between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMM') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMM') "; } - + if (!empty($this->start_jahr_woche) && empty($this->ende_jahr_woche) ) - $qry.=" AND '".addslashes($this->start_jahr_woche)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYIW'') and to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYIW'')"; + $qry.=" AND ".$this->db_add_param($this->start_jahr_woche)." between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYIW'') and to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYIW'')"; elseif (empty($this->start_jahr_woche) && !empty($this->ende_jahr_woche) ) - $qry.=" AND '".addslashes($this->start_jahr_woche)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYIW'') and to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYIW'')"; + $qry.=" AND ".$this->db_add_param($this->start_jahr_woche)." between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYIW'') and to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYIW'')"; elseif (!empty($this->start_jahr_woche) && !empty($this->ende_jahr_woche) ) { - $qry.=" AND '".addslashes($this->start_jahr_woche)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYIW'') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYIW'') "; - $qry.=" AND '".addslashes($this->ende_jahr_woche)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYIW'') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYIW'') "; - } - + $qry.=" AND ".$this->db_add_param($this->start_jahr_woche)." between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYIW'') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYIW'') "; + $qry.=" AND ".$this->db_add_param($this->ende_jahr_woche)." between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYIW'') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYIW'') "; + } + if (!empty($this->start_jahr_monat_tag) && empty($this->ende_jahr_monat_tag) ) - $qry.=" AND to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMMDD')>='".addslashes($this->start_jahr_monat_tag)."'"; + $qry.=" AND to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMMDD')>=".$this->db_add_param($this->start_jahr_monat_tag); elseif (empty($this->start_jahr_monat_tag) && !empty($this->ende_jahr_monat_tag) ) - $qry.=" AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMMDD')<='".addslashes($this->ende_jahr_monat_tag)."'"; + $qry.=" AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMMDD')<=".$this->db_add_param($this->ende_jahr_monat_tag); elseif (!empty($this->start_jahr_monat_tag) && !empty($this->ende_jahr_monat_tag) ) { - $qry.=" AND '".addslashes($this->start_jahr_monat_tag)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMMDD') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMMDD') "; - $qry.=" AND '".addslashes($this->ende_jahr_monat_tag)."' between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMMDD') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMMDD') "; + $qry.=" AND ".$this->db_add_param($this->start_jahr_monat_tag)." between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMMDD') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMMDD') "; + $qry.=" AND ".$this->db_add_param($this->ende_jahr_monat_tag)." between to_char(".$this->schemaSQL.".tbl_veranstaltung.start, 'YYYYMMDD') AND to_char(".$this->schemaSQL.".tbl_veranstaltung.ende, 'YYYYMMDD') "; } if ($this->suchtext) { $this->suchtext='%'.$this->suchtext.'%'; $this->suchtext=str_replace(' ','%',$this->suchtext); - $this->suchtext=str_replace('%%','%',addslashes($this->suchtext)); - $qry.=" AND ( ".$this->schemaSQL.".tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz like '".addslashes($this->suchtext)."' - OR ".$this->schemaSQL.".tbl_veranstaltungskategorie.bezeichnung like '".addslashes($this->suchtext)."' - OR ".$this->schemaSQL.".tbl_veranstaltung.beschreibung like '".addslashes($this->suchtext)."' - OR ".$this->schemaSQL.".tbl_veranstaltung.inhalt like '".addslashes($this->suchtext)."' ) "; - } + $this->suchtext=str_replace('%%','%',$this->suchtext); + $qry.=" AND ( ".$this->schemaSQL.".tbl_veranstaltungskategorie.veranstaltungskategorie_kurzbz like ".$this->db_add_param($this->suchtext)." + OR ".$this->schemaSQL.".tbl_veranstaltungskategorie.bezeichnung like ".$this->db_add_param($this->suchtext)." + OR ".$this->schemaSQL.".tbl_veranstaltung.beschreibung like ".$this->db_add_param($this->suchtext)." + OR ".$this->schemaSQL.".tbl_veranstaltung.inhalt like ".$this->db_add_param($this->suchtext)." ) "; + } - // Entscheiden welche Daten angezeigt werden Public oder fuer Mitarbeiter alles + // Entscheiden welche Daten angezeigt werden Public oder fuer Mitarbeiter alles if ($this->show_only_public_kategorie) - $qry.=" AND NOT ".$this->schemaSQL.".tbl_veranstaltung.veranstaltungskategorie_kurzbz like '*%' "; - + $qry.=" AND NOT ".$this->schemaSQL.".tbl_veranstaltung.veranstaltungskategorie_kurzbz like '*%' "; + if (!empty($this->start) || !empty($this->ende) || !empty($this->start_jahr) || !empty($this->ende_jahr) || !empty($this->start_jahr_monat) || !empty($this->ende_jahr_monat) || !empty($this->start_jahr_monat_tag) || !empty($this->ende_jahr_monat_tag) ) - $qry.=" ORDER BY ".$this->schemaSQL.".tbl_veranstaltung.start, ".$this->schemaSQL.".tbl_veranstaltungskategorie.bezeichnung "; + $qry.=" ORDER BY ".$this->schemaSQL.".tbl_veranstaltung.start, ".$this->schemaSQL.".tbl_veranstaltungskategorie.bezeichnung "; else - $qry.=" ORDER BY ".$this->schemaSQL.".tbl_veranstaltungskategorie.bezeichnung, ".$this->schemaSQL.".tbl_veranstaltung.start "; - + $qry.=" ORDER BY ".$this->schemaSQL.".tbl_veranstaltungskategorie.bezeichnung, ".$this->schemaSQL.".tbl_veranstaltung.start "; + if($this->db_query($qry)) { $veranstaltungkategorie=array(); @@ -686,40 +686,40 @@ ZONE at time zone 'CEST' ) as \"ende_timestamp\" "; { $veranstaltungkategorie[]=$row; } - + return $this->result=$veranstaltungkategorie; } else { if (empty($this->errormsg)) - $this->errormsg = 'Fehler Veranstaltungen lesen'; + $this->errormsg = 'Fehler beim Laden der Veranstaltung'; return false; - } - } + } + } /** * Reservierung Initialisieren * */ - public function InitReservierung() + public function InitReservierung() { - $this->reservierung_id=0; + $this->reservierung_id=0; $this->veranstaltung_id=null; $this->startDatum=''; $this->endeDatum=''; $this->startZeit=''; - $this->endeZeit=''; + $this->endeZeit=''; $this->result=array(); } - + /** * Reservierung Speichern * * @return unknown - * + * * TODO: eventuelle auslagerung in reservierung.class.php ??? */ public function saveReservierung() @@ -727,14 +727,23 @@ ZONE at time zone 'CEST' ) as \"ende_timestamp\" "; // Initialisieren $this->errormsg=''; $qry=""; - + // Plausib - if ( empty($this->reservierung_id) ) + if ( empty($this->reservierung_id) ) { $this->errormsg='Keine Reservierung ID gefunden !'; return false; - } - $qry.=" update ".$this->schemaSQL.".tbl_reservierung set veranstaltung_id=".(!empty($this->veranstaltung_id) && !is_null($this->veranstaltung_id)?$this->veranstaltung_id:"null")." WHERE reservierung_id=".$this->reservierung_id."; " ; + } + + if(!empty($this->veranstaltung_id) && !is_null($this->veranstaltung_id)) + $id = $this->db_add_param($this->veranstaltung_id); + else + $id = null; + + $qry.="UPDATE ".$this->schemaSQL.".tbl_reservierung SET + veranstaltung_id=".$id." + WHERE reservierung_id=".$this->db_add_param($this->reservierung_id)."; " ; + if($this->db_query($qry)) return true; else @@ -755,104 +764,104 @@ ZONE at time zone 'CEST' ) as \"ende_timestamp\" "; * @param unknown_type $startZeit * @param unknown_type $endeZeit * @return unknown - * + * * TODO: eventuelle auslagerung in reservierung.class.php ??? */ - public function loadReservierung($reservierung_id="",$veranstaltung_id="",$startDatum="",$endeDatum="",$startZeit="",$endeZeit="") - { + public function loadReservierung($reservierung_id="",$veranstaltung_id="",$startDatum="",$endeDatum="",$startZeit="",$endeZeit="") + { //Init $this->errormsg=''; - - if ($reservierung_id!='') + + if ($reservierung_id!='') $this->reservierung_id=$reservierung_id; - if ($veranstaltung_id!='') + if ($veranstaltung_id!='') $this->veranstaltung_id=$veranstaltung_id; - - if ($startDatum!='') + + if ($startDatum!='') $this->startDatum=$startDatum; - + if (!empty($this->startDatum) && is_numeric($this->startDatum)) $this->startDatum=strftime('%Y%m%d',$this->startDatum); - + if ($endeDatum!='') $this->endeDatum=$endeDatum; - + if (!empty($this->endeDatum) && is_numeric($this->endeDatum)) $this->endeDatum=strftime('%Y%m%d',$this->endeDatum); - + if ($startZeit!='') $this->startZeit=$startZeit; - + if (!empty($this->startZeit) && is_numeric($this->startZeit)) $this->startZeit=date('Hi',$this->startZeit); - + if ($endeZeit!='') $this->endeZeit=$endeZeit; if (!empty($this->endeZeit) && is_numeric($this->endeZeit)) - $this->endeZeit=date('Hi',$this->endeZeit); - + $this->endeZeit=date('Hi',$this->endeZeit); + $qry=''; $qry.="SELECT tbl_reservierung.* "; - + $qry.=", to_char(tbl_reservierung.datum, 'YYYYMMDD') as \"datum_jjjjmmtt\" "; $qry.=", to_char(tbl_reservierung.datum, 'YYYYMM') as \"datum_jahr_monat\" "; $qry.=", to_char(tbl_reservierung.datum, 'YYYY') as \"datum_jahr\" "; - + $qry.=", to_char(tbl_reservierung.datum, 'WW') as \"datum_woche\" "; - + $qry.=", to_char(tbl_reservierung.datum, 'Q') as \"datum_quartal\" "; - + $qry.=", to_char(tbl_reservierung.datum, 'DD.MM.YYYY') as \"datum_anzeige\" "; - - $qry.=", lehre.tbl_stunde.beginn, lehre.tbl_stunde.ende "; + + $qry.=", lehre.tbl_stunde.beginn, lehre.tbl_stunde.ende "; $qry.=", to_char(lehre.tbl_stunde.beginn, 'HH24:MI') as \"beginn_anzeige\" "; $qry.=", to_char(lehre.tbl_stunde.ende, 'HH24:MI') as \"ende_anzeige\" "; - + $qry.=", EXTRACT(EPOCH FROM tbl_reservierung.datum) as \"datum_timestamp\" "; - - + + $qry.=" FROM ".$this->schemaSQL.".tbl_reservierung "; $qry.=" RIGHT JOIN lehre.tbl_stunde ON lehre.tbl_stunde.stunde=".$this->schemaSQL.".tbl_reservierung.stunde "; - + // Wird nur fuer Lesen alle - benoetigt if (empty($this->reservierung_id) && empty($this->veranstaltung_id)) { if (!empty($this->startZeit) && empty($this->endeZeit) ) - $qry.=" AND to_char(lehre.tbl_stunde.beginn, 'HH24MI')='".$this->startZeit."' "; + $qry.=" AND to_char(lehre.tbl_stunde.beginn, 'HH24MI')=".$this->db_add_param($this->startZeit)." "; else if (empty($this->startZeit) && !empty($this->endeZeit) ) - $qry.=" AND to_char(lehre.tbl_stunde.ende, 'HH24MI')='".$this->endeZeit."' "; - else if (!empty($this->startZeit) && !empty($this->endeZeit) ) + $qry.=" AND to_char(lehre.tbl_stunde.ende, 'HH24MI')=".$this->db_add_param($this->endeZeit)." "; + else if (!empty($this->startZeit) && !empty($this->endeZeit)) { - $qry.=" AND to_char(lehre.tbl_stunde.beginn, 'HH24MI') >='".$this->startZeit."' "; - $qry.=" AND to_char(lehre.tbl_stunde.ende, 'HH24MI') <= '".$this->endeZeit.",' "; - } - } - - $qry.=" WHERE ".$this->schemaSQL.".tbl_reservierung.titel>'' "; - - // Suche nach einer einzigen reservierung_id + $qry.=" AND to_char(lehre.tbl_stunde.beginn, 'HH24MI') >=".$this->db_add_param($this->startZeit)." "; + $qry.=" AND to_char(lehre.tbl_stunde.ende, 'HH24MI') <= ".$this->db_add_param($this->endeZeit)." "; + } + } + + $qry.=" WHERE ".$this->schemaSQL.".tbl_reservierung.titel>'' "; + + // Suche nach einer einzigen reservierung_id if (!is_array($this->reservierung_id) && !empty($this->reservierung_id) ) - $qry.=" AND ".$this->schemaSQL.".tbl_reservierung.reservierung_id=".$this->reservierung_id." "; + $qry.=" AND ".$this->schemaSQL.".tbl_reservierung.reservierung_id=".$this->db_add_param($this->reservierung_id)." "; elseif (is_array($this->reservierung_id) && count($this->reservierung_id)>0 ) - $qry.=" AND ".$this->schemaSQL.".tbl_reservierung.reservierung_id in (".implode(",",$this->reservierung_id).") "; - - // Suche nach einer einzigen Veranstaltung_id + $qry.=" AND ".$this->schemaSQL.".tbl_reservierung.reservierung_id in (".$this->db_implode4SQL($this->reservierung_id).") "; + + // Suche nach einer einzigen Veranstaltung_id if (!is_array($this->veranstaltung_id) && !empty($this->veranstaltung_id) ) - $qry.=" AND ".$this->schemaSQL.".tbl_reservierung.veranstaltung_id=".$this->veranstaltung_id." "; - elseif (is_array($this->veranstaltung_id) && count($this->veranstaltung_id)>0 ) - $qry.=" AND ".$this->schemaSQL.".tbl_reservierung.veranstaltung_id in (".implode(",",$this->veranstaltung_id).") "; - + $qry.=" AND ".$this->schemaSQL.".tbl_reservierung.veranstaltung_id=".$this->db_add_param($this->veranstaltung_id)." "; + elseif (is_array($this->veranstaltung_id) && count($this->veranstaltung_id)>0 ) + $qry.=" AND ".$this->schemaSQL.".tbl_reservierung.veranstaltung_id in (".$this->db_implode4SQL($this->veranstaltung_id).") "; + if (!empty($this->startDatum) && empty($this->endeDatum) ) - $qry.=" AND to_char(".$this->schemaSQL.".tbl_reservierung.datum, 'YYYYMMDD')='".$this->start."' "; + $qry.=" AND to_char(".$this->schemaSQL.".tbl_reservierung.datum, 'YYYYMMDD')=".$this->db_add_param($this->start)." "; else if (empty($this->startDatum) && !empty($this->endeDatum) ) - $qry.=" AND to_char(".$this->schemaSQL.".tbl_reservierung.datum, 'YYYYMMDD')='".$this->ende."' "; + $qry.=" AND to_char(".$this->schemaSQL.".tbl_reservierung.datum, 'YYYYMMDD')=".$this->db_add_param($this->ende)." "; else if (!empty($this->startDatum) && !empty($this->endeDatum) ) { - $qry.=" AND '".$this->startDatum."' between to_char(".$this->schemaSQL.".tbl_reservierung.datum, 'YYYYMMDD') AND to_char(".$this->schemaSQL.".tbl_reservierung.datum, 'YYYYMMDD') "; - $qry.=" AND '".$this->endeDatum."' between to_char(".$this->schemaSQL.".tbl_reservierung.datum, 'YYYYMMDD') AND to_char(".$this->schemaSQL.".tbl_reservierung.datum, 'YYYYMMDD') "; - } - $qry.=" ORDER BY ".$this->schemaSQL.".tbl_reservierung.datum,tbl_reservierung.stunde "; - + $qry.=" AND ".$this->db_add_param($this->startDatum)." between to_char(".$this->schemaSQL.".tbl_reservierung.datum, 'YYYYMMDD') AND to_char(".$this->schemaSQL.".tbl_reservierung.datum, 'YYYYMMDD') "; + $qry.=" AND ".$this->db_add_param($this->endeDatum)." between to_char(".$this->schemaSQL.".tbl_reservierung.datum, 'YYYYMMDD') AND to_char(".$this->schemaSQL.".tbl_reservierung.datum, 'YYYYMMDD') "; + } + $qry.=" ORDER BY ".$this->schemaSQL.".tbl_reservierung.datum,tbl_reservierung.stunde "; + if($this->db_query($qry)) { $this->result=array(); @@ -867,7 +876,7 @@ ZONE at time zone 'CEST' ) as \"ende_timestamp\" "; if (empty($this->errormsg)) $this->errormsg = 'Fehler Reservierung lesen'; return false; - } - } + } + } } ?> From 4444da13d94e1bce443448a694970fe2bb82f514 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 8 Mar 2018 09:26:34 +0100 Subject: [PATCH 03/20] =?UTF-8?q?Diverse=20Sicherheitsl=C3=BCcken=20geschl?= =?UTF-8?q?ossen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/lehre/ects/freigabe.php | 69 +++++---- cis/public/incoming/incoming.php | 217 ++++++++++++++-------------- cis/testtool/admin/index.php | 9 +- 3 files changed, 158 insertions(+), 137 deletions(-) diff --git a/cis/private/lehre/ects/freigabe.php b/cis/private/lehre/ects/freigabe.php index 98842682f..3e0a242f3 100644 --- a/cis/private/lehre/ects/freigabe.php +++ b/cis/private/lehre/ects/freigabe.php @@ -29,7 +29,7 @@ @edit 08-11-2006 Versionierung entfernt. Studiensemester = WS2007 03-01-2006 Anpassung an neue DB */ - + require_once('../../../../config/cis.config.inc.php'); require_once('../../../../include/basis_db.class.php'); require_once('../../../../include/functions.inc.php'); @@ -38,8 +38,8 @@ require_once('../../../../include/lvinfo.class.php'); require_once('../../../../include/phrasen.class.php'); require_once('../../../../include/benutzerberechtigung.class.php'); -$sprache = getSprache(); -$p = new phrasen($sprache); +$sprache = getSprache(); +$p = new phrasen($sprache); if (!$db = new basis_db()) die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); @@ -70,14 +70,14 @@ $rechte->getBerechtigungen($user); return false; } - + $lv=trim((isset($_REQUEST['lv']) ? $_REQUEST['lv']:'')); //Studiengang der Angezeigt werden soll $stg=trim((isset($_REQUEST['stg']) ? $_REQUEST['stg']:'')); //Semester das angezeigt werden soll $sem=trim((isset($_REQUEST['sem']) ? $_REQUEST['sem']:'')); - + if (!$rechte->isBerechtigt('lehre/lvinfo_freigabe',$stg)) die ($rechte->errormsg); @@ -118,23 +118,24 @@ $rechte->getBerechtigungen($user); { //Setzt die Spalte genehmigt auf den entsprechenden Wert //=Wenn Hackerl angeklickt wird - - $qry="SELECT genehmigt FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id='$lv' AND sprache="; + + $qry="SELECT genehmigt FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id=".$db->db_add_param($lv)." AND sprache="; if($_GET['lang']=='de') - $qry.="'".ATTR_SPRACHE_DE."'"; + $qry.= $db->db_add_param(ATTR_SPRACHE_DE); else - $qry.="'".ATTR_SPRACHE_EN."'"; + $qry.= $db->db_add_param(ATTR_SPRACHE_EN); if($result=$db->db_query($qry)) { if($row=$db->db_fetch_object($result)) { $wert = $row->genehmigt=='t'?'false':'true'; - $qry="UPDATE campus.tbl_lvinfo SET genehmigt=$wert WHERE lehrveranstaltung_id=$lv AND sprache="; + $qry="UPDATE campus.tbl_lvinfo SET genehmigt=$wert + WHERE lehrveranstaltung_id=".$db->db_add_param($lv)." AND sprache="; if($_GET['lang']=='de') - $qry.="'".ATTR_SPRACHE_DE."'"; + $qry .= $db->db_add_param(ATTR_SPRACHE_DE); else - $qry.="'".ATTR_SPRACHE_EN."'"; + $qry .= $db->db_add_param(ATTR_SPRACHE_EN); if($db->db_query($qry)) WriteLog($qry,$user); @@ -167,20 +168,20 @@ $rechte->getBerechtigungen($user); function ask() { return confirm("t('global/warnungWirklichLoeschen');?>"); } -$(document).ready(function() - { +$(document).ready(function() + { $("#myTable").tablesorter( { sortList: [[1,0]], widgets: ["zebra"], headers : {0:{sorter: false}} - }); - }); + }); + });

t('courseInformation/lvInfoFreigabe');?>

- +
 
@@ -196,7 +197,7 @@ $(document).ready(function()
- + db_add_param($stg)." ORDER by semester"; if(!$result=$db->db_query($qry)) die ("
".$p->t('global/fehleraufgetreten')."
"); @@ -293,7 +294,17 @@ $(document).ready(function() db_add_param($stg)." + AND semester=".$db->db_add_param($sem)." AND tbl_lvinfo.aktiv=true + AND tbl_lvinfo.sprache=".$db->db_add_param(ATTR_SPRACHE_DE)." + ORDER BY tbl_lehrveranstaltung.bezeichnung ASC"; if(!$result=$db->db_query($qry)) die("
Fehler bei einer Datenbankabfrage
"); @@ -302,7 +313,15 @@ $(document).ready(function() while($row=$db->db_fetch_object($result)) { $i++; - $qry1="SELECT *, tbl_lehrveranstaltung.bezeichnung as bezeichnung, tbl_lvinfo.updatevon as updatevon FROM campus.tbl_lvinfo JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) WHERE tbl_lvinfo.sprache='".ATTR_SPRACHE_EN."' AND lehrveranstaltung_id='$row->lehrveranstaltung_id'"; + $qry1="SELECT *, + tbl_lehrveranstaltung.bezeichnung as bezeichnung, + tbl_lvinfo.updatevon as updatevon + FROM + campus.tbl_lvinfo + JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) + WHERE + tbl_lvinfo.sprache=".$db->db_add_param(ATTR_SPRACHE_EN)." + AND lehrveranstaltung_id=".$db->db_add_param($row->lehrveranstaltung_id); if(!$result1=$db->db_query($qry1)) die("
Fehler bei einer Datenbankabfrage
"); @@ -310,12 +329,12 @@ $(document).ready(function() if(!$row1=$db->db_fetch_object($result1)) die("
Fehler bei einer Datenbankabfrage
"); - $qry2="SELECT vorname, nachname FROM campus.vw_mitarbeiter WHERE uid='$row->updatevon'"; + $qry2="SELECT vorname, nachname FROM campus.vw_mitarbeiter WHERE uid=".$db->db_add_param($row->updatevon); $style=''; if ($lv==$row->lehrveranstaltung_id) $style='style="background-color: #AAA; border-top: 1px solid black; border-bottom: 1px solid black"'; - + $bearbeitet=$row->updatevon; if($result2=$db->db_query($qry2)) if($row2=$db->db_fetch_object($result2)) @@ -339,6 +358,6 @@ $(document).ready(function() - + - \ No newline at end of file + diff --git a/cis/public/incoming/incoming.php b/cis/public/incoming/incoming.php index 9625d9455..d4a2835e6 100644 --- a/cis/public/incoming/incoming.php +++ b/cis/public/incoming/incoming.php @@ -61,7 +61,6 @@ if(isset($_GET['method'])) $breadcrumb = "> ".$p->t('incoming/lehrveranstaltungen'); elseif($method == 'files') $breadcrumb = "> ".$p->t('incoming/dateien'); - } $zugangscode = $_SESSION['incoming/user']; @@ -107,7 +106,6 @@ else $stsem = new studiensemester(); $stsem->load($stsemAktOrNext); - $stg = new studiengang(); $stg->getAll(); @@ -135,12 +133,6 @@ $message = ''; - @@ -152,6 +144,7 @@ $message = ''; $.datepicker.setDefaults( $.datepicker.regional[ "" ] ); }); @@ -203,13 +199,13 @@ echo ' '; diff --git a/cis/testtool/admin/index.php b/cis/testtool/admin/index.php index f2678cfff..d433a747e 100644 --- a/cis/testtool/admin/index.php +++ b/cis/testtool/admin/index.php @@ -278,7 +278,7 @@ if (isset($_POST['deletePicture']) || isset($_POST['deleteAudio'])) { if (!$rechte->isBerechtigt('basis/testtool', null, 'suid')) die($rechte->errormsg); - + $frage = new frage(); if ($frage->load($_GET['frage_id'])) { @@ -651,11 +651,14 @@ foreach ($studiengang->result as $row) echo ''; //Liste der Gebiete - $qry = "SELECT * FROM testtool.tbl_ablauf WHERE studiengang_kz=".$stg_kz.""; + $qry = "SELECT * FROM testtool.tbl_ablauf WHERE studiengang_kz=".$db->db_add_param($stg_kz); $anzahl = $db->db_num_rows($db->db_query($qry)); if ($stg_kz !== "-1" && $anzahl !== 0) - $qry = "SELECT * FROM testtool.tbl_gebiet LEFT JOIN testtool.tbl_ablauf USING (gebiet_id) WHERE studiengang_kz=".$stg_kz." ORDER BY semester,reihung"; + { + $qry = "SELECT * FROM testtool.tbl_gebiet LEFT JOIN testtool.tbl_ablauf USING (gebiet_id) + WHERE studiengang_kz=".$db->db_add_param($stg_kz)." ORDER BY semester,reihung"; + } else $qry = "SELECT * FROM testtool.tbl_gebiet ORDER BY bezeichnung"; From c5a9e642bbb640df0e5e40ea9a313bbdddf69466 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 8 Mar 2018 15:35:02 +0100 Subject: [PATCH 04/20] sancho notification popup - size corrected --- cis/ampel.php | 277 +++++++++++++------------- cis/index.php | 11 +- cis/private/tools/ampelverwaltung.php | 7 +- 3 files changed, 151 insertions(+), 144 deletions(-) diff --git a/cis/ampel.php b/cis/ampel.php index d8429335f..e767d9a6f 100644 --- a/cis/ampel.php +++ b/cis/ampel.php @@ -1,136 +1,143 @@ - - - - -loadUserAmpel($user); - $rot=0; - $gelb = 0; - $gruen = 0; - $verpflichtend = false; - $cnt_verpflichtend = 0; - $cnt_abgelaufen = 0; - $cnt_notConf_notOverdue = 0; //counts mandatory, not confirmed && not overdued ampeln (for popup) - - $datum = new datum(); - $now = $datum->mktime_fromdate(date('Y-m-d')); - foreach($ampel->result as $row) - { - $deadline =$datum->mktime_fromdate($row->deadline); - $vorlaufzeit = $row->vorlaufzeit; - $verfallszeit = $row->verfallszeit; - $bestaetigt = $ampel->isBestaetigt($user, $row->ampel_id); - $verpflichtend = $row->verpflichtend; - $abgelaufen = false; - - $datum_liegt_vor_vorlaufzeit = false; - $datum_liegt_nach_verfallszeit = false; - - if (!is_null($vorlaufzeit)) - $datum_liegt_vor_vorlaufzeit = $now < strtotime('-' . $vorlaufzeit . ' day', $deadline); - - if (!is_null($verfallszeit)) - $datum_liegt_nach_verfallszeit = $now > strtotime('+' . $verfallszeit . ' day', $deadline); - - //count mandatory - if($verpflichtend == 't') - $cnt_verpflichtend++; - - //count overdue - if ($datum_liegt_nach_verfallszeit) - $cnt_abgelaufen++; - - //set status - if ($bestaetigt) - $gruen++; - else if ($now >= $deadline && !$datum_liegt_nach_verfallszeit && !$bestaetigt) - $rot++; - else if (!$datum_liegt_nach_verfallszeit && !$datum_liegt_vor_vorlaufzeit) - $gelb++; - - //count mandatory ampeln that are not confirmed and not overdue (for popup) - if ($verpflichtend == 't' && !$bestaetigt && !$datum_liegt_nach_verfallszeit && !$datum_liegt_vor_vorlaufzeit) - $cnt_notConf_notOverdue++; - } - - - // Wenn es eine verpflichtende Ampel gibt, das Pupup im CIS anzeigen - if ($cnt_notConf_notOverdue > 0) - { - echo ' '; - - echo ' '; - } - - //show & color header ampel-link - if($rot > 0) - echo ''.$p->t("tools/ampelsystem").'  |  '; - elseif($gelb > 0) - echo ''.$p->t("tools/ampelsystem").'  |  '; - elseif($rot==0 || $rot <= $cnt_abgelaufen && $gelb==0) - echo ''.$p->t("tools/ampelsystem").'  |  '; - } -else -{ - echo ""; -} + + + + +loadUserAmpel($user); + $rot=0; + $gelb = 0; + $gruen = 0; + $verpflichtend = false; + $cnt_verpflichtend = 0; + $cnt_abgelaufen = 0; + $cnt_notConf_notOverdue = 0; //counts mandatory, not confirmed && not overdued ampeln (for popup) + + $datum = new datum(); + $now = $datum->mktime_fromdate(date('Y-m-d')); + foreach($ampel->result as $row) + { + $deadline =$datum->mktime_fromdate($row->deadline); + $vorlaufzeit = $row->vorlaufzeit; + $verfallszeit = $row->verfallszeit; + $bestaetigt = $ampel->isBestaetigt($user, $row->ampel_id); + $verpflichtend = $row->verpflichtend; + $abgelaufen = false; + + $datum_liegt_vor_vorlaufzeit = false; + $datum_liegt_nach_verfallszeit = false; + + if (!is_null($vorlaufzeit)) + $datum_liegt_vor_vorlaufzeit = $now < strtotime('-' . $vorlaufzeit . ' day', $deadline); + + if (!is_null($verfallszeit)) + $datum_liegt_nach_verfallszeit = $now > strtotime('+' . $verfallszeit . ' day', $deadline); + + //count mandatory + if($verpflichtend == 't') + $cnt_verpflichtend++; + + //count overdue + if ($datum_liegt_nach_verfallszeit) + $cnt_abgelaufen++; + + //set status + if ($bestaetigt) + $gruen++; + else if ($now >= $deadline && !$datum_liegt_nach_verfallszeit && !$bestaetigt) + $rot++; + else if (!$datum_liegt_nach_verfallszeit && !$datum_liegt_vor_vorlaufzeit) + $gelb++; + + //count mandatory ampeln that are not confirmed and not overdue (for popup) + if ($verpflichtend == 't' && !$bestaetigt && !$datum_liegt_nach_verfallszeit && !$datum_liegt_vor_vorlaufzeit) + $cnt_notConf_notOverdue++; + } + + + //if at least ONE mandatory notification, which is not overdue -> trigger notification-POPUP + if ($cnt_notConf_notOverdue > 0) + { + echo ' '; + + echo ' '; + } + + //show & color header ampel-link + if($rot > 0) + echo ''.$p->t("tools/ampelsystem").'  |  '; + elseif($gelb > 0) + echo ''.$p->t("tools/ampelsystem").'  |  '; + elseif($rot==0 || $rot <= $cnt_abgelaufen && $gelb==0) + echo ''.$p->t("tools/ampelsystem").'  |  '; + } +else +{ + echo ""; +} ?> \ No newline at end of file diff --git a/cis/index.php b/cis/index.php index c5261d7ce..401f0d51f 100644 --- a/cis/index.php +++ b/cis/index.php @@ -164,12 +164,11 @@ $db = new basis_db(); - - - - - - + + + + + - - - - - + + + + + - + sortList: [[0,0],[1,0]], + widgets: ["zebra"] + }); + }); + function conf(val1) + { + return confirm("Incomingplätze der LV '"+val1+"' auf 0 setzen?"); + } + -isBerechtigt('inout/incoming', null, 'suid')) die($rechte->errormsg); @@ -106,22 +103,22 @@ if($method=="lehrveranstaltungen") if(isset($_GET['mode']) && $_GET['mode'] == "setZero") { - $id= $_GET['id']; + $id= $_GET['id']; $lehrveranstaltung = new lehrveranstaltung(); $lehrveranstaltung->load($id); - + $lehrveranstaltung->incoming = 0; - + if($lehrveranstaltung->save()) - $message = $p->t('global/erfolgreichgespeichert'); + $message = $p->t('global/erfolgreichgespeichert'); else - $message = $p->t('global/fehleraufgetreten'); + $message = $p->t('global/fehleraufgetreten'); } - + // Übersicht aller LVs echo '

Lehrveranstaltungs-Verwaltung

'; echo ' - + @@ -146,7 +143,6 @@ if($method=="lehrveranstaltungen") $SSemesterSelected='selected'; echo ''; - echo ''; echo'
'; @@ -164,7 +160,6 @@ if($method=="lehrveranstaltungen") $EnglishSelected='selected'; echo ''; - echo ''; echo'
'; @@ -184,14 +179,14 @@ if($method=="lehrveranstaltungen") if ($row->typ == 'b' || $row->typ == 'm' || $row->studiengang_kz == '10006') { $selected = ''; - + if ($typ != $row->typ || $typ=='') { if ($typ!='') echo ''; echo ''; } - + if(isset($_GET['studiengang']) && $_GET['studiengang'] == $row->studiengang_kz) $selected='selected'; @@ -209,18 +204,18 @@ if($method=="lehrveranstaltungen")
'; - + // Filter für Semester setzen $filterqry = ''; - + if(isset($_GET['filter'])) if($_GET['filter'] == "WSemester") $filterqry= " AND tbl_lehrveranstaltung.semester IN (1,3,5)"; elseif($_GET['filter'] == "SSemester") $filterqry= " AND tbl_lehrveranstaltung.semester IN (2,4,6)"; - + if(isset($_GET['unterrichtssprache']) && $_GET['unterrichtssprache']!='') - $filterqry .= " AND tbl_lehrveranstaltung.sprache='".$_GET['unterrichtssprache']."'"; + $filterqry .= " AND tbl_lehrveranstaltung.sprache=".$db->db_add_param($_GET['unterrichtssprache']); //Uebersicht LVs /* Erklaerung der Datumszeitraeume ab Zeile 857: @@ -235,15 +230,15 @@ if($method=="lehrveranstaltungen") * -------------------| Von ist NULL und bis innerhalb SS * |--------------------------- Bis ist NULL und von innerhalb SS */ - + $studiensemester_array = array(); $studiensemester = new studiensemester(); $studiensemester_array[] = $studiensemester->getakt(); - + $studiensemester->getFutureStudiensemester('',2); foreach ($studiensemester->studiensemester AS $row) $studiensemester_array[] = $row->studiensemester_kurzbz; - + if(isset($_GET['go'])) { // QUERY liefert LVs aus den gültigen Studienordnungen UND jene mit Anmeldungen, auch wenn Incomingplätze 0 sind oder die LV in keinem gültigen Studienplan liegt @@ -258,19 +253,18 @@ if($method=="lehrveranstaltungen") person_id FROM campus.vw_student_lehrveranstaltung - JOIN public.tbl_benutzer using(uid) - JOIN public.tbl_student ON(uid=student_uid) - JOIN public.tbl_prestudentstatus USING(prestudent_id) + JOIN public.tbl_benutzer using(uid) + JOIN public.tbl_student ON(uid=student_uid) + JOIN public.tbl_prestudentstatus USING(prestudent_id) WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND lehreinheit_id in (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND - tbl_lehreinheit.studiensemester_kurzbz='$stsem->studiensemester_kurzbz') - AND - tbl_prestudentstatus.status_kurzbz='Incoming' - AND tbl_prestudentstatus.studiensemester_kurzbz='$stsem->studiensemester_kurzbz' + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem->studiensemester_kurzbz).") + AND tbl_prestudentstatus.status_kurzbz='Incoming' + AND tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($stsem->studiensemester_kurzbz)." UNION SELECT person_id @@ -280,45 +274,45 @@ if($method=="lehrveranstaltungen") WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND ( - (bis - '$stsem->start' > '$stsem->start' - von) OR - ('$stsem->start' <= von AND bis >= '$stsem->ende' AND '$stsem->ende' - von > bis - '$stsem->ende') OR - (bis <= '$stsem->ende' AND bis >= '$stsem->start' AND von < '$stsem->start') OR - ('$stsem->start' <= von AND von < '$stsem->ende' AND bis > '$stsem->ende') OR - (von >= '$stsem->start' AND bis <= '$stsem->ende') OR - (von <= '$stsem->start' AND bis >= '$stsem->ende') OR + (bis - ".$db->db_add_param($stsem->start)." > ".$db->db_add_param($stsem->start)." - von) OR + (".$db->db_add_param($stsem->start)." <= von AND bis >= ".$db->db_add_param($stsem->ende)." AND ".$db->db_add_param($stsem->ende)." - von > bis - ".$db->db_add_param($stsem->ende).") OR + (bis <= ".$db->db_add_param($stsem->ende)." AND bis >= ".$db->db_add_param($stsem->start)." AND von < ".$db->db_add_param($stsem->start).") OR + (".$db->db_add_param($stsem->start)." <= von AND von < ".$db->db_add_param($stsem->ende)." AND bis > ".$db->db_add_param($stsem->ende).") OR + (von >= ".$db->db_add_param($stsem->start)." AND bis <= ".$db->db_add_param($stsem->ende).") OR + (von <= ".$db->db_add_param($stsem->start)." AND bis >= ".$db->db_add_param($stsem->ende).") OR (von IS NULL AND bis IS NULL) OR - (von IS NULL AND bis <= '$stsem->ende' AND bis > '$stsem->start') OR - (bis IS NULL AND von < '$stsem->ende' AND von >= '$stsem->start') + (von IS NULL AND bis <= ".$db->db_add_param($stsem->ende)." AND bis > ".$db->db_add_param($stsem->start).") OR + (bis IS NULL AND von < ".$db->db_add_param($stsem->ende)." AND von >= ".$db->db_add_param($stsem->start).") ) AND aktiv = true - )a ) as anzahl + )a ) as anzahl FROM lehre.tbl_lehrveranstaltung - JOIN - public.tbl_studiengang USING(studiengang_kz) + JOIN + public.tbl_studiengang USING(studiengang_kz) WHERE - tbl_lehrveranstaltung.incoming>0 AND - tbl_lehrveranstaltung.aktiv AND - tbl_lehrveranstaltung.lehre AND - tbl_lehrveranstaltung.lehrveranstaltung_id IN + tbl_lehrveranstaltung.incoming>0 AND + tbl_lehrveranstaltung.aktiv AND + tbl_lehrveranstaltung.lehre AND + tbl_lehrveranstaltung.lehrveranstaltung_id IN ( - SELECT lehrveranstaltung_id FROM lehre.tbl_studienplan_lehrveranstaltung - JOIN lehre.tbl_studienplan USING (studienplan_id) - JOIN lehre.tbl_studienordnung USING (studienordnung_id) + SELECT lehrveranstaltung_id FROM lehre.tbl_studienplan_lehrveranstaltung + JOIN lehre.tbl_studienplan USING (studienplan_id) + JOIN lehre.tbl_studienordnung USING (studienordnung_id) JOIN lehre.tbl_studienplan_semester USING (studienplan_id) - WHERE tbl_studienordnung.status_kurzbz='approved' + WHERE tbl_studienordnung.status_kurzbz='approved' AND tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id - AND tbl_studienplan_semester.studiensemester_kurzbz IN ('".implode("','", $studiensemester_array)."') + AND tbl_studienplan_semester.studiensemester_kurzbz IN (".$db->db_implode4SQL($studiensemester_array).") AND tbl_studienplan_semester.semester=tbl_lehrveranstaltung.semester - ) + ) AND ((tbl_lehrveranstaltung.studiengang_kz>0 AND tbl_lehrveranstaltung.studiengang_kz<10000) OR tbl_lehrveranstaltung.studiengang_kz=10006)"; - + if (isset($_GET['studiengang']) && $_GET['studiengang'] !='') - $qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$_GET['studiengang']; - + $qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($_GET['studiengang'], FHC_INTEGER); + $qry .= " AND tbl_studiengang.aktiv ".$filterqry; - - $qry .= " + + $qry .= " UNION SELECT @@ -341,10 +335,10 @@ if($method=="lehrveranstaltungen") lehreinheit_id in (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND - tbl_lehreinheit.studiensemester_kurzbz='$stsem->studiensemester_kurzbz') + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem->studiensemester_kurzbz).") AND tbl_prestudentstatus.status_kurzbz='Incoming' - AND tbl_prestudentstatus.studiensemester_kurzbz='$stsem->studiensemester_kurzbz' + AND tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($stsem->studiensemester_kurzbz)." UNION SELECT person_id @@ -354,40 +348,40 @@ if($method=="lehrveranstaltungen") WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND ( - (bis - '$stsem->start' > '$stsem->start' - von) OR - ('$stsem->start' <= von AND bis >= '$stsem->ende' AND '$stsem->ende' - von > bis - '$stsem->ende') OR - (bis <= '$stsem->ende' AND bis >= '$stsem->start' AND von < '$stsem->start') OR - ('$stsem->start' <= von AND von < '$stsem->ende' AND bis > '$stsem->ende') OR - (von >= '$stsem->start' AND bis <= '$stsem->ende') OR - (von <= '$stsem->start' AND bis >= '$stsem->ende') OR + (bis - ".$db->db_add_param($stsem->start)." > ".$db->db_add_param($stsem->start)." - von) OR + (".$db->db_add_param($stsem->start)." <= von AND bis >= ".$db->db_add_param($stsem->ende)." AND ".$db->db_add_param($stsem->ende)." - von > bis - ".$db->db_add_param($stsem->ende).") OR + (bis <= ".$db->db_add_param($stsem->ende)." AND bis >= ".$db->db_add_param($stsem->start)." AND von < ".$db->db_add_param($stsem->start).") OR + (".$db->db_add_param($stsem->start)." <= von AND von < ".$db->db_add_param($stsem->ende)." AND bis > ".$db->db_add_param($stsem->ende).") OR + (von >= ".$db->db_add_param($stsem->start)." AND bis <= ".$db->db_add_param($stsem->ende).") OR + (von <= ".$db->db_add_param($stsem->start)." AND bis >= ".$db->db_add_param($stsem->ende).") OR (von IS NULL AND bis IS NULL) OR - (von IS NULL AND bis <= '$stsem->ende' AND bis > '$stsem->start') OR - (bis IS NULL AND von < '$stsem->ende' AND von >= '$stsem->start') + (von IS NULL AND bis <= ".$db->db_add_param($stsem->ende)." AND bis > ".$db->db_add_param($stsem->start).") OR + (bis IS NULL AND von < ".$db->db_add_param($stsem->ende)." AND von >= ".$db->db_add_param($stsem->start).") ) AND aktiv = true - )a ) as anzahl + )a ) as anzahl FROM public.tbl_preincoming_lehrveranstaltung JOIN public.tbl_preincoming using(preincoming_id) JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id) JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE + WHERE ( - (bis - '$stsem->start' > '$stsem->start' - von) OR - ('$stsem->start' <= von AND bis >= '$stsem->ende' AND '$stsem->ende' - von > bis - '$stsem->ende') OR - (bis <= '$stsem->ende' AND bis >= '$stsem->start' AND von < '$stsem->start') OR - ('$stsem->start' <= von AND von < '$stsem->ende' AND bis > '$stsem->ende') OR - (von >= '$stsem->start' AND bis <= '$stsem->ende') OR - (von <= '$stsem->start' AND bis >= '$stsem->ende') OR + (bis - ".$db->db_add_param($stsem->start)." > ".$db->db_add_param($stsem->start)." - von) OR + (".$db->db_add_param($stsem->start)." <= von AND bis >= ".$db->db_add_param($stsem->ende)." AND ".$db->db_add_param($stsem->ende)." - von > bis - ".$db->db_add_param($stsem->ende).") OR + (bis <= ".$db->db_add_param($stsem->ende)." AND bis >= ".$db->db_add_param($stsem->start)." AND von < ".$db->db_add_param($stsem->start).") OR + (".$db->db_add_param($stsem->start)." <= von AND von < ".$db->db_add_param($stsem->ende)." AND bis > ".$db->db_add_param($stsem->ende).") OR + (von >= ".$db->db_add_param($stsem->start)." AND bis <= ".$db->db_add_param($stsem->ende).") OR + (von <= ".$db->db_add_param($stsem->start)." AND bis >= ".$db->db_add_param($stsem->ende).") OR (von IS NULL AND bis IS NULL) OR - (von IS NULL AND bis <= '$stsem->ende' AND bis > '$stsem->start') OR - (bis IS NULL AND von < '$stsem->ende' AND von >= '$stsem->start') + (von IS NULL AND bis <= ".$db->db_add_param($stsem->ende)." AND bis > ".$db->db_add_param($stsem->start).") OR + (bis IS NULL AND von < ".$db->db_add_param($stsem->ende)." AND von >= ".$db->db_add_param($stsem->start).") ) AND tbl_preincoming.aktiv = true "; - + if (isset($_GET['studiengang']) && $_GET['studiengang'] !='') - $qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$_GET['studiengang']; + $qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($_GET['studiengang'], FHC_INTEGER); $qry .= " AND tbl_studiengang.aktiv ".$filterqry." order by studiengang_kz"; @@ -420,7 +414,7 @@ if($method=="lehrveranstaltungen") { $freieplaetze = $row->incoming - $row->anzahl; $style = ''; - + $studiengang = new studiengang(); $studiengang->load($row->studiengang_kz); $studiengang_language = ($sprache == 'German') ? $studiengang->bezeichnung : $studiengang->english; @@ -432,10 +426,10 @@ if($method=="lehrveranstaltungen") else $typ = '-'; echo ''; - + if ($freieplaetze<=0) $style = 'style="background-color: #FF8888"'; - + echo '',$row->lehrveranstaltung_id,''; echo '',$studiengang_language,''; echo '',$typ,''; @@ -471,7 +465,7 @@ elseif($method=="anmeldungen") echo '

Übersicht Anmeldungen

'; // Filter für Semester setzen - + //Uebersicht LVs /* Erklaerung der Datumszeitraeume @@ -503,10 +497,10 @@ elseif($method=="anmeldungen") lehreinheit_id in (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id=".$id." AND - tbl_lehreinheit.studiensemester_kurzbz='$stsem->studiensemester_kurzbz') + tbl_lehreinheit.studiensemester_kurzbz=".$db->db_add_param($stsem->studiensemester_kurzbz).") AND tbl_prestudentstatus.status_kurzbz='Incoming' - AND tbl_prestudentstatus.studiensemester_kurzbz='$stsem->studiensemester_kurzbz' + AND tbl_prestudentstatus.studiensemester_kurzbz=".$db->db_add_param($stsem->studiensemester_kurzbz)." UNION SELECT nachname, vorname @@ -517,19 +511,19 @@ elseif($method=="anmeldungen") WHERE lehrveranstaltung_id=".$id." AND ( - (bis - '$stsem->start' > '$stsem->start' - von) OR - ('$stsem->start' <= von AND bis >= '$stsem->ende' AND '$stsem->ende' - von > bis - '$stsem->ende') OR - (bis <= '$stsem->ende' AND bis >= '$stsem->start' AND von < '$stsem->start') OR - ('$stsem->start' <= von AND von < '$stsem->ende' AND bis > '$stsem->ende') OR - (von >= '$stsem->start' AND bis <= '$stsem->ende') OR - (von <= '$stsem->start' AND bis >= '$stsem->ende') OR + (bis - ".$db->db_add_param($stsem->start)." > ".$db->db_add_param($stsem->start)." - von) OR + (".$db->db_add_param($stsem->start)." <= von AND bis >= ".$db->db_add_param($stsem->ende)." AND ".$db->db_add_param($stsem->ende)." - von > bis - ".$db->db_add_param($stsem->ende).") OR + (bis <= ".$db->db_add_param($stsem->ende)." AND bis >= ".$db->db_add_param($stsem->start)." AND von < ".$db->db_add_param($stsem->start).") OR + (".$db->db_add_param($stsem->start)." <= von AND von < ".$db->db_add_param($stsem->ende)." AND bis > ".$db->db_add_param($stsem->ende).") OR + (von >= ".$db->db_add_param($stsem->start)." AND bis <= ".$db->db_add_param($stsem->ende).") OR + (von <= ".$db->db_add_param($stsem->start)." AND bis >= ".$db->db_add_param($stsem->ende).") OR (von IS NULL AND bis IS NULL) OR - (von IS NULL AND bis <= '$stsem->ende' AND bis > '$stsem->start') OR - (bis IS NULL AND von < '$stsem->ende' AND von >= '$stsem->start') + (von IS NULL AND bis <= ".$db->db_add_param($stsem->ende)." AND bis > ".$db->db_add_param($stsem->start).") OR + (bis IS NULL AND von < ".$db->db_add_param($stsem->ende)." AND von >= ".$db->db_add_param($stsem->start).") ) AND tbl_preincoming.aktiv = true"; - - + + if($result = $db->db_query($qry)) { if ($db->db_num_rows($result)>0) @@ -544,12 +538,12 @@ elseif($method=="anmeldungen") '; while($row = $db->db_fetch_object($result)) { - + echo ''; echo '',$row->nachname,''; echo '',$row->vorname,''; echo ''; - + } echo ''; } @@ -562,4 +556,4 @@ elseif($method=="anmeldungen") } ?> - \ No newline at end of file + From e038d1d2c5d0555908d32af8bde59970f1a016c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 9 Mar 2018 10:07:55 +0100 Subject: [PATCH 07/20] =?UTF-8?q?PHP=20Error=20behoben=20wenn=20das=20Lade?= =?UTF-8?q?n=20von=20FreeBusy=20Eintr=C3=A4gen=20nicht=20funktioniert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/coodle/coodle_events.php | 130 +++++++++++++-------------- 1 file changed, 65 insertions(+), 65 deletions(-) diff --git a/cis/private/coodle/coodle_events.php b/cis/private/coodle/coodle_events.php index 42b34505b..5754f7a68 100644 --- a/cis/private/coodle/coodle_events.php +++ b/cis/private/coodle/coodle_events.php @@ -25,10 +25,10 @@ require_once('../../../include/wochenplan.class.php'); if(isset($_POST['id'])) $id = $_POST['id']; - + if(isset($_POST['typ'])) $typ = $_POST['typ']; - + if(isset($_POST['start'])) $start = $_POST['start']; if(isset($_POST['end'])) @@ -57,77 +57,77 @@ $events=array(); switch($typ) { case 'Ort': - // LVPlan/Reservierungen des Raumes holen - - $stdplan = new wochenplan('ort'); - $stdplan->load_data('ort',null,$id); + // LVPlan/Reservierungen des Raumes holen - while($start<$end) + $stdplan = new wochenplan('ort'); + $stdplan->load_data('ort',null,$id); + + while($start<$end) + { + if(!date("w",$start)) + $start=jump_day($start,1); + + $stdplan->init_stdplan(); + $datum=$start; + $start+=604800; // eine Woche + + // Stundenplan einer Woche laden + if(!$stdplan->load_week($datum,'stundenplan')) { - if(!date("w",$start)) - $start=jump_day($start,1); - - $stdplan->init_stdplan(); - $datum=$start; - $start+=604800; // eine Woche - - // Stundenplan einer Woche laden - if(!$stdplan->load_week($datum,'stundenplan')) - { - die($stdplan->errormsg); - } - - $result = $stdplan->draw_week_csv('return', LVPLAN_KATEGORIE); - foreach($result as $row) - { - $item['id']=$id.$row['dtstart'].$row['dtend']; - $item['title']=$id; - $item['start']=fixDate($row['dtstart']); - $item['end']=fixDate($row['dtend']); - $item['allDay']=false; - $item['editable']=false; - $events[]=$item; - } + die($stdplan->errormsg); } - break; - + + $result = $stdplan->draw_week_csv('return', LVPLAN_KATEGORIE); + foreach($result as $row) + { + $item['id']=$id.$row['dtstart'].$row['dtend']; + $item['title']=$id; + $item['start']=fixDate($row['dtstart']); + $item['end']=fixDate($row['dtend']); + $item['allDay']=false; + $item['editable']=false; + $events[]=$item; + } + } + break; + case 'Person': - - //FreeBusy Information holen - $fp = fopen(APP_ROOT.'cis/public/freebusy.php/'.$id,'r'); - if (!$fp) + //FreeBusy Information holen + $fp = fopen(APP_ROOT.'cis/public/freebusy.php/'.$id,'r'); + if (!$fp) + { + //Load Failed + break; + } + else + { + $doc = ''; + while (!feof($fp)) { - echo "$errstr ($errno)
\n"; + $line = fgets($fp); + $doc.=$line; } - else - { - $doc = ''; - while (!feof($fp)) - { - $line = fgets($fp); - $doc.=$line; - } - fclose($fp); - - //FreeBusy Parsen - $ical = new ical(); - $ical->parseFreeBusy($doc); + fclose($fp); - foreach($ical->dtresult as $row) - { - $item['id']=$id.$row['dtstart'].$row['dtend']; - $item['title']=$id; - $item['start']=fixDate($row['dtstart']); - $item['end']=fixDate($row['dtend']); - $item['allDay']=false; - $item['editable']=false; - $events[]=$item; - } + //FreeBusy Parsen + $ical = new ical(); + $ical->parseFreeBusy($doc); + + foreach($ical->dtresult as $row) + { + $item['id']=$id.$row['dtstart'].$row['dtend']; + $item['title']=$id; + $item['start']=fixDate($row['dtstart']); + $item['end']=fixDate($row['dtend']); + $item['allDay']=false; + $item['editable']=false; + $events[]=$item; } - - break; - default: - break; + } + + break; + default: + break; } echo json_encode($events); From 2724d54cd653457b78eb01067e8fdfee3c6d6ff5 Mon Sep 17 00:00:00 2001 From: Manfred Kindl Date: Fri, 9 Mar 2018 12:15:50 +0100 Subject: [PATCH 08/20] Vorlagen are now order Descending by Version --- application/controllers/system/Messages.php | 1 + 1 file changed, 1 insertion(+) diff --git a/application/controllers/system/Messages.php b/application/controllers/system/Messages.php index 36db0238d..dd112d204 100644 --- a/application/controllers/system/Messages.php +++ b/application/controllers/system/Messages.php @@ -314,6 +314,7 @@ class Messages extends VileSci_Controller if (isset($vorlage_kurzbz)) { $this->load->model('system/Vorlagestudiengang_model', 'VorlagestudiengangModel'); + $this->VorlagestudiengangModel->addOrder('version','DESC'); $result = $this->VorlagestudiengangModel->loadWhere(array('vorlage_kurzbz' => $vorlage_kurzbz)); $this->output From dd610c83d98da7c695a3bc9831878e19327b18ae Mon Sep 17 00:00:00 2001 From: Paolo Date: Fri, 9 Mar 2018 15:14:16 +0100 Subject: [PATCH 09/20] - Added navigation.php in application/config to configure menus used by NavigationWidget - Addded controller system/Navigation to retrive menus via ajax - Renamed method _setNavigationMenuArray to setNavigationMenuArray and set as public in system/infocenter/InfoCenter - Now the InfoCenter menu is stored in the session - The menu is generated by the widget NavigationWidget via JS - No need anymore to give as parameters to the views the menu arrays --- application/config/navigation.php | 75 +++++++++ application/controllers/system/Navigation.php | 98 +++++++++++ .../system/infocenter/InfoCenter.php | 53 +++--- application/views/home.php | 28 +--- .../views/system/infocenter/infocenter.php | 12 +- .../system/infocenter/infocenterDetails.php | 12 +- application/views/widgets/filter/filter.php | 29 +++- .../views/widgets/filter/saveFilter.php | 6 +- application/views/widgets/navigation.php | 4 +- .../views/widgets/navigationHeader.php | 44 ++++- application/views/widgets/navigationMenu.php | 157 ++++++++++++++---- .../widgets/NavigationHeaderWidget.php | 4 +- application/widgets/NavigationMenuWidget.php | 76 --------- application/widgets/NavigationWidget.php | 5 +- 14 files changed, 405 insertions(+), 198 deletions(-) create mode 100644 application/config/navigation.php create mode 100644 application/controllers/system/Navigation.php diff --git a/application/config/navigation.php b/application/config/navigation.php new file mode 100644 index 000000000..6e1c711ed --- /dev/null +++ b/application/config/navigation.php @@ -0,0 +1,75 @@ + array( + 'FH-Complete' => base_url('index.ci.php/'), + 'Vilesci' => base_url('/vilesci'), + 'CIS' => CIS_ROOT + ), + 'system/infocenter/InfoCenter/index' => array( + 'FH-Complete' => base_url('index.ci.php/'), + 'Vilesci' => base_url('/vilesci'), + 'CIS' => CIS_ROOT + ), + 'system/infocenter/InfoCenter/showDetails' => array( + 'FH-Complete' => base_url('index.ci.php/'), + 'Vilesci' => base_url('/vilesci'), + 'CIS' => CIS_ROOT + ) +); + +$config['navigation_menu'] = array(); + +$config['navigation_menu']['Vilesci/index'] = array( + 'Dashboard' => array( + 'link' => '#', + 'description' => 'Dashboard', + 'icon' => 'dashboard' + ), + 'Lehre' => array( + 'link' => '#', + 'icon' => 'graduation-cap', + 'description' => 'Lehre', + 'expand' => true, + 'children'=> array( + 'CIS' => array( + 'link' => CIS_ROOT, + 'icon' => '', + 'description' => 'CIS', + 'expand' => true + ), + 'Infocenter' => array( + 'link' => base_url('index.ci.php/system/infocenter/InfoCenter'), + 'icon' => 'info', + 'description' => 'Infocenter', + 'expand' => true + ), + ) + ), + 'Administration' => array( + 'link' => '#', + 'icon' => 'gear', + 'description' => 'Administration', + 'expand' => false, + 'children'=> array( + 'Vilesci' => array( + 'link' => base_url('vilesci/'), + 'icon' => '', + 'description' => 'Vilesci', + 'expand' => true + ), + 'Extensions' => array( + 'link' => base_url('index.ci.php/system/extensions/Manager'), + 'icon' => 'cubes', + 'description' => 'Extensions Manager', + 'expand' => true + ), + 'Datenschutz' => array( + 'link' => base_url('index.ci.php/extensions/FHC-Core-DSMS/export'), + 'description' => 'Datenschutz', + 'icon' => 'legal', + 'expand' => true + ) + ) + ) +); diff --git a/application/controllers/system/Navigation.php b/application/controllers/system/Navigation.php new file mode 100644 index 000000000..037a7d0f4 --- /dev/null +++ b/application/controllers/system/Navigation.php @@ -0,0 +1,98 @@ +config->load('navigation'); + + // Load session library + $this->load->library('session'); + } + + /** + * + */ + public function menu() + { + $navigation_widget_called = $this->input->get('navigation_widget_called'); + $json = array(); + + if (isset($navigation_widget_called)) + { + $navigationMenuArray = $this->config->item('navigation_menu'); + + if (isset($navigationMenuArray) && is_array($navigationMenuArray)) + { + if (isset($navigationMenuArray[$navigation_widget_called])) + { + $json = $navigationMenuArray[$navigation_widget_called]; + } + } + + if (isset($_SESSION['navigation_menu'])) + { + $navigationMenuSessionArray = $_SESSION['navigation_menu']; + + if (isset($navigationMenuSessionArray) && is_array($navigationMenuSessionArray)) + { + if (isset($navigationMenuSessionArray[$navigation_widget_called])) + { + $json = array_merge($json, $navigationMenuSessionArray[$navigation_widget_called]); + } + } + } + } + + $this->output->set_content_type('application/json')->set_output(json_encode($json)); + } + + /** + * + */ + public function header() + { + $navigation_widget_called = $this->input->get('navigation_widget_called'); + $json = array(); + + if (isset($navigation_widget_called)) + { + $navigationHeaderArray = $this->config->item('navigation_header'); + + if (isset($navigationHeaderArray) && is_array($navigationHeaderArray)) + { + if (isset($navigationHeaderArray[$navigation_widget_called])) + { + $json = $navigationHeaderArray[$navigation_widget_called]; + } + } + + if (isset($_SESSION['navigation_header'])) + { + $navigationHeaderSessionArray = $_SESSION['navigation_header']; + + if (isset($navigationHeaderSessionArray) && is_array($navigationHeaderSessionArray)) + { + if (isset($navigationHeaderSessionArray[$navigation_widget_called])) + { + $json = array_merge($json, $navigationHeaderSessionArray[$navigation_widget_called]); + } + } + } + } + + $this->output->set_content_type('application/json')->set_output(json_encode($json)); + } +} diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index 216aa0619..24c90c908 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -45,8 +45,6 @@ class InfoCenter extends VileSci_Controller ) ); private $uid; // contains the UID of the logged user - private $navigationMenuArray; // contains all the voices for the navigation menu - private $navigationHeaderArray; /** * Constructor @@ -77,12 +75,7 @@ class InfoCenter extends VileSci_Controller if(!$this->permissionlib->isBerechtigt('basis/person')) show_error('You have no Permission! You need Infocenter Role'); - $this->_setNavigationMenuArray(); // sets property navigationMenuArray - - $this->navigationHeaderArray = array( - 'headertext' => 'Infocenter', - 'headertextlink' => base_url('index.ci.php/system/infocenter/InfoCenter') - ); + $this->setNavigationMenuArray(); // sets property navigationMenuArray } // ----------------------------------------------------------------------------------------------------------------- @@ -93,13 +86,7 @@ class InfoCenter extends VileSci_Controller */ public function index() { - $this->load->view( - 'system/infocenter/infocenter.php', - array( - 'navigationHeaderArray' => $this->navigationHeaderArray, - 'navigationMenuArray' => $this->navigationMenuArray - ) - ); + $this->load->view('system/infocenter/infocenter.php'); } /** @@ -131,11 +118,7 @@ class InfoCenter extends VileSci_Controller 'system/infocenter/infocenterDetails.php', array_merge( $persondata, - $prestudentdata, - array( - 'navigationHeaderArray' => $this->navigationHeaderArray, - 'navigationMenuArray' => $this->navigationMenuArray - ) + $prestudentdata ) ); } @@ -464,7 +447,7 @@ class InfoCenter extends VileSci_Controller /** * */ - private function _setNavigationMenuArray() + public function setNavigationMenuArray() { $listFiltersSent = array(); $listFiltersNotSent = array(); @@ -532,12 +515,22 @@ class InfoCenter extends VileSci_Controller $this->_fillCustomFilters($listCustomFilters, $filtersarray['personal']); } - $this->navigationMenuArray = array( - 'dashboard' => array( + if (!isset($_SESSION['navigation_menu'])) + { + $_SESSION['navigation_menu'] = array(); + } + + $_SESSION['navigation_menu']['system/infocenter/InfoCenter/index'] = array( + 'filters' => array( 'link' => '#', - 'description' => 'Dashboard', - 'icon' => 'dashboard' - ), + 'description' => 'Filter', + 'icon' => 'filter', + 'expand' => true, + 'children' => $filtersarray + ) + ); + + $_SESSION['navigation_menu']['system/infocenter/InfoCenter/showDetails'] = array( 'filters' => array( 'link' => '#', 'description' => 'Filter', @@ -565,11 +558,17 @@ class InfoCenter extends VileSci_Controller foreach ($filters as $filterId => $description) { $toPrint = "%s=%s"; + + if ($this->router->method != 'index') + { + + } + $tofill['children'][] = array( 'link' => sprintf($toPrint, base_url('index.ci.php/system/infocenter/InfoCenter?filter_id'), $filterId), 'description' => $description, 'subscriptDescription' => 'Remove', - 'subscriptLinkId' => 'removeFilterById', + 'subscriptLinkClass' => 'remove-filter', 'subscriptLinkValue' => $filterId ); } diff --git a/application/views/home.php b/application/views/home.php index 5e7deddb0..cd032bc71 100644 --- a/application/views/home.php +++ b/application/views/home.php @@ -11,35 +11,9 @@ $this->load->view('templates/FHC-Header', ?>
- 'FH-Complete', 'headertextlink' => base_url('index.ci.php/')); - $navigationMenuArray = array( - 'Dashboard' => array('link' => '#', 'description' => 'Dashboard', 'icon' => 'dashboard'), - 'Lehre' => array('link' => '#', 'icon' => 'graduation-cap', 'description' => 'Lehre', 'expand' => true, - 'children'=> array( - 'CIS' => array('link' => CIS_ROOT, 'icon' => '', 'description' => 'CIS', 'expand' => true), - 'Infocenter' => array('link' => base_url('index.ci.php/system/infocenter/InfoCenter'), 'icon' => 'info', 'description' => 'Infocenter', 'expand' => true), - ) - ), - 'Administration' => array('link' => '#', 'icon' => 'gear', 'description' => 'Administration', 'expand' => false, - 'children'=> array( - 'Vilesci' => array('link' => base_url('vilesci/'), 'icon' => '', 'description' => 'Vilesci', 'expand' => true), - 'Extensions' => array('link' => base_url('index.ci.php/system/extensions/Manager'), 'icon' => 'cubes', 'description' => 'Extensions Manager', 'expand' => true), - 'Datenschutz' => array('link' => base_url('index.ci.php/extensions/FHC-Core-DSMS/export'), 'description' => 'Datenschutz', 'icon' => 'legal','expand' => true) - ) - ), - ); + widgetlib->widget('NavigationWidget'); ?> - echo $this->widgetlib->widget( - 'NavigationWidget', - array( - 'navigationHeader' => $navigationHeaderArray, - 'navigationMenu' => $navigationMenuArray - ) - ); - - ?>
diff --git a/application/views/system/infocenter/infocenter.php b/application/views/system/infocenter/infocenter.php index 3ceaf1fa1..5963f77ca 100644 --- a/application/views/system/infocenter/infocenter.php +++ b/application/views/system/infocenter/infocenter.php @@ -17,15 +17,9 @@
- widgetlib->widget( - 'NavigationWidget', - array( - 'navigationHeader' => $navigationHeaderArray, - 'navigationMenu' => $navigationMenuArray - ) - ); - ?> + + widgetlib->widget('NavigationWidget'); ?> +
diff --git a/application/views/system/infocenter/infocenterDetails.php b/application/views/system/infocenter/infocenterDetails.php index 6ebf5494b..147f5d981 100755 --- a/application/views/system/infocenter/infocenterDetails.php +++ b/application/views/system/infocenter/infocenterDetails.php @@ -26,15 +26,9 @@ ?>
- widgetlib->widget( - 'NavigationWidget', - array( - 'navigationHeader' => $navigationHeaderArray, - 'navigationMenu' => $navigationMenuArray - ) - ); - ?> + + widgetlib->widget('NavigationWidget'); ?> +
diff --git a/application/views/widgets/filter/filter.php b/application/views/widgets/filter/filter.php index 15b9b4b26..606d19b60 100644 --- a/application/views/widgets/filter/filter.php +++ b/application/views/widgets/filter/filter.php @@ -94,9 +94,26 @@ + diff --git a/application/views/widgets/navigationMenu.php b/application/views/widgets/navigationMenu.php index 46905204f..f231bc67e 100644 --- a/application/views/widgets/navigationMenu.php +++ b/application/views/widgets/navigationMenu.php @@ -1,14 +1,3 @@ - - + + diff --git a/application/widgets/NavigationHeaderWidget.php b/application/widgets/NavigationHeaderWidget.php index 95daf33e1..9a1b48d5a 100644 --- a/application/widgets/NavigationHeaderWidget.php +++ b/application/widgets/NavigationHeaderWidget.php @@ -8,8 +8,8 @@ class NavigationHeaderWidget extends Widget /** * */ - public function display($data) + public function display($widgetData) { - $this->view('widgets/navigationHeader', $data); + $this->view('widgets/navigationHeader'); } } diff --git a/application/widgets/NavigationMenuWidget.php b/application/widgets/NavigationMenuWidget.php index b23054706..cabdeeb3f 100644 --- a/application/widgets/NavigationMenuWidget.php +++ b/application/widgets/NavigationMenuWidget.php @@ -5,87 +5,11 @@ */ class NavigationMenuWidget extends Widget { - private $navigationMenu; - - private static $navigationMenuWidgetInstance; - /** * */ public function display($widgetData) { - $this->navigationMenu = $widgetData; - - self::$navigationMenuWidgetInstance = $this; - $this->view('widgets/navigationMenu'); } - - /** - * - */ - public static function printNavigationMenu() - { - foreach (self::$navigationMenuWidgetInstance->navigationMenu as $item) - { - self::printNavItem($item); - } - } - - /** - * - */ - public static function printNavItem($item, $depth = 1) - { - $expanded = isset($item['expand']) && $item['expand'] === true ? ' active' : ''; - - echo '
  • '; - - if (isset($item['subscriptLinkId']) && isset($item['subscriptDescription'])) - { - echo ''; - } - - echo ''; - - if (isset($item['icon'])) - { - echo ' '; - } - - echo $item['description']; - - if (!empty($item['children'])) - { - echo ''; - } - - echo ''; - - if (isset($item['subscriptLinkId']) && isset($item['subscriptDescription'])) - { - echo ''.$item['subscriptDescription'].''; - } - - if (isset($item['subscriptLinkId']) && isset($item['subscriptDescription'])) - { - echo ''; - } - - if (!empty($item['children'])) - { - $level = ''; - if ($depth === 1) - $level = 'second'; - elseif ($depth > 1) - $level = 'third'; - - echo ''; - } - - echo '
  • '; - } } diff --git a/application/widgets/NavigationWidget.php b/application/widgets/NavigationWidget.php index 7835032ce..5ce5e95b5 100644 --- a/application/widgets/NavigationWidget.php +++ b/application/widgets/NavigationWidget.php @@ -5,14 +5,11 @@ */ class NavigationWidget extends Widget { - const NAVIGATION_HEADER = 'navigationHeader'; // - const NAVIGATION_MENU = 'navigationMenu'; // - /** * */ public function display($widgetData) { - $this->view('widgets/navigation', array('widgetData' => $widgetData)); + $this->view('widgets/navigation'); } } From 74a36682b803a3cbf8126476b7c6333423130ed3 Mon Sep 17 00:00:00 2001 From: oesi Date: Mon, 12 Mar 2018 14:51:26 +0100 Subject: [PATCH 10/20] =?UTF-8?q?Phrasen=20f=C3=BCr=20Notebookregistrierun?= =?UTF-8?q?g=20angepasst?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- locale/de-AT/notebookregister.php | 2 +- locale/en-US/notebookregister.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/locale/de-AT/notebookregister.php b/locale/de-AT/notebookregister.php index d77071bb2..f954987a4 100644 --- a/locale/de-AT/notebookregister.php +++ b/locale/de-AT/notebookregister.php @@ -1,6 +1,6 @@ phrasen['notebookregister/notebook_absatz1']='Sollten Sie mehr als ein Notebook registrieren lassen wollen, wenden Sie sich bitte an support@technikum-wien.at, da nur ein Eintrag pro Person möglich ist.

    Geben Sie die MAC-Adresse in folgendem Format an: 00-50-DA-C2-32-1C, oder 00:50:DA:C2:32:1C'; -$this->phrasen['notebookregister/notebook_absatz2']='Die Änderungen werden in ca. 30 Minuten wirksam. Bitte haben Sie etwas Geduld.

    Um das Internet nutzen zu können, lassen Sie bitte die Netzwerkverbindungseinstellungen vom DHCP-Server zuweisen.
    In Ihrem Browser tragen Sie bitte den Proxy-Server: proxy.technikum-wien.at und den Port 3128 ein.'; +$this->phrasen['notebookregister/notebook_absatz2']='Die Änderungen werden in ca. 30 Minuten wirksam. Bitte haben Sie etwas Geduld.

    Um das Internet nutzen zu können, lassen Sie bitte die Netzwerkverbindungseinstellungen vom DHCP-Server zuweisen.'; $this->phrasen['notebookregister/notebook_anmerkung']='muss nur angegeben werden, wenn UID nicht gleich dem angemeldetem Benutzer'; $this->phrasen['notebookregister/titelNotebookRegistration']='LAN Zugang'; $this->phrasen['notebookregister/passwortEingebenWennUIDgeaendert']='Es muss ein Passwort eingegeben werden, wenn die UID geändert wird'; diff --git a/locale/en-US/notebookregister.php b/locale/en-US/notebookregister.php index 94dd2708f..589b53a05 100644 --- a/locale/en-US/notebookregister.php +++ b/locale/en-US/notebookregister.php @@ -1,6 +1,6 @@ phrasen['notebookregister/notebook_absatz1']='It is only possible to register one notebook PC per person.
    If you want to register more than one, please contact support at support@technikum-wien.at.

    Enter the MAC address in the following format: 00-50-DA-C2-32-1C, or 00:50:DA:C2:32:1C'; -$this->phrasen['notebookregister/notebook_absatz2']='The changes will take effect in about 30 minutes. Please be patient.

    In order to access the Internet, please allow the DHCP server to assign the network connection settings.
    Please enter the following proxy server in your browser: proxy.technikum-wien.at and set the port to 3128.'; +$this->phrasen['notebookregister/notebook_absatz2']='The changes will take effect in about 30 minutes. Please be patient.

    In order to access the Internet, please allow the DHCP server to assign the network connection settings.'; $this->phrasen['notebookregister/notebook_anmerkung']='only has to be entered if the UID is not the same as that of the logged-in user'; $this->phrasen['notebookregister/titelNotebookRegistration']='LAN Access'; $this->phrasen['notebookregister/passwortEingebenWennUIDgeaendert']='A password must be entered when the UID is changed.'; From e8f6bfc4e67222f83f2b3b679aaa80d906d924cd Mon Sep 17 00:00:00 2001 From: Gerald Raab Date: Tue, 13 Mar 2018 13:47:47 +0100 Subject: [PATCH 11/20] Betreuungen in der Anzeige der zu erfassenden Stunden inkludiert --- include/zeitaufzeichnung.class.php | 93 +++++++++++++++++++----------- 1 file changed, 60 insertions(+), 33 deletions(-) mode change 100644 => 100755 include/zeitaufzeichnung.class.php diff --git a/include/zeitaufzeichnung.class.php b/include/zeitaufzeichnung.class.php old mode 100644 new mode 100755 index c9b319316..7d8aec3cf --- a/include/zeitaufzeichnung.class.php +++ b/include/zeitaufzeichnung.class.php @@ -133,7 +133,7 @@ class zeitaufzeichnung extends basis_db //Variablen pruefen if(!$this->validate()) return false; - + // check ob identischer eintrag existiert $check_qry = 'SELECT count(*) from campus.tbl_zeitaufzeichnung where uid='.$this->db_add_param($this->uid).' and start = '.$this->db_add_param($this->start).' and ende = '.$this->db_add_param($this->ende); if($this->db_query($check_qry) && $this->new) @@ -142,13 +142,13 @@ class zeitaufzeichnung extends basis_db { if ($row->count) { - $this->errormsg = 'Identischer Eintrag existiert!'; + $this->errormsg = 'Identischer Eintrag existiert!'; return false; } } } - - + + if($this->new) { //Neuen Datensatz einfuegen @@ -339,7 +339,7 @@ class zeitaufzeichnung extends basis_db //zusätzlicher Tag - SQL rechnet letzten Tag nicht hinein $to = date('Y-m-d', strtotime($to. ' + 1 days')); - $where.= " AND ((start >= ".$this->db_add_param($from)."::DATE AND start <= ".$this->db_add_param($to)."::DATE) + $where.= " AND ((start >= ".$this->db_add_param($from)."::DATE AND start <= ".$this->db_add_param($to)."::DATE) OR (ende >= ".$this->db_add_param($from)."::DATE AND ende <= ".$this->db_add_param($to)."::DATE))"; $qry = "SELECT @@ -506,16 +506,16 @@ class zeitaufzeichnung extends basis_db return false; } } - + /** - * Löscht sämtliche Einträge eines Users für einen Tag + * Löscht sämtliche Einträge eines Users für einen Tag * @param string $user * @param string $tag Y-m-d */ public function deleteEntriesForUser($user, $tag) - { - $where = "uid=".$this->db_add_param($user); - + { + $where = "uid=".$this->db_add_param($user); + $qry = "delete from campus.tbl_zeitaufzeichnung where $where and date_trunc('day', start) = '$tag'"; if($result = $this->db_query($qry)) { @@ -529,28 +529,28 @@ class zeitaufzeichnung extends basis_db } /** - * Löscht Pauseneinträge eines Users für einen Tag, die außerhalb der Arbeitszeit liegen + * Löscht Pauseneinträge eines Users für einen Tag, die außerhalb der Arbeitszeit liegen * Löscht Pauseneinträge an Tagen ohne Arbeitszeit * @param string $user * @param string $tag Y-m-d */ public function cleanPausenForUser($user, $tag) - { - $where = "uid=".$this->db_add_param($user); - + { + $where = "uid=".$this->db_add_param($user); + $qry = " delete from campus.tbl_zeitaufzeichnung where aktivitaet_kurzbz = 'Pause' and start::date = '$tag' and $where and ( -start::time >= +start::time >= (SELECT max(ende::time) as endzeit from campus.tbl_zeitaufzeichnung where $where and start::date = '$tag' AND (aktivitaet_kurzbz != 'LehreExtern' or aktivitaet_kurzbz is null ) and aktivitaet_kurzbz != 'Pause') or ende::time<= (SELECT min(start::time) as startzeit from campus.tbl_zeitaufzeichnung where $where and start::date = '$tag' AND (aktivitaet_kurzbz != 'LehreExtern' or aktivitaet_kurzbz is null ) and aktivitaet_kurzbz != 'Pause') or not exists -(select 1 from campus.tbl_zeitaufzeichnung where aktivitaet_kurzbz != 'LehreExtern' and aktivitaet_kurzbz != 'Pause' and start::date = '$tag' and $where ) +(select 1 from campus.tbl_zeitaufzeichnung where aktivitaet_kurzbz != 'LehreExtern' and aktivitaet_kurzbz != 'Pause' and start::date = '$tag' and $where ) ) "; - + if($result = $this->db_query($qry)) { return true; @@ -563,52 +563,79 @@ or not exists } /** - * Holt alle ZA-Einträge Typ LehreIntern und LehreExtern eines Users + * Holt alle ZA-Einträge Typ LehreIntern und LehreExtern eines Users * für das laufende Studienjahr und gibt die Summen in einem Array zurück * @param string $user - * @return Array mit Keay: LehreIntern, LehreExtern, LehreAuftraege, LehreInkludiert - */ + * @return Array mit Key: LehreIntern, LehreExtern, LehreAuftraege, LehreInkludiert + */ public function getLehreForUser($user,$sem) { - $where = "uid=".$this->db_add_param($user); + $where = "uid=".$this->db_add_param($user); $where_sem = "studiensemester_kurzbz=".$this->db_add_param($sem); $lehre_arr = array("LehreIntern"=>0, "LehreExtern"=>0, "LehreAuftraege"=>0); - + $qry = " select sum(extract(epoch from ende-start))/3600 as lehre, aktivitaet_kurzbz from campus.tbl_zeitaufzeichnung where $where and aktivitaet_kurzbz in ('LehreIntern', 'LehreExtern') and start > (select start from public.tbl_studiensemester where $where_sem) group by aktivitaet_kurzbz "; - + if($result = $this->db_query($qry)) { - + while($row = $this->db_fetch_object($result)) { - $lehre_arr[$row->aktivitaet_kurzbz] = round($row->lehre,2); + $lehre_arr[$row->aktivitaet_kurzbz] = round($row->lehre,2); } } else { return false; - } + } $where = "mitarbeiter_uid=".$this->db_add_param($user); $where_sem = "l.studiensemester_kurzbz=".$this->db_add_param($sem); - $qry = " - select sum(m.semesterstunden) from lehre.tbl_lehreinheitmitarbeiter m, lehre.tbl_lehreinheit l where $where and $where_sem and l.lehreinheit_id = m.lehreinheit_id and m.stundensatz*m.semesterstunden > 0 + + $qry = " + SELECT sum(semstunden) AS stunden + FROM + ( + SELECT sum(m.semesterstunden) AS semstunden + FROM + lehre.tbl_lehreinheitmitarbeiter m, + lehre.tbl_lehreinheit l + WHERE + $where AND + $where_sem AND + l.lehreinheit_id = m.lehreinheit_id AND + m.stundensatz * m.semesterstunden > 0 + UNION + SELECT sum(pb.stunden) AS semstunden + FROM + lehre.tbl_projektarbeit pa, + lehre.tbl_projektbetreuer pb, + lehre.tbl_lehreinheit l, + public.tbl_benutzer b + WHERE + pa.lehreinheit_id = l.lehreinheit_id AND + pb.projektarbeit_id = pa.projektarbeit_id AND + pb.person_id = b.person_id AND + b.uid = ".$this->db_add_param($user)." AND + pb.stunden * pb.stundensatz > 0 AND + $where_sem + ) AS semstunden "; - + if($result = $this->db_query($qry)) { - + while($row = $this->db_fetch_object($result)) { - $lehre_arr["LehreAuftraege"] = round($row->sum); + $lehre_arr["LehreAuftraege"] = round($row->stunden); } } else { return false; - } - + } + return $lehre_arr; } } From 73131756dbf4f25488105e1b34a04c9bfe6134dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 13 Mar 2018 16:59:55 +0100 Subject: [PATCH 12/20] Removed useless Data --- locale/de-AT/zeitaufzeichnung.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locale/de-AT/zeitaufzeichnung.php b/locale/de-AT/zeitaufzeichnung.php index a1f247827..9a475bc1d 100644 --- a/locale/de-AT/zeitaufzeichnung.php +++ b/locale/de-AT/zeitaufzeichnung.php @@ -40,7 +40,7 @@ $this->phrasen['zeitaufzeichnung/alleAnzeigen']='Alle anzeigen'; $this->phrasen['zeitaufzeichnung/alleEintraege']='Alle Einträge'; $this->phrasen['zeitaufzeichnung/summeEintraege']='Summe Einträge'; $this->phrasen['zeitaufzeichnung/arbeitszeit']='Arbeitszeit'; -$this->phrasen['zeitaufzeichnung/pause']='Pausen';'inkl. 30 min. Pflichtpause'; +$this->phrasen['zeitaufzeichnung/pause']='Pausen'; $this->phrasen['zeitaufzeichnung/inklusivePflichtpause']='inkl. 30 min. Pflichtpause'; $this->phrasen['zeitaufzeichnung/handbuchZeitaufzeichnung']='Arbeitszeitaufzeichnung Leitfaden'; $this->phrasen['zeitaufzeichnung/fiktiveNormalarbeitszeit']='Vereinbarung der fiktiven Normalarbeitszeit'; From 95663c42aa96ef97b31c11487ba2b0a6ca237b1b Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 14 Mar 2018 09:45:26 +0100 Subject: [PATCH 13/20] added ZGV and document info to freigabe mail --- .../system/infocenter/InfoCenter.php | 29 +++++- .../mailtemplates/interessentFreigabe.php | 93 ++++++++++++------- 2 files changed, 85 insertions(+), 37 deletions(-) diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index 24c90c908..5b13ce76d 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -816,6 +816,8 @@ class InfoCenter extends VileSci_Controller $prestudentstatus = $prestudent->prestudentstatus; $person_id = $prestudent->person_id; $person = $this->PersonModel->getPersonStammdaten($person_id, true)->retval; + $dokumente = $this->AkteModel->getAktenWithDokInfo($person_id, null, false)->retval; + $dokumenteNachzureichen = $this->AkteModel->getAktenWithDokInfo($person_id, null, true)->retval; //fill mail variables $interessentbez = $person->geschlecht == 'm' ? 'Ein Interessent' : 'Eine Interessentin'; @@ -823,6 +825,25 @@ class InfoCenter extends VileSci_Controller $orgform = $prestudentstatus->orgform != '' ? ' ('.$prestudentstatus->orgform.')' : ''; $geschlecht = $person->geschlecht == 'm' ? 'männlich' : 'weiblich'; $geburtsdatum = date('d.m.Y', strtotime($person->gebdatum)); + $zgvort = !empty($prestudent->zgvort) ? ' in '.$prestudent->zgvort : ''; + $zgvnation = !empty($prestudent->zgvnation_bez) ? ', '.$prestudent->zgvnation_bez : ''; + $zgvdatum = !empty($prestudent->zgvdatum) ? ', am '.date_format(date_create($prestudent->zgvdatum), 'd.m.Y') : ''; + + $dokumenteNachzureichenMail = $dokumenteMail = array(); + //convert documents to array so they can be parsed, and keeping only needed fields + $lastel = end($dokumente); + foreach ($dokumente as $dokument) + { + $postfix = $lastel === $dokument ? '' : ' |'; + $dokumenteMail[] = array('dokument_bezeichnung' => $dokument->dokument_bezeichnung.$postfix); + } + + foreach ($dokumenteNachzureichen as $dokument) + { + $anmerkung = !empty($dokument->anmerkung) ? ' | Anmerkung: '.$dokument->anmerkung : ''; + $nachgereichtam = !empty($dokument->nachgereicht_am) ? ' | wird nachgereicht bis '.date_format(date_create($dokument->nachgereicht_am), 'd.m.Y') : ''; + $dokumenteNachzureichenMail[] = array('dokument_bezeichnung' => $dokument->dokument_bezeichnung, 'anmerkung' => $anmerkung, 'nachgereicht_am' => $nachgereichtam); + } $notizenBewerbung = $this->NotizModel->getNotizByTitel($person_id, 'Anmerkung zur Bewerbung')->retval; @@ -859,7 +880,13 @@ class InfoCenter extends VileSci_Controller 'gebdatum' => $geburtsdatum, 'mailadresse' => $mailadresse, 'prestudentid' => $prestudent_id, - 'notizentext' => $notizentext + 'zgvbez' => $prestudent->zgv_bez, + 'zgvort' => $zgvort, + 'zgvdatum' => $zgvdatum, + 'zgvnation' => $zgvnation, + 'notizentext' => $notizentext, + 'dokumente' => $dokumenteMail, + 'dokumente_nachgereicht' => $dokumenteNachzureichenMail ); $this->load->library('parser'); diff --git a/application/views/templates/mailtemplates/interessentFreigabe.php b/application/views/templates/mailtemplates/interessentFreigabe.php index 91ca22f94..9c26a11d6 100644 --- a/application/views/templates/mailtemplates/interessentFreigabe.php +++ b/application/views/templates/mailtemplates/interessentFreigabe.php @@ -8,42 +8,63 @@

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Studiengang{studiengangbez} {studiengangtypbez} {orgform} {sprache}
    Studiensemester{studiensemester}
    Geschlecht{geschlecht}
    Vorname{vorname}
    Nachname{nachname}
    Geburtsdatum{gebdatum}
    E-Mail Adresse{mailadresse}
    Prestudent ID{prestudentid}
    Anmerkungen zur Bewerbung{notizentext}
    Studiengang{studiengangbez} {studiengangtypbez} {orgform} {sprache}
    Studiensemester{studiensemester}
    Geschlecht{geschlecht}
    Vorname{vorname}
    Nachname{nachname}
    Geburtsdatum{gebdatum}
    E-Mail Adresse{mailadresse}
    Prestudent ID{prestudentid}
    Zugangsvoraussetzung{zgvbez}{zgvort}{zgvnation}{zgvdatum}
    Erbrachte Dokumente + {dokumente} + {dokument_bezeichnung} + {/dokumente} +
    Nachzureichende Dokumente + {dokumente_nachgereicht} + {dokument_bezeichnung}{anmerkung}{nachgereicht_am} +
    + {/dokumente_nachgereicht} +
    Anmerkungen zur Bewerbung{notizentext}

    From 16631d7ad9b9490b9bb9da3cc512c4c4a7c5d6a9 Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 14 Mar 2018 11:28:57 +0100 Subject: [PATCH 14/20] quickfix for collapsing menu - add click events only after ajax call execution (asynchronity can be a bitch...) --- application/views/widgets/navigationMenu.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/application/views/widgets/navigationMenu.php b/application/views/widgets/navigationMenu.php index f231bc67e..1fdb4b6b3 100644 --- a/application/views/widgets/navigationMenu.php +++ b/application/views/widgets/navigationMenu.php @@ -114,7 +114,7 @@ { var strMenu = ''; - $("#side-menu").html('
  • '); + printCollapseIcon(); jQuery.each(data, function(i, e) { strMenu += printNavItem(e); @@ -134,12 +134,12 @@ }); } - $(document).ready(function() { - - renderSideMenu(); + function printCollapseIcon() + { // Hiding/showing navigation menu - works only with sb admin 2 template!! + $("#side-menu").prepend('
  • '); $("#collapseicon").click(function() { $("#page-wrapper").css('margin-left', '0px'); $("#side-menu").hide(); @@ -151,6 +151,11 @@ $("#side-menu").show(); $("#collapseinicon").hide(); }); + } + + $(document).ready(function() { + + renderSideMenu(); }); From 55c5f87832c4cbd992b2ef6f1c9f0f1c4f0b245e Mon Sep 17 00:00:00 2001 From: Paolo Date: Wed, 14 Mar 2018 12:24:01 +0100 Subject: [PATCH 15/20] Changed the server name in config/fhcomplete for addons_aufnahme_url --- application/config/fhcomplete.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/config/fhcomplete.php b/application/config/fhcomplete.php index b680d6f5d..15c5d8be0 100644 --- a/application/config/fhcomplete.php +++ b/application/config/fhcomplete.php @@ -243,4 +243,4 @@ $config['fhc_acl'] = array // $config['addons_aufnahme_url'] = array(); -$config['addons_aufnahme_url']['OE_ROOT'] = 'http://debian.dev/addons/aufnahme/OE_ROOT/cis/index.php'; +$config['addons_aufnahme_url']['OE_ROOT'] = 'https://SERVER-NAME/addons/aufnahme/OE_ROOT/cis/index.php'; From fb56a694cd80dd6c8436f91e3e352fe34d1ff298 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 14 Mar 2018 15:27:00 +0100 Subject: [PATCH 16/20] =?UTF-8?q?Fehler=20behoben=20wodurch=20der=20Excel?= =?UTF-8?q?=20Export=20f=C3=BCr=20Reihungstests=20nicht=20funktionierte=20?= =?UTF-8?q?wenn=20kein=20Studienplan=20zugeteilt=20ist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/stammdaten/reihungstestverwaltung.php | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/vilesci/stammdaten/reihungstestverwaltung.php b/vilesci/stammdaten/reihungstestverwaltung.php index 7cb117f5a..1afcc0c3c 100644 --- a/vilesci/stammdaten/reihungstestverwaltung.php +++ b/vilesci/stammdaten/reihungstestverwaltung.php @@ -178,14 +178,22 @@ if(isset($_GET['excel'])) $reihungstest = new reihungstest(); if($reihungstest->load($_GET['reihungstest_id'])) { + $rt_studienplan_id = ''; $studienplaene_arr = array(); $studienplaene = new reihungstest(); $studienplaene->getStudienplaeneReihungstest($reihungstest->reihungstest_id); foreach ($studienplaene->result AS $row) { $studienplan = new studienplan(); - $studienplan->loadStudienplan($row->studienplan_id); - $studienplaene_arr[ $row->studienplan_id] = $studienplan->bezeichnung; + if($studienplan->loadStudienplan($row->studienplan_id)) + { + $studienplaene_arr[ $row->studienplan_id] = $studienplan->bezeichnung; + $rt_studienplan_id = $row->studienplan_id; + } + else + { + die('Fehler beim Laden:'.$studienplan->errormsg); + } } $studienplaene_list = implode(',', array_keys($studienplaene_arr)); @@ -249,12 +257,15 @@ if(isset($_GET['excel'])) "; $gebietbezeichnungen = array(); - $qry_gebiete = "SELECT gebiet_id, reihung, bezeichnung FROM testtool.tbl_ablauf JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE studienplan_id = ".$db->db_add_param($row->studienplan_id)." ORDER BY reihung"; - if($result_gebiete = $db->db_query($qry_gebiete)) + if ($rt_studienplan_id != '') { - while($row_gebiete = $db->db_fetch_object($result_gebiete)) + $qry_gebiete = "SELECT gebiet_id, reihung, bezeichnung FROM testtool.tbl_ablauf JOIN testtool.tbl_gebiet USING (gebiet_id) WHERE studienplan_id = ".$db->db_add_param($rt_studienplan_id)." ORDER BY reihung"; + if($result_gebiete = $db->db_query($qry_gebiete)) { - $gebietbezeichnungen[$row_gebiete->gebiet_id] = $row_gebiete->bezeichnung; + while($row_gebiete = $db->db_fetch_object($result_gebiete)) + { + $gebietbezeichnungen[$row_gebiete->gebiet_id] = $row_gebiete->bezeichnung; + } } } From 68f934a5d012c8eb0122da332ba2249cdd95e606 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 15 Mar 2018 06:53:50 +0100 Subject: [PATCH 17/20] Removed Budget Tables from Core -> moved to Extension Fixed Problem during Extension installation --- application/core/DB_Model.php | 8 +- .../models/system/Extensions_model.php | 2 +- system/dbupdate_3.3.php | 138 +++--------------- 3 files changed, 24 insertions(+), 124 deletions(-) diff --git a/application/core/DB_Model.php b/application/core/DB_Model.php index be9e39082..bcc45ff17 100644 --- a/application/core/DB_Model.php +++ b/application/core/DB_Model.php @@ -29,18 +29,16 @@ class DB_Model extends FHC_Model /** * Constructor */ - public function __construct($dbTable = null, $pk = null, $hasSequence = true) + public function __construct($dbtype = 'default') { // Call parent constructor parent::__construct(); // Set properties - $this->pk = $pk; - $this->dbTable = $dbTable; - $this->hasSequence = $hasSequence; + $this->hasSequence = true; // Loads DB conns and confs - $this->load->database(); + $this->load->database($dbtype); // Loads the UDF library $this->load->library('UDFLib'); diff --git a/application/models/system/Extensions_model.php b/application/models/system/Extensions_model.php index c93817040..0792732d8 100644 --- a/application/models/system/Extensions_model.php +++ b/application/models/system/Extensions_model.php @@ -7,7 +7,7 @@ class Extensions_model extends DB_Model */ public function __construct() { - parent::__construct(); + parent::__construct('system'); $this->dbTable = 'system.tbl_extensions'; $this->pk = 'extension_id'; } diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 07dd57b45..a9db58f41 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -1768,84 +1768,9 @@ if($result = @$db->db_query("SELECT * FROM system.tbl_filters WHERE filter_kurzb } } -/** Budget **/ -if (!$result = @$db->db_query("SELECT 1 FROM wawi.tbl_budgetantrag LIMIT 1")) +if (!$result = @$db->db_query("SELECT projekt_id FROM fue.tbl_projekt LIMIT 1")) { - $qry = "CREATE TABLE wawi.tbl_budgetantrag - ( - budgetantrag_id integer NOT NULL, - kostenstelle_id integer NOT NULL, - geschaeftsjahr_kurzbz varchar(32) NOT NULL, - bezeichnung varchar(256), - insertamum timestamp DEFAULT now(), - insertvon varchar(32), - updateamum timestamp, - updatevon varchar(32) - ); - COMMENT ON TABLE wawi.tbl_budgetantrag IS 'Budget Requests'; - - ALTER TABLE wawi.tbl_budgetantrag ADD CONSTRAINT pk_tbl_budgetantrag PRIMARY KEY (budgetantrag_id); - - CREATE SEQUENCE wawi.tbl_budgetantrag_budgetantrag_id_seq - INCREMENT BY 1 - NO MAXVALUE - NO MINVALUE - CACHE 1; - ALTER TABLE wawi.tbl_budgetantrag ALTER COLUMN budgetantrag_id SET DEFAULT nextval(' wawi.tbl_budgetantrag_budgetantrag_id_seq'); - - GRANT SELECT, INSERT, UPDATE, DELETE ON wawi.tbl_budgetantrag TO vilesci; - GRANT SELECT, UPDATE ON wawi.tbl_budgetantrag_budgetantrag_id_seq TO vilesci; - - ALTER TABLE wawi.tbl_budgetantrag ADD CONSTRAINT fk_budgetantrag_kostenstelle_id FOREIGN KEY (kostenstelle_id) REFERENCES wawi.tbl_kostenstelle(kostenstelle_id) ON UPDATE CASCADE ON DELETE RESTRICT; - ALTER TABLE wawi.tbl_budgetantrag ADD CONSTRAINT fk_budgetantrag_geschaeftsjahr_kurzbz FOREIGN KEY (geschaeftsjahr_kurzbz) REFERENCES public.tbl_geschaeftsjahr(geschaeftsjahr_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT; - - CREATE TABLE wawi.tbl_budgetstatus - ( - budgetstatus_kurzbz varchar(32) NOT NULL, - bezeichnung varchar(128) - ); - COMMENT ON TABLE wawi.tbl_budgetstatus IS 'Key Table of Budget Request Statuses'; - - ALTER TABLE wawi.tbl_budgetstatus ADD CONSTRAINT pk_tbl_budgetstatus PRIMARY KEY (budgetstatus_kurzbz); - - INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('new','Neu'); - INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('sent','Abgeschickt'); - INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('approved','Freigegeben'); - INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('accepted','Akzeptiert'); - INSERT INTO wawi.tbl_budgetstatus(budgetstatus_kurzbz, bezeichnung) VALUES('rejected','Abgelehnt'); - - GRANT SELECT, INSERT, UPDATE, DELETE ON wawi.tbl_budgetantrag TO vilesci; - - CREATE TABLE wawi.tbl_budgetantrag_status - ( - budgetantrag_status_id integer NOT NULL, - budgetantrag_id integer NOT NULL, - budgetstatus_kurzbz varchar(32) NOT NULL, - datum timestamp NOT NULL, - uid varchar(32), - oe_kurzbz varchar(32), - insertamum timestamp DEFAULT now(), - insertvon varchar(32) - ); - COMMENT ON TABLE wawi.tbl_budgetantrag_status IS 'Statuses of Budget Requests'; - - ALTER TABLE wawi.tbl_budgetantrag_status ADD CONSTRAINT pk_tbl_budgetantrag_status PRIMARY KEY (budgetantrag_status_id); - - CREATE SEQUENCE wawi.tbl_budgetantrag_status_budgetantrag_status_id_seq - INCREMENT BY 1 - NO MAXVALUE - NO MINVALUE - CACHE 1; - ALTER TABLE wawi.tbl_budgetantrag_status ALTER COLUMN budgetantrag_status_id SET DEFAULT nextval(' wawi.tbl_budgetantrag_status_budgetantrag_status_id_seq'); - - ALTER TABLE wawi.tbl_budgetantrag_status ADD CONSTRAINT fk_budgetantrag_status_budgetstatus_kurzbz FOREIGN KEY (budgetstatus_kurzbz) REFERENCES wawi.tbl_budgetstatus(budgetstatus_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT; - ALTER TABLE wawi.tbl_budgetantrag_status ADD CONSTRAINT fk_budgetantrag_status_uid FOREIGN KEY (uid) REFERENCES public.tbl_benutzer(uid) ON UPDATE CASCADE ON DELETE RESTRICT; - ALTER TABLE wawi.tbl_budgetantrag_status ADD CONSTRAINT fk_budgetantrag_status_oe_kurzbz FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit(oe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT; - - GRANT SELECT, INSERT, UPDATE, DELETE ON wawi.tbl_budgetantrag TO vilesci; - GRANT SELECT, UPDATE ON wawi.tbl_budgetantrag_status_budgetantrag_status_id_seq TO vilesci; - - CREATE SEQUENCE fue.tbl_projekt_projekt_id_seq + $qry = "CREATE SEQUENCE fue.tbl_projekt_projekt_id_seq INCREMENT BY 1 NO MAXVALUE NO MINVALUE @@ -1853,47 +1778,29 @@ if (!$result = @$db->db_query("SELECT 1 FROM wawi.tbl_budgetantrag LIMIT 1")) GRANT SELECT, UPDATE ON fue.tbl_projekt_projekt_id_seq TO vilesci; ALTER TABLE fue.tbl_projekt ADD COLUMN projekt_id integer NOT NULL DEFAULT nextval('fue.tbl_projekt_projekt_id_seq'); ALTER TABLE fue.tbl_projekt ADD CONSTRAINT uk_tbl_projekt_projekt_id UNIQUE (projekt_id); - - CREATE TABLE wawi.tbl_budgetposition - ( - budgetposition_id integer NOT NULL, - budgetantrag_id integer NOT NULL, - budgetposten varchar(512), - konto_id integer, - betrag numeric(12,4), - kommentar text, - projekt_id integer, - insertamum timestamp, - insertvon varchar(32), - updateamum timestamp, - updatevon varchar(32) - ); - - COMMENT ON TABLE wawi.tbl_budgetposition IS 'Budget position'; - - ALTER TABLE wawi.tbl_budgetposition ADD CONSTRAINT pk_tbl_budgetposition PRIMARY KEY (budgetposition_id); - - CREATE SEQUENCE wawi.tbl_budgetposition_budgetposition_id_seq - INCREMENT BY 1 - NO MAXVALUE - NO MINVALUE - CACHE 1; - ALTER TABLE wawi.tbl_budgetposition ALTER COLUMN budgetposition_id SET DEFAULT nextval(' wawi.tbl_budgetposition_budgetposition_id_seq'); - - ALTER TABLE wawi.tbl_budgetposition ADD CONSTRAINT fk_tbl_budgetposition_budgetantrag_id FOREIGN KEY (budgetantrag_id) REFERENCES wawi.tbl_budgetantrag(budgetantrag_id) ON UPDATE CASCADE ON DELETE RESTRICT; - ALTER TABLE wawi.tbl_budgetposition ADD CONSTRAINT fk_tbl_budgetposition_konto_id FOREIGN KEY (konto_id) REFERENCES wawi.tbl_konto(konto_id) ON UPDATE CASCADE ON DELETE RESTRICT; - ALTER TABLE wawi.tbl_budgetposition ADD CONSTRAINT fk_tbl_budgetposition_projekt_id FOREIGN KEY (projekt_id) REFERENCES fue.tbl_projekt(projekt_id) ON UPDATE CASCADE ON DELETE RESTRICT; - - GRANT SELECT, INSERT, UPDATE, DELETE ON wawi.tbl_budgetposition TO vilesci; - GRANT SELECT, UPDATE ON wawi.tbl_budgetposition_budgetposition_id_seq TO vilesci; "; - if(!$db->db_query($qry)) - echo 'Budget: '.$db->db_last_error().'
    '; + if (!$db->db_query($qry)) + echo 'Projekt: '.$db->db_last_error().'
    '; else - echo '
    Neue Tabellen fuer Budgetantrag in Schema wawi hinzugefuegt'; + echo '
    Neue Spalte projekt_id für fue.tbl_projekt hinzugefügt'; } +// Extension Schema +if ($result = $db->db_query("SELECT schema_name FROM information_schema.schemata WHERE schema_name='extension'")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = "CREATE SCHEMA extension; + COMMENT ON SCHEMA extension is 'Extension Tables';"; + + if (!$db->db_query($qry)) + echo 'Extension: '.$db->db_last_error().'
    '; + else + echo '
    Neues Schema extension hinzugefuegt'; + } +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

    Pruefe Tabellen und Attribute!

    '; @@ -2161,11 +2068,6 @@ $tabellen=array( "wawi.tbl_betriebsmittel_betriebsmittelstatus" => array("betriebsmittelbetriebsmittelstatus_id","betriebsmittel_id","betriebsmittelstatus_kurzbz", "datum", "updateamum", "updatevon", "insertamum", "insertvon","anmerkung"), "wawi.tbl_betriebsmittelstatus" => array("betriebsmittelstatus_kurzbz","beschreibung"), "wawi.tbl_betriebsmitteltyp" => array("betriebsmitteltyp","beschreibung","anzahl","kaution","typ_code","mastershapename"), - "wawi.tbl_budget" => array("geschaeftsjahr_kurzbz","kostenstelle_id","budget"), - "wawi.tbl_budgetantrag" => array("budgetantrag_id","kostenstelle_id","geschaeftsjahr_kurzbz","bezeichnung","insertamum","insertvon","updateamum","updatevon"), - "wawi.tbl_budgetantrag_status" => array("budgetantrag_status_id","budgetantrag_id","budgetstatus_kurzbz","datum","uid","oe_kurzbz","insertamum","insertvon"), - "wawi.tbl_budgetstatus" => array("budgetstatus_kurzbz","bezeichnung"), - "wawi.tbl_budgetposition" => array("budgetposition_id","budgetantrag_id","budgetposten","konto_id","betrag","kommentar","projekt_id","insertamum","insertvon","updateamum","updatevon"), "wawi.tbl_zahlungstyp" => array("zahlungstyp_kurzbz","bezeichnung"), "wawi.tbl_konto" => array("konto_id","kontonr","beschreibung","kurzbz","aktiv","person_id","insertamum","insertvon","updateamum","updatevon","ext_id","person_id"), "wawi.tbl_konto_kostenstelle" => array("konto_id","kostenstelle_id","insertamum","insertvon"), From 3eebd1f3edd39b4279886234c29ff16909062d6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 15 Mar 2018 07:00:30 +0100 Subject: [PATCH 18/20] Extension Permission is now needed to see installed Extensions --- .../controllers/system/extensions/Manager.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/application/controllers/system/extensions/Manager.php b/application/controllers/system/extensions/Manager.php index db56b0d8b..9e24f00f5 100644 --- a/application/controllers/system/extensions/Manager.php +++ b/application/controllers/system/extensions/Manager.php @@ -11,15 +11,19 @@ class Manager extends VileSci_Controller * */ public function __construct() - { - parent::__construct(); + { + parent::__construct(); // Load helpers to upload files $this->load->helper(array('form', 'url')); - // Loads the extensions library - $this->load->library('ExtensionsLib'); - } + // Loads the extensions library + $this->load->library('ExtensionsLib'); + + $this->load->library('PermissionLib'); + if(!$this->permissionlib->isBerechtigt('system/extensions')) + show_error('You have no Permission! You need Extensions Permission'); + } /** * From 65f1992d13552ea1d5dcf58a03362d9b8dda9f5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 15 Mar 2018 10:30:41 +0100 Subject: [PATCH 19/20] Fehler behoben wodurch Nationen nicht korrekt geladen wurden wenn die Sperre auf false gesetzt war --- include/nation.class.php | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/include/nation.class.php b/include/nation.class.php index 42956ec95..5eecb9fc7 100644 --- a/include/nation.class.php +++ b/include/nation.class.php @@ -49,7 +49,7 @@ class nation extends basis_db public function __construct($code=null) { parent::__construct(); - + if($code != null) $this->load($code); } @@ -64,7 +64,7 @@ class nation extends basis_db { //Lesen der Daten aus der Datenbank $qry = "SELECT * FROM bis.tbl_nation WHERE nation_code=".$this->db_add_param($code).';'; - + if(!$this->db_query($qry)) { $this->errormsg = 'Fehler bei einer Datenbankabfrage'; @@ -101,17 +101,17 @@ class nation extends basis_db { //Lesen der Daten aus der Datenbank $qry = "SELECT * FROM bis.tbl_nation"; - + if ($ohnesperre) - $qry .= " WHERE sperre is null"; - + $qry .= " WHERE sperre is null OR sperre is false"; + if ($orderEnglish == false) $qry .= " ORDER BY kurztext"; - else + else $qry .= " ORDER BY engltext"; - + $qry .= ';'; - + if (!$this->db_query($qry)) { $this->errormsg = 'Fehler bei einer Datenbankabfrage'; @@ -134,10 +134,10 @@ class nation extends basis_db $this->nation[] = $nation; } - + return true; } - + /** * Speichert die Personendaten in die Datenbank * @return true wenn erfolgreich, false im Fehlerfall @@ -169,4 +169,4 @@ class nation extends basis_db } } } -?> \ No newline at end of file +?> From 7060459e4420b261c6be5d1cd1340a7e40af16d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 15 Mar 2018 16:44:12 +0100 Subject: [PATCH 20/20] =?UTF-8?q?Men=C3=BCpunkt=20Wartung=20ist=20nur=20no?= =?UTF-8?q?ch=20sichtbar=20wenn=20Berechtigungen=20f=C3=BCr=20Unterpunkte?= =?UTF-8?q?=20vorhanden=20sind?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/tw/vilesci_menu_main.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php index 9247cd98d..76938c547 100644 --- a/include/tw/vilesci_menu_main.inc.php +++ b/include/tw/vilesci_menu_main.inc.php @@ -176,7 +176,7 @@ $menu=array 'Wartung'=> array ( 'name'=>'Wartung', 'opener'=>'true', 'hide'=>'true', 'image'=>'vilesci_wartung.png', 'link'=>'left.php?categorie=Wartung', 'target'=>'nav', - + 'permissions'=>array('basis/studiengang','lehre/vorrueckung','student/vorrueckung','admin','basis/firma','student/stammdaten','assistenz','lv-plan'), 'DokumenteZuteilung'=>array('name'=>'Dokumente Zuteilung', 'link'=>'stammdaten/studiengang_dokumente.php', 'target'=>'main', 'permissions'=>array('basis/studiengang')), 'Vorrueckung'=> array ( @@ -186,7 +186,7 @@ $menu=array ), 'Kreuzerllistekopieren'=>array('name'=>'Kreuzerllisten kopieren', 'link'=>CIS_ROOT.'cis/private/lehre/benotungstool/copy_uebung.php', 'target'=>'_blank','permissions'=>array('admin')), 'Firmenwartung'=>array('name'=>'Firmenwartung', 'link'=>'stammdaten/firma_zusammen_uebersicht.php', 'target'=>'main','permissions'=>array('basis/firma')), - 'checkStudenten'=>array('name'=>'CheckStudenten', 'link'=>'../system/checkStudenten.php', 'target'=>'main'), + 'checkStudenten'=>array('name'=>'CheckStudenten', 'link'=>'../system/checkStudenten.php', 'target'=>'main', 'permissions'=>array('student/stammdaten')), 'StudienplanZuteilung'=>array('name'=>'Studienplan Zuteilung', 'link'=>'lehre/studienplan_zuteilung.php', 'target'=>'main','permissions'=>array('assistenz')), 'lv_merge'=>array('name'=>'LVs zusammenlegen', 'link'=>'lehre/lv_merge.php', 'target'=>'main','permissions'=>array('admin','lv-plan')), 'akteupdate'=>array('name'=>'Akten überschreiben', 'link'=>'personen/akteupdate.php', 'target'=>'main','permissions'=>array('admin')),