Files
FHC-Core/include/tw/generateuid.inc.php
T

110 lines
3.5 KiB
PHP

<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* 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)
{
$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
$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;
}
}
}
?>