assign('ueberschrift','Wettkämpfe ändern');
$_tmpl->assign('_modus','aendern');
$erlaubt = pruefeRechte('w_bearbeiten');
if(!$erlaubt){
$_inh = T_KEINZUGRIFF;
}
else{
require_once('class/wettkaempfe.inc.php');
require_once('class/dateien.inc.php');
$wk = new wettkaempfe;
$wk->tmpl = &$_tmpl;
$wk->db = &$_db;
$wk->conf = array('lagen'=>$_lagen,'wkarten'=>$_wkarten,'altersklassen'=>$_altersklassen,'_gleinst'=>$_gleinst,'_einst'=>$_einst);
# Module laden
$_module = parse_ini_file(PFAD_INCLUDE.'conf/module.ini',true);
if(isset($_module['wkabwickeln'])){
$_module = $_module['wkabwickeln'];
foreach($_module as $key => $modul){
$_wettkampfarten[$key] = $modul;
}
}
else{
$_module = false;
}
if(!isset($_GET['id'])){
weiterleiten('/wettkaempfe/');
}
$dat = new dateien($_db,$_tmpl,true);
$verzeichnisse = $dat->baueVerzeichnisListe(2);
$setzbareeigenschaften = array(
'flags' => array(
'wkabwickeln',
'mannschaftsmeldegeld'
),
'werte' => array(
'wettkampfart',
'pflichtzeiten'
)
);
$_bahnlaengen = array(
'25' => 'Kurzbahn (25m)',
'50' => 'Langbahn (50m)',
'x' => 'sonstige'
);
$query = "SELECT id, bezeichnung FROM ".DB_PREFIX."pflichtzeiten ORDER BY sort";
$_db->holeDaten($query);
$_pflichtzeiten = $_db->baueArray('bezeichnung','id');
if(isset($_POST['speichern'])){
$query = "SELECT id FROM ".DB_PREFIX."wettkaempfe WHERE id = '".text_format($_GET['id'],'db')."'";
$_db->holeDaten($query);
if($_db->holeAnzahl() != 1){
echo 'nixda';
exit;
}
require_once('func/pruefen.inc.php');
$f = '';
$d = &$_POST['daten'];
$f .= pruefen($d['titel'],'leer','Der Titel fehlt');
$f .= pruefen($d['titel'],'minlaenge','Der Titel ist zu kurz (min 2 Zeichen)',2);
$f .= pruefen($d['titel'],'maxlaenge','Der Titel ist zu lang (max 100 Zeichen)',100);
$f .= pruefen($d['kurztitel'],'leer','Der Kurztitel fehlt');
$f .= pruefen($d['kurztitel'],'minlaenge','Der Kurztitel ist zu kurz (min 2 Zeichen)',2);
$f .= pruefen($d['kurztitel'],'maxlaenge','Der Kurztitel ist zu lang (max 40 Zeichen)',40);
$f .= pruefen($d['datum'],'leer','Das Datum fehlt');
$f .= pruefen($d['datum'],'datum','Das Datum ist ungültig');
$f .= pruefen($d['ort'],'leer','Der Ort fehlt');
$f .= pruefen($d['ort'],'maxlaenge','Der Ort ist zu lang (max 30 Zeichen)',30);
$f .= pruefen($d['bahnlaenge'],'wertemenge','Die Bahnlänge ist ungültig',array_keys($_bahnlaengen));
$f .= pruefen($d['meldeschluss']['datum'],'datum','Das Datum vom Meldeschluss ist ungültig');
$f .= pruefen($d['meldeschluss']['zeit'],'uhrzeit','Die Uhrzeit vom Meldeschluss ist ungültig');
$tmp = $wk->parseMeldegeld($d['meldegeld'],'formular','formular');
if($tmp['einzel']===false or $tmp['staffel']===false or $tmp['wks']===false){
if($tmp['einzel']===false){
$f .= 'Das Meldegeld für den Einzelstart ist ungültig
';
}
if($tmp['staffel']===false){
$f .= 'Das Meldegeld für den Staffelstart ist ungültig
';
}
if($tmp['wks']===false){
$f .= 'Das Meldegeld für einzelne Wettkämpfe ist ungültig
';
}
}
else{
$d['meldegeld'] = $tmp;
}
$f .= pruefen($d['meldeadresse']['email'],'email','Die E-Mailadresse in der Meldeadresse ist ungültig');
$f .= pruefen($d['meldeadresse']['email'],'maxlaenge','Die E-Mailadresse in der Meldeadresse ist zu lang (max 200 Zeichen)',200);
$f .= pruefen($d['meldeadresse']['tel'],'telefon','Die Telefonnummer in der Meldeadresse ist ungültig');
$f .= pruefen($d['meldeadresse']['tel'],'maxlaenge','Die Telefonnummer in der Meldeadresse ist zu lang (max 100 Zeichen)',100);
$f .= pruefen($d['meldeadresse']['fax'],'telefon','Die Faxnummer in der Meldeadresse ist ungültig');
$f .= pruefen($d['meldeadresse']['fax'],'maxlaenge','Die Faxnummer in der Meldeadresse ist zu lang (max 100 Zeichen)',100);
$f .= pruefen($d['meldeadresse']['post'],'maxlaenge','Die Postadresse in der Meldeadresse ist zu lange (max 1000 Zeichen)',1000);
if(isset($_POST['verzeichnisid']) and $_POST['verzeichnisid'] != '-'){
$tmp = $verzeichnisse;
unset($tmp[2]);
$f .= pruefen($_POST['verzeichnisid'],'wertemenge','Das Verzeichnis ist ungültig',array_keys($tmp));
}
$f .= pruefen($_POST['sonstiges'],'maxlaenge','Sonstiges ist zu lang (max 65000 Zeichen)',65000);
if(isset($d['_eigenschaften']['wettkampfart']) and $d['_eigenschaften']['wettkampfart'] != '-'){
$f .= pruefen($d['_eigenschaften']['wettkampfart'],'wertemenge','Die Wettkampfart ist ungültig',array_keys($_wettkampfarten));
}
if(isset($d['_eigenschaften']['pflichtzeiten']) and $d['_eigenschaften']['pflichtzeiten'] != '-'){
$f .= pruefen($d['_eigenschaften']['pflichtzeiten'],'wertemenge','Die Pflichtzeit ist ungültig',array_keys($_pflichtzeiten));
}
if(!empty($f)){
$_tmpl->assign('fehler',$f);
$_tmpl->assign('daten',$_POST['daten']);
}
else{
$d = &$_POST['daten'];
if(!empty($d['meldeschluss']['datum'])){
$uhrzeit = (!empty($d['meldeschluss']['zeit'])?$d['meldeschluss']['zeit']:'00:00').':00';
$meldeschluss = "'".text_format($d['meldeschluss']['datum'],'dbdatum').' '.$uhrzeit."'";
}
else{
$meldeschluss = 'NULL';
}
$bahnlaenge = $d['bahnlaenge']=='x'?'NULL':"'".$d['bahnlaenge']."'";
$verzeichnis = (isset($d['verzeichnisid']) and $d['verzeichnisid'] != '-')?$d['verzeichnisid']:'NULL';
$datum = text_format($d['datum'],'dbdatum');
$meldegeld = $wk->parseMeldegeld($d['meldegeld'],'formular','db');
$meldeadresse = '';
if(!empty($d['meldeadresse']['email'])){
$meldeadresse .= 'email: '.$d['meldeadresse']['email']."\r\n\r\n";
}
if(!empty($d['meldeadresse']['tel'])){
$meldeadresse .= 'tel: '.$d['meldeadresse']['tel']."\r\n\r\n";
}
if(!empty($d['meldeadresse']['fax'])){
$meldeadresse .= 'fax: '.$d['meldeadresse']['fax']."\r\n\r\n";
}
if(!empty($d['meldeadresse']['post'])){
$meldeadresse .= 'post: '.$d['meldeadresse']['post'];
}
$meldeadresse = trim($meldeadresse);
$query = "UPDATE ".DB_PREFIX."wettkaempfe SET
titel = '".text_format($d['titel'],'db')."',
kurztitel = '".text_format($d['kurztitel'],'db')."',
ort = '".text_format($d['ort'],'db')."',
meldeschluss = ".$meldeschluss.",
verzeichnisid = ".$verzeichnis.",
datum = '".$datum."',
bahnlaenge = ".$bahnlaenge.",
meldegeld = '".text_format($meldegeld,'db')."',
meldeadresse = '".text_format($meldeadresse,'db')."',
sonstiges = '".text_format($d['sonstiges'],'db')."'
WHERE id = ".$_GET['id']."";
$_db->fuehreQueryAus($query);
# Eigenschaften
# zu schreibende Eigenschaften
$zuschreibende = array();
# Werte: wettkampfart
foreach($setzbareeigenschaften['werte'] as $wert){
if(!isset($_POST['daten']['_eigenschaften'][$wert])){
continue;
}
switch($wert){
case 'wettkampfart':
if(isset($_POST['daten']['_eigenschaften']['wettkampfart']) and $_POST['daten']['_eigenschaften']['wettkampfart'] != '-'){
$zuschreibende['wettkampfart'] = $_POST['daten']['_eigenschaften']['wettkampfart'];
}
break;
case 'pflichtzeiten':
if(isset($_POST['daten']['_eigenschaften']['pflichtzeiten']) and $_POST['daten']['_eigenschaften']['pflichtzeiten'] != '-'){
$zuschreibende['pflichtzeiten'] = $_POST['daten']['_eigenschaften']['pflichtzeiten'];
}
break;
default:
$zuschreibende[$wert][] = $_POST['daten']['_eigenschaften'][$wert];
break;
}
}
# Flags: wkabwickeln, mannschaftsmeldegeld
foreach($setzbareeigenschaften['flags'] as $flag){
if(isset($_POST['daten']['_eigenschaften'][$flag])){
$zuschreibende[$flag] = 1;
}
}
# vorhandene Eigenschaften holen
if(count($zuschreibende) > 0){ # es gibt was zum Schreiben
$query = "SELECT eigenschaft, wert FROM ".DB_PREFIX."eigenschaften
WHERE artid = ".$_GET['id']." AND art = 'w'";
$_db->holeDaten($query);
$vorhandenewerte = array();
$vorhandeneids = array();
if($_db->ergebnis['anzahl'] > 0){
foreach($_db->ergebnis['daten'] as $row){
if(!isset($vorhandenewerte[$row['eigenschaft']])){
$vorhandenewerte[$row['eigenschaft']] = '';
}
$vorhandenewerte[$row['eigenschaft']] = $row['wert'];
}
}
$querys = array();
$queryanfang = array(
'update' => 'UPDATE '.DB_PREFIX.'eigenschaften SET ',
'insert' => "INSERT INTO ".DB_PREFIX."eigenschaften (art,artid,eigenschaft,wert) VALUES ('w',".$_GET['id'].","
);
$queryende = array(
'update' => " WHERE artid = ".$_GET['id']." AND art = 'w' AND eigenschaft = ",
'insert' => ")"
);
foreach($zuschreibende as $eigenschaft => $wert){
if(isset($vorhandenewerte[$eigenschaft])){
$querys[] = $queryanfang['update']." wert = '".text_format($wert,'db')."'".$queryende['update']."'".$eigenschaft."'";
}
else{
$querys[] = $queryanfang['insert']."'".$eigenschaft."', '".text_format($wert,'db')."'".$queryende['insert'];
}
unset($vorhandenewerte[$eigenschaft]);
}
if(count($vorhandenewerte) > 0){ # restliche Werte loeschen
$querys[] = "DELETE FROM ".DB_PREFIX."eigenschaften
WHERE artid = ".$_GET['id']." AND art = 'w' AND eigenschaft IN ('".implode("', '",array_keys($vorhandenewerte))."')";
}
# gespeicherte Querys an die Datenbank schicken
if(count($querys) > 0){
foreach($querys as $q){
$_db->fuehreQueryAus($q);
}
}
}
else{ # es ist keine setzbare Eigenschaft mehr gesetzt -> evtl. vorhandene Werte loeschen
$eigenschaften = array();
foreach($setzbareeigenschaften['flags'] as $e){
$eigenschaften[] = $e;
}
foreach($setzbareeigenschaften['werte'] as $e){
$eigenschaften[] = $e;
}
$query = "DELETE FROM ".DB_PREFIX."eigenschaften
WHERE artid = ".$_GET['id']." AND art = 'w' AND eigenschaft IN ('".implode("', '",$eigenschaften)."')";
$_db->fuehreQueryAus($query);
}
weiterleiten('/wettkaempfe/?aktion=detail&id='.$_GET['id'],'Der Wettkampf wurde geändert');
}
}
else{
if(!empty($_GET['id']) and !ctype_digit($_GET['id'])){
weiterleiten('/wettkaempfe/');
}
$daten = $wk->holeWettkampfdaten($_GET['id']);
if($daten === false){
weiterleiten('/wettkaempfe/');
}
$daten['bahnlaenge'] = is_null($daten['bahnlaenge'])?'x':$daten['bahnlaenge'];
$daten['meldeschluss'] = array();
$daten['meldeschluss']['datum'] = $daten['meldeschluss_datum'];
$daten['meldeschluss']['zeit'] = $daten['meldeschluss_zeit']=='00:00'?'':$daten['meldeschluss_zeit'];
$daten['meldegeld'] = $daten['meldegeld_formular'];
$query = "SELECT eigenschaft, wert FROM ".DB_PREFIX."eigenschaften
WHERE artid = ".$_GET['id']." AND art = 'w'";
$_db->holeDaten($query);
$daten['_eigenschaften'] = $_db->baueArray('wert','eigenschaft');
$_tmpl->assign('daten',$daten);
}
$verzeichnisse[2] = 'Wettkämpfe';
$_tmpl->assign('_bahnlaengen',$_bahnlaengen);
$_tmpl->assign('verzeichnisse',$verzeichnisse);
$_tmpl->assign('disabled', array(2));
$_tmpl->assign('wettkampfarten',$_wettkampfarten);
$_tmpl->assign('pflichtzeiten',$_pflichtzeiten);
$_tmpl->assign('abschnitte',$wk->holeSelectOptionen('abschnitte',$_GET['id']));
$_tmpl->assign('_art', 'aendern');
$_inh .= $_tmpl->fetch('wettkaempfe/41.wettkampf-formular.inc.html');
} # ende rechte-if, EOF
?>