menu_text = 'Turniere'; $this->menu_image = 'far fa-medal'; $this->menu_priority = 1; } function setSubmenu() { $this->addSubmenuItem('Übersicht','/tournaments','far fa-list-alt'); $this->addSubmenuItem('Turnier anlegen','/tournaments/add','fas fa-calendar-plus'); if($_SESSION['user']->data['tournaments'] && count($_SESSION['user']->data['tournaments']) > 0) { $this->addSubmenuItem('divider'); foreach($_SESSION['user']->data['tournaments'] as $tid) { $t = new Tournament(); $t->load($tid); $this->addSubmenuItem($t->data['name'],'/tournaments/event/'.$tid,'fas fa-dog'); } } } function add() { $this->set('template','edit_tournament.html'); } function index() { } function manage() { $action = $this->params[0]; $tid = $this->params[1]; $t = new Tournament(); if($t->exists($tid)) $t->load($tid); else return partial('error.html', ['errorTitle' => 'Error', 'errorMessage' => 'Dieses Turnier existiert nicht']); switch($action) { case 'join': if(in_array($tid, $_SESSION['user']->data['tournaments'])) return partial('error.html', ['errorTitle' => 'Error', 'errorMessage' => 'Du bist bereits für dieses Turnier angemeldet']); else { $t->joinUser($tid); return partial('success.html', ['successTitle' => 'Erfolgreich', 'successMessage' => 'Du wurdest erfolgreich für dieses Turnier angemeldet']); } case 'leave': if(!in_array($tid, $_SESSION['user']->data['tournaments'])) return partial('error.html', ['errorTitle' => 'Error', 'errorMessage' => 'Du bist für dieses Turnier nicht angemeldet']); else { $t->removeUser($tid); return partial('success.html', ['successTitle' => 'Erfolgreich', 'successMessage' => 'Du wurdest erfolgreich für dieses Turnier abgemeldet']); } } } function leave() { } function event() { $tid = $this->params[0]; $t = new Tournament(); if($t->exists($tid)) $t->load($tid); else return partial('error.html', ['errorTitle' => 'Error', 'errorMessage' => 'Dieses Turnier existiert nicht']); $this->set('admin',$t->amIAdmin($tid)); $this->set('joined',$t->isMyEvent($tid)); $this->set('tournament_id',$tid); $this->set('admins',$t->getAdmins($tid)); $this->set('members',$t->getMembers($tid)); $this->set('tdata',$t->data); $this->set('template','event.html'); } function edit() { if($_REQUEST['submit']) { $id = $_REQUEST['tournament_id']; $name = $_REQUEST['tournament_name']; $date = $_REQUEST['tournament_date']; $tournament_referee = $_REQUEST['tournament_referee']; $tournament_duration = intval($_REQUEST['tournament_duration']); $tournament_url = $_REQUEST['tournament_url']; $tournament_text = $_REQUEST['tournament_text']; $newlogo = false; if($_FILES['logo']) { $logo = $_FILES['logo']; $logo_name = $logo['name']; $logo_tmp_name = $logo['tmp_name']; $logo_size = $logo['size']; $logo_error = $logo['error']; $logo_type = $logo['type']; $allowed = ['jpg','jpeg','png','gif']; $logo_ext = strtolower(end(explode('.', $logo_name))); $logo_name = $name.'.'.$logo_ext; $logo_path = 'uploads/'.$logo_name; if(in_array($logo_ext, $allowed)) { if($logo_error === 0) { if($logo_size < 10000000) { $answer = pictshareUploadImage($logo_tmp_name); if($answer['status']=='ok' && in_array($answer['filetype'],['jpeg','png','gif'])) $newlogo = $answer['url']; } else return partial('error.html', ['errorTitle' => 'Error', 'errorMessage' => 'Die Datei ist zu groß. Bitte eine kleinere Datei hochladen']); } else return partial('error.html', ['errorTitle' => 'Error', 'errorMessage' => 'Beim Upload der Datei ist ein Fehler aufgetreten']); } else return partial('error.html', ['errorTitle' => 'Error', 'errorMessage' => 'Dieser Dateityp ist nicht erlaubt. Bitte nur jpg, jpeg oder png Dateien hochladen']); } $error = false; if(!$name || !$date ) $error = 'Bitte zumindest Name und Datum angeben'; else if(!strtotime($date)) $error = 'Das Datumm ist ungültig. Bitte die Eingabe prüfen'; if($error){ $this->set('errorMessage', $error); $this->set('template', '/templates/partials/error.html'); return; } else { $t = new Tournament(); if($id) { if(!in_array($_SESSION['user']->id, $t->data['admins'])) return partial('error.html', ['errorTitle' => 'Error', 'errorMessage' => 'Du bist nicht berechtigt, dieses Turnier zu bearbeiten']); else $t->load($id); } $t->name = $name; $t->date = $date; $t->duration = $tournament_duration; $t->referee = $tournament_referee; $t->text = $tournament_text; $t->url = $tournament_url; if(!$t->data['admins'] || !is_array($t->data['admins'] || count($t->data['admins']) == 0)) $t->data['admins'] = []; if(!in_array($_SESSION['user']->id, $t->data['admins'])) $t->data['admins'][] = $_SESSION['user']->id; if($newlogo) $t->logo = $newlogo; try { $tid = $t->save(); } catch(Exception $e) { $this->set('template', '/templates/partials/error.html'); $this->set('errorTitle', 'Error'); $this->set('errorMessage', $e->getMessage()); return; } //var_dump($_SESSION['user']->data['dogs']); if(!is_array($_SESSION['user']->data['tournaments']) || !in_array($tid, $_SESSION['user']->data['tournaments'])) // new t! { $_SESSION['user']->data['tournaments'][] = $tid; try { $_SESSION['user']->save(); } catch(Exception $e) { $this->set('template', '/templates/partials/error.html'); $this->set('errorTitle', 'Error'); $this->set('errorMessage', $e->getMessage()); return; } $this->redirect('/tournaments/event/'.$tid); } else { $this->set('template', '/templates/partials/success.html'); $this->set('successMessage', "Daten erfolgreich gespeichert"); return; } } } else { $id = $this->params[0]; $t = new Tournament(); $t->load($id); $this->set('tournamentdata',$t->data); $this->set('tournamentid',$t->id); $this->set('template', 'edit_tournament.html'); } } function maySeeThisPage() { if($_SESSION['user']) //wenn eingeloggt, kein problem return true; else return false; } }