, * Andreas Oesterreicher and * Rudolf Hangl . */ /** * Funktionen zum Generieren der UIDs */ require_once(dirname(__FILE__).'/../addon.class.php'); // die aktiven Addons werden durchsucht, ob eines davon eine eigene UID Generierung vorsieht // falls ja, wird die Version des Addons genommen, ansonsten die Default Generierung $generateuid_addon_found=false; $generateuid_addons = new addon(); foreach($generateuid_addons->aktive_addons as $addon) { $generateuid_addon_filename = dirname(__FILE__).'/../../addons/'.$addon.'/vilesci/generateuid.inc.php'; if(file_exists($generateuid_addon_filename)) { include($generateuid_addon_filename); $generateuid_addon_found=true; break; } } if(!$generateuid_addon_found) { // **** // * Generiert die UID // * FORMAT: el07b001 // * $stgkzl: el = studiengangskuerzel // * $jahr: 07 = Jahr // * $stgtyp: b/m/d/x = Bachelor/Master/Diplom/Incomming // * $matrikelnummer // * 001 = Laufende Nummer Wenn StSem==SS dann wird zur Nummer 500 dazugezaehlt // * Bei Incoming im Masterstudiengang wird auch 500 dazugezaehlt // **** function generateUID($stgkzl,$jahr, $stgtyp, $matrikelnummer) { $art = mb_substr($matrikelnummer, 2, 1); $nr = mb_substr($matrikelnummer, mb_strlen(trim($matrikelnummer))-3); if($art=='2') //Sommersemester $nr = $nr+500; elseif($art=='0' && $stgtyp=='m') //Incoming im Masterstudiengang $nr = $nr+500; elseif($art=='4' && $stgtyp=='l') // Lehrgangsteilnehmer im Sommersemester $nr = $nr+500; return mb_strtolower($stgkzl.$jahr.($art!='0'?$stgtyp:'x').$nr); } // **** // * Gerneriert die Mitarbeiter UID // **** function generateMitarbeiterUID($vorname, $nachname, $lektor, $fixangestellt=true) { $bn = new benutzer(); $reserviert = array(); // Das File aliases enthaelt die Mailverteiler haendisch gewarteten Mailverteiler die nicht // in der FHC Datenbank vorhanden sind. // Diese duerfen nicht als UID verwendet werden, da es sonst zu Konflikten kommt if(file_exists(DOC_ROOT.'../system/aliases')) { $aliases = file_get_contents(DOC_ROOT.'../system/aliases'); $aliases = explode("\n",$aliases); foreach($aliases as $alias) { if(!strstr($alias,'#')) { $entry = preg_split("/[\s:]+/", $alias); if($entry[0]!='') $reserviert[]=$entry[0]; } } } for($nn=8,$vn=0;$nn!=0;$nn--,$vn++) { $uid = mb_substr($nachname,0,$nn); $uid .= mb_substr($vorname,0,$vn); $uid = mb_str_replace(' ','',$uid); $uid = mb_str_replace('-','',$uid); if(!$bn->uid_exists($uid) && !in_array($uid, $reserviert)) if($bn->errormsg=='') return $uid; } } } ?>