mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
115 lines
3.6 KiB
PHP
115 lines
3.6 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, $fixangestellt=true, $personalnummer=null)
|
|
{
|
|
$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;
|
|
}
|
|
}
|
|
}
|
|
|
|
?>
|