, * Andreas Oesterreicher , * Rudolf Hangl and * Gerald Simane-Sequens */ require_once('../../config/vilesci.config.inc.php'); require_once('../../include/benutzerfunktion.class.php'); require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/fachbereich.class.php'); require_once('../../include/functions.inc.php'); require_once('../../include/mitarbeiter.class.php'); require_once('../../include/organisationseinheit.class.php'); require_once('../../include/studiengang.class.php'); $user = get_uid(); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); if(!$rechte->isBerechtigt('basis/organisationseinheit')) die('Sie haben keine Berechtigung fuer diese Seite'); echo '

Organisationseinheiten

Zuordnung kann per Drag&Drop geƤndert werden! Neue Organisationseinheit anlegen
'; //Parent durch Drag&Drop Updaten if(isset($_GET['action']) && $_GET['action']=='updateparent') { if(!$rechte->isBerechtigt('basis/organisationseinheit', null, 'suid')) die('Sie haben keine Berechtigung fuer diese Aktion'); $oe = new organisationseinheit($_GET['kurzbz']); $oe->oe_parent_kurzbz = $_GET['parent_kurzbz']; if(!$oe->save()) { echo 'Fehler:'.$oe->errormsg; } } //Speichern der Daten if(isset($_POST['save'])) { if(!$rechte->isBerechtigt('basis/organisationseinheit', null, 'suid')) die('Sie haben keine Berechtigung fuer diese Aktion'); if(!isset($_POST['oe_kurzbz']) || !isset($_POST['oe_kurzbz_orig']) || !isset($_POST['oe_parent_kurzbz']) || !isset($_POST['bezeichnung']) || !isset($_POST['organisationseinheittyp_kurzbz'])) { die('Fehler bei der Parameteruebergabe'); } else { if($_POST['oe_kurzbz_orig']=='') { $new = true; $oe = new organisationseinheit(); } else { $new = false; $oe = new organisationseinheit($_POST['oe_kurzbz_orig']); } $oe->oe_kurzbz_orig = $_POST['oe_kurzbz_orig']; $oe->oe_kurzbz = $_POST['oe_kurzbz']; $oe->oe_parent_kurzbz = $_POST['oe_parent_kurzbz']; $oe->bezeichnung = $_POST['bezeichnung']; $oe->organisationseinheittyp_kurzbz = $_POST['organisationseinheittyp_kurzbz']; $oe->aktiv = isset($_POST['aktiv']); $oe->mailverteiler = isset($_POST['mailverteiler']); if($oe->save($new)) { echo '
Daten erfolgreich gespeichert'; } else { echo '
Fehler: '.$oe->errormsg.''; } } } //Formular zum Editieren und NEU anlegen anzeigen if(isset($_GET['action']) && ($_GET['action']=='edit' || $_GET['action']=='neu')) { if(!$rechte->isBerechtigt('basis/organisationseinheit', null, 'suid')) die('Sie haben keine Berechtigung fuer diese Aktion'); if($_GET['action']=='edit') $oe = new organisationseinheit($_GET['kurzbz']); else $oe = new organisationseinheit(); echo '
Kurzbz'; echo ''; echo ''; echo '
Parent '; //Parent DropDown echo ''; echo '
Bezeichnung
Typ'; //TYP DropDown echo ''; echo '
Aktivaktiv?'checked':'').'>
Mailverteilermailverteiler?'checked':'').'>
 
'; } //Benutzerdefiniert Sortierfunktion damit die Eintraege mit //Kindelementen nach oben sortiert werden function mysort($a, $b) { if(is_array($a) && is_array($b)) { if(count($a)==count($b)) return 0; if(count($a)>count($b)) return -1; else return 1; } else { if(is_array($a)) return 1; if(is_array($b)) return -1; else return 0; } } //Uebersicht anzeigen //Alle obersten Organisationseinheiten holen $oe = new organisationseinheit(); $oe->getHeads(); echo "\n"; echo ''; foreach ($oe->result as $result) { echo ''; } echo "\n"; echo '
'; $arr = array(); $arr1 = array(); //Array mit den Kindelementen erzeugen $arr = getChilds($result->oe_kurzbz); //Sortieren damit die Eintraege mit Kindern weiter oben stehen uasort($arr,'mysort'); //Parent hinzufuegen $arr1[$result->oe_kurzbz] = $arr; echo "\n"; //Anzeigen display($arr1); echo '
'; //Liefert die Kindelemente einer Organisationseinheit in //einem verschachteltem Array zurueck function getChilds($foo) { $obj = new organisationseinheit(); $arr = array(); $arr1 = $obj->getDirectChilds($foo); foreach ($arr1 as $value) $arr[$value]=array(); foreach ($arr as $val=>$k) { $hlp = getChilds($val); $arr[$val] = $hlp; } return $arr; } //Zeigt das Array in einer Verschachtelten Tabelle an function display($arr) { //Wenn eines der Element noch Unterelemente hat, dann das Array sortieren, damit //die Eintraege mit den Untereintraegen zuerst kommen $sort = false; foreach ($arr as $row) { if(count($row)>0) $sort=true; } if($sort) { uasort($arr,'mysort'); $style='background-color: #F5F5F5;'; } else { $style='background-color: #b1b1b1;'; } echo "\n "; echo ''; $td=false; foreach ($arr as $key=>$val) { $obj = new organisationseinheit(); $obj->load($key); //inaktive OEs farblich markieren if($obj->aktiv) $aktivstyle=''; else $aktivstyle='background-color: pink;'; if(is_array($val) && count($val)>0) echo ''; } } if($td) echo ''; echo "\n

'; else { if(!$td) { echo '
'; $td=true; } else echo '
'; } //echo ''; echo ''; echo $obj->organisationseinheittyp_kurzbz.' - '; if($obj->organisationseinheittyp_kurzbz=='Institut') echo $obj->oe_kurzbz; else echo $obj->bezeichnung; echo ''; //echo ''; if(is_array($val) && count($val)>0) { echo '

'; display($val); echo '
"; } echo ' '; ?>