assign('ueberschrift','Einstellungen');
if(!$erlaubt){
$_inh = T_KEINZUGRIFF;
}
else{
require_once('class/einstellungen.inc.php');
require_once('func/schreibe_ini_datei.inc.php');
# Einstellungen fuer die user-ini.xml
$_schriftgroessen = array(
8 => '8pt',
9 => '9pt',
10 => '10pt',
11 => '11pt',
12 => '12pt',
13 => '13pt',
14 => '14pt',
);
$_globaleeinstellungen_pdfquerformatoben = array(
'links' => 'linker Rand',
'rechts' => 'rechter Rand'
);
$_stundennachweis_anfang = array(
'heute' => 'Heute',
'woche' => 'nächste Woche',
'monat' => 'nächsten Monat',
'ferien' => 'nach den nächsten Ferien',
'vorgegeben' => 'vorgegebene Zeiträume (siehe Doku)'
);
$_stundennachweis_zeitraum = array(
'monat1' => '1 Monat',
'monat2' => '2 Monate',
'monat3' => '3 Monate',
'monat4' => '4 Monate',
'monat5' => '5 Monate',
'monat6' => '6 Monate'
);
$_stundennachweis_sortierung = array(
'nachname' => 'Nachname, Vorname',
'vorname' => 'Vorname, Nachname',
'jahrgang_vorname' => 'Jahrgang, Vorname',
'jahrgang_nachname' => 'Jahrgang, Nachname'
);
$_stundennachweis_namensanzeige = array(
'nachname_vorname' => 'Nachname, Vorname',
'vorname_nachname' => 'Vorname Nachname',
);
$_terminbenachrichtigung_zeitraum = array(
'nicht' => 'garnicht',
'tag' => 'täglich',
'woche' => 'wöchentlich',
'monat' => 'monatlich'
);
$_dateisystem_klickaufdatei = array(
'runterladen' => 'Datei herunterladen',
'details' => 'Details der Datei zeigen'
);
$_dateisystem_csvtrenner = array(
';' => 'Semikolon (»;«)',
',' => 'Komma (»,«)',
':' => 'Doppelpunkt (»:«)',
'tab' => 'Tabulator (»\t«)',
'leer' => 'Leerzeichen (» «)'
);
$einst = new einstellungen(PFAD_INCLUDE.'conf/user-ini.xml',PFAD_INIDATEIEN,'userconf_'.$_SESSION['user']['id'].'.ini');
$einst->db = &$_db;
$einst->einlesen();
$_tmpl->assign('bodyid','einstellungen');
if(!file_exists($einst->userconfpfad.$einst->userdatei)){
unset($_GET['aktion']);
}
$_GET['aktion'] = isset($_GET['aktion'])?$_GET['aktion']:'';
switch($_GET['aktion']){
case 'pdfraenderdatei':
require_once('class/pdf.inc.php');
$pdf = new tkpdf(10);
$x = 595.28;
$y = 841.89;
$pdf->setLineStyle(3);
$pdf->line($x/2, 0, $x/2, $y);
$pdf->line(0, $y/2, $x, $y/2);
$pdf->addText(40,780,14,'Anleitung');
$pdf->addText(40,760,10,'- Drucken dieser Datei');
$y = 740;
$text = '- Abmessern der Abstände zwischen Linienende und Seitenrand';
$erste = true;
while($text != ''){
$text = $pdf->addTextWrap(40+($erste?0:7), $y, $x/2-40+($erste?0:7), 10, $text);
$erste = false;
$y -= 15;
}
$text = '- Eintragen der Werte (in mm) in die Einstellungen (in der Form: »oben, rechts, unten, links«)';
$y -= 5;
$erste = true;
while($text != ''){
$text = $pdf->addTextWrap(40+($erste?0:7), $y, $x/2-42+($erste?0:7), 10, $text);
$erste = false;
$y -= 15;
}
$pdf->tk_autor = $_SESSION['user']['realname'];
$pdf->tk_titel = 'Testdatei zum Ermitteln der PDF-Seitenränder';
$pdf->tkstream('testdatei.pdf');
case 'gruppeloeschen':
if(!pruefeRechte('m_anzeigen_adresse')){
$_inh = T_KEINZUGRIFF;
break;
}
if(!isset($_GET['id'])){
weiterleiten('/sonstiges/einstellungen.html?aktion=terminbenachrichtigungen','Die übergebenen Parameter waren ungültig.');
}
elseif(!isset($_GET['sicher'])){
$_tmpl->assign('frage','Soll die Gruppe wirklich gelöscht werden?');
$_tmpl->assign('query','aktion=gruppeloeschen&id='.$_GET['id']);
$_tmpl->assign('neinquery','aktion=terminbenachrichtigungen');
$_tmpl->assign('url', '/sonstiges/einstellungen.html');
$_inh .= $_tmpl->fetch('tools/9902.loeschfrage.inc.html').'
';
break;
}
else{
$rg = $einst->benachrichtigungLoeschen($_GET['id'],'gruppe');
if($rg === true){
$text = 'Die Gruppe wurde gelöscht.';
}
elseif($rg == -1 or $rg == -2){
$text = 'Die übergebenen Parameter waren ungültig.';
}
elseif($rg == -3){
$text = 'Die Gruppe war nicht vorhanden.';
}
weiterleiten('/sonstiges/einstellungen.html?aktion=terminbenachrichtigungen',$text);
}
case 'geburtstagsgruppenbearbeiten':
if(!pruefeRechte('m_anzeigen_adresse')){
$_inh = T_KEINZUGRIFF;
break;
}
require_once('func/holetrainingsgruppen.inc.php');
$gruppendaten = holeTrainingsgruppen(true);
$gruppendaten['vorstand'] = 'Vorstand';
$gruppendaten['uebungsleiter'] = 'Übungsleiter';
$gruppendaten['kampfrichter'] = 'Kampfrichter';
if(!isset($_POST['speichern'])){
list(,$gruppen,) = explode('|',$_einst['emailbenachrichtigung']['terminbenachrichtigungen'],3);
list(,$gruppen) = explode(':',$gruppen);
if(!empty($gruppen)){
$_tmpl->assign('vorhanden',explode(',',$gruppen));
}
}
else{
$ids = array();
$erlaubte = array_keys($gruppendaten);
$erlaubte[] = 'uebungsleiter';
$erlaubte[] = 'kampfrichter';
$erlaubte[] = 'vorstand';
if(isset($_POST['gruppen']) and is_array($_POST['gruppen'])){
foreach($_POST['gruppen'] as $gr){
if(!in_array($gr,$erlaubte)){
continue;
}
$ids[] = $gr;
}
}
$einst->benachrichtigungHinzufuegen($ids, 'gruppe');
weiterleiten('/sonstiges/einstellungen.html?aktion=terminbenachrichtigungen','Die Gruppen wurden gespeichert.');
}
$_tmpl->assign('gruppen',$gruppendaten);
$_inh .= $_tmpl->fetch('sonstiges/62.einstellungen-geburtstagsgruppen.inc.html');
break;
case 'terminloeschen':
if(!pruefeRechte('s_kalender_anzeigen')){
$_inh = T_KEINZUGRIFF;
break;
}
if(!isset($_GET['id'])){
weiterleiten('/sonstiges/einstellungen.html?aktion=terminbenachrichtigungen','Die übergebenen Parameter waren ungültig.');
}
else{
$rg = $einst->benachrichtigungLoeschen($_GET['id'],'termin');
if($rg === true){
$text = 'Der Termin wurde gelöscht.';
}
elseif($rg == -1 or $rg == -2){
weiterleiten('/sonstiges/einstellungen.html?aktion=terminbenachrichtigungen','Die übergebenen Parameter waren ungültig.');
}
elseif($rg == -3){
$text = 'Der Termin war nicht vorhanden.';
}
if(isset($_GET['einst'])){
weiterleiten('/sonstiges/einstellungen.html?aktion=terminbenachrichtigungen',$text);
}
else{
weiterleiten('/_terminlookup.php?id='.$_GET['id'],$text);
}
}
case 'terminhinzufuegen':
if(!pruefeRechte('s_kalender_anzeigen')){
$_inh = T_KEINZUGRIFF;
break;
}
if(!isset($_GET['id'])){
weiterleiten('/sonstiges/kalender.html','Die übergebenen Parameter waren ungültig.');
exit;
}
else{
$rg = $einst->benachrichtigungHinzufuegen($_GET['id'],'termin');
if($rg === true){
$text = 'Der Termin wurde gespeichert.';
}
elseif($rg == -1 or $rg == -2){
weiterleiten('/sonstiges/kalender.html','Die übergebenen Parameter waren ungültig.');
}
elseif($rg == -3){
$text = 'Der Termin war bereits gespeichert.';
}
weiterleiten('/_terminlookup.php?id='.$_GET['id'],$text);
}
break;
case 'geburtstagspersonloeschen':
if(!pruefeRechte('m_anzeigen_adresse')){
$_inh = T_KEINZUGRIFF;
break;
}
if(!isset($_GET['id'])){
weiterleiten('/sonstiges/einstellungen.html?aktion=terminbenachrichtigungen','Die übergebenen Parameter waren ungültig.');
}
elseif(!isset($_GET['sicher'])){
$_tmpl->assign('frage','Soll die Person wirklich gelöscht werden?');
$_tmpl->assign('query','aktion=geburtstagspersonloeschen&id='.$_GET['id']);
$_tmpl->assign('neinquery','aktion=terminbenachrichtigungen');
$_tmpl->assign('url', '/sonstiges/einstellungen.html');
$_inh .= $_tmpl->fetch('tools/9902.loeschfrage.inc.html').'
';
}
else{
$rg = $einst->benachrichtigungLoeschen($_GET['id'],'person');
if($rg === true){
$text = 'Das Mitglied wurde gelöscht.';
}
elseif($rg == -1 or $rg == -2){
$text = 'Die übergebenen Parameter waren ungültig.';
}
elseif($rg == -3){
$text = 'Das Mitglied war nicht gespeichert.';
}
weiterleiten('/sonstiges/einstellungen.html?aktion=terminbenachrichtigungen',$text);
}
break;
case 'geburtstagspersonhinzufuegen':
if(!pruefeRechte('m_anzeigen_adresse')){
$_inh = T_KEINZUGRIFF;
break;
}
if(!isset($_GET['id'])){
require_once('func/mitgliedwaehlen.inc.php');
$_inh .= mitgliedwaehlen('/sonstiges/einstellungen.html', 'aktion=geburtstagspersonhinzufuegen');
}
else{
$rg = $einst->benachrichtigungHinzufuegen($_GET['id'],'person');
if($rg === true){
weiterleiten('/sonstiges/einstellungen.html?aktion=terminbenachrichtigungen','Das Mitglied wurde gespeichert.');
}
elseif($rg == -1 or $rg == -2){
weiterleiten('/sonstiges/einstellungen.html?aktion=geburtstagspersonhinzufuegen','Die übergebenen Parameter waren ungültig.');
}
elseif($rg == -3){
weiterleiten('/sonstiges/einstellungen.html?aktion=terminbenachrichtigungen','Das Mitglied war bereits gespeichert.');
}
}
break;
case 'terminbenachrichtigungen':
if(!pruefeRechte('s_kalender_anzeigen','m_anzeigen_name')){
$_inh = T_KEINZUGRIFF;
break;
}
$_tmpl->assign('alletermine', $_einst['emailbenachrichtigung']['analletermineerinnern']);
$_tmpl->assign('daten',$einst->holeBenachrichtigungen());
$_inh .= $_tmpl->fetch('sonstiges/62.einstellungen-termineindex.inc.html');
break;
case 'emailpasswort':
if(!isset($_POST['speichern'])){
$query = "SELECT email FROM ".DB_PREFIX."mitglieder WHERE id = ".$_SESSION['user']['id']."";
$_db->holeDaten($query);
$daten = $_db->holeZeile();
}
else{
$f = '';
require_once('func/pruefen.inc.php');
$f .= pruefen($_POST['email'],'email','Die E-Mailadresse ist ungültig');
$f .= pruefen($_POST['email'],'maxlaenge','Die E-Mailadresse ist zu lang (max. 50 Zeichen)',50);
if(!empty($_POST['passwort']) OR !empty($_POST['passwort2'])){
$f .= pruefen($_POST['passwort'],'gleich','Die Passwörter sind nicht gleich',$_POST['passwort2']);
$f .= pruefen($_POST['passwort'],'passwort','Das Passwort muss aus mindestens je eines der Zeichen [a-zöäüß],
[A-ZÖÄÜ] und [0-9] enthalten und mindestens 8 Zeichen lang sein.');
}
if(empty($f)){
$query = "UPDATE ".DB_PREFIX."mitglieder SET email = '".text_format($_POST['email'],'db')."' WHERE id = ".$_SESSION['user']['id']."";
$_db->fuehreQueryAus($query);
$pwgeaendert = false;
if(!empty($_POST['passwort']) OR !empty($_POST['passwort2'])){
$query = "UPDATE ".DB_PREFIX."logins SET passwort = '".md5($_POST['passwort'])."' WHERE id = ".$_SESSION['user']['id']."";
$_db->fuehreQueryAus($query);
$pwgeaendert = true;
}
$meldung = 'Die E-Mailadresse '.($pwgeaendert?'und das Passwort wurden':'wurde').' geändert.';
weiterleiten('/sonstiges/einstellungen.html',$meldung);
}
else{
$daten = $_POST;
$_tmpl->assign('fehler',$f);
}
}
$_tmpl->assign('daten',$daten);
$_inh .= $_tmpl->fetch('sonstiges/62.einstellungen-emailpasswort.inc.html');
break;
case 'anzeigen':
$tmp = parse_ini_file($einst->userconfpfad.$einst->userdatei,true);
$usereinst = parse_ini_file($einst->userconfpfad.$einst->userdatei,true);
$daten = $einst->erzeugeAnzeigenDaten($usereinst);
$_tmpl->assign('daten',$daten);
$_inh .= $_tmpl->fetch('sonstiges/62.einstellungen-anzeigen.inc.html');
break;
case 'aendern':
if(isset($_POST['speichern'])){
$f = '';
foreach($_POST as $mid => $modul){
if(!isset($einst->daten[$mid]) or !is_array($modul)){
continue;
}
foreach($modul as $oid => $option){
if(!isset($einst->daten[$mid]) or !isset($einst->daten[$mid]['optionen'][$oid])){
continue;
}
switch($einst->daten[$mid]['optionen'][$oid]['art']){
case 'datei':
if(!file_exists( $einst->daten[$mid]['optionen'][$oid]['verzeichnis'].$option)){
$f .= $einst->daten[$mid]['optionen'][$oid]['fehler'].'
';
}
break;
case 'bool':
$_POST[$mid][$oid] = $option==1?1:0;
break;
case 'text':
if(preg_match('~^'.$einst->daten[$mid]['optionen'][$oid]['form'].'$~',$option,$match) == 0){
$f .= $einst->daten[$mid]['optionen'][$oid]['fehler'].'
';
}
break;
case 'select':
if(!in_array($option,array_keys(${$einst->daten[$mid]['optionen'][$oid]['variable']}))){
$f .= $einst->daten[$mid]['optionen'][$oid]['fehler'].'
';
}
break;
}
}
}
if(!empty($f)){
$_tmpl->assign('fehler',$f);
$_POST['emailbenachrichtigung']['terminbenachrichtigungen'] = $_einst['emailbenachrichtigung']['terminbenachrichtigungen'];
$daten = $einst->erzeugeBearbeitenDaten($_POST);
$_tmpl->assign('daten',$daten);
$_inh .= $_tmpl->fetch('sonstiges/62.einstellungen-formular.inc.html');
}
else{
$schreiben = $einst->erzeugeIniBaum();
$schreiben['emailbenachrichtigung']['terminbenachrichtigungen'] = $_einst['emailbenachrichtigung']['terminbenachrichtigungen'];
foreach($schreiben as $mid => $modul){
if(!isset($_POST[$mid])){
continue;
}
foreach($modul as $oid => $option){
if(isset($_POST[$mid][$oid])){
$schreiben[$mid][$oid] = $_POST[$mid][$oid];
}
}
}
schreibe_ini_datei($einst->userconfpfad.$einst->userdatei,$schreiben,true);
# Cronjob sagen, dass Usereinstellungen neu eingelesen werden muessen
$einst->cronjobEinstellungenEinlesen();
weiterleiten('/sonstiges/einstellungen.html?aktion=anzeigen','Die Einstellungen wurden gespeichert');
}
}
else{
$usereinst = parse_ini_file($einst->userconfpfad.$einst->userdatei,true);
$daten = $einst->erzeugeBearbeitenDaten($usereinst);
$_tmpl->assign('daten',$daten);
$_inh .= $_tmpl->fetch('sonstiges/62.einstellungen-formular.inc.html');
}
break;
default:
if(!file_exists($einst->userconfpfad.$einst->userdatei)){
copy($einst->userconfpfad.'userconf_default.ini',$einst->userconfpfad.$einst->userdatei);
chmod($einst->userconfpfad.$einst->userdatei, 0666);
$daten = parse_ini_file($einst->userconfpfad.$einst->userdatei,true);
$daten['stundennachweis']['name'] = $_SESSION['user']['realname'];
schreibe_ini_datei($einst->userconfpfad.$einst->userdatei,$daten,true);
}
$_inh .= $_tmpl->fetch('sonstiges/62.einstellungen-index.inc.html');
break;
}
} # Ende Rechte-else, EOF
?>