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 ?>