diff --git a/web/pages/profile/controller.php b/web/pages/profile/controller.php new file mode 100644 index 0000000..a76b386 --- /dev/null +++ b/web/pages/profile/controller.php @@ -0,0 +1,178 @@ + 0) + { + $this->addSubmenuItem('Mein Profil','/profile','fa-regular fa-id-badge'); + } + } + + function index() { + $user = $_SESSION['user']; + + } + + function delete(){ + $dogid = $this->params[0]; + $d = new Dog(); + + if(!$d->isMyDog($dogid)) + return 'Not your dog :('; + + $d->load($dogid); + $d->delete(); + + $_SESSION['user']->removeDog($dogid); + $this->redirect('/'); + } + + function edit() { + if($_REQUEST['submit']) + { + $id = $_REQUEST['dog_id']; + $name = $_REQUEST['name']; + $kennel_name = $_REQUEST['kennel_name']; + $dog_breed = $_REQUEST['dog_breed']; + $dog_size = intval($_REQUEST['dog_size']); + $dog_birthday = $_REQUEST['dog_birthday']; + $agi_height_category = $_REQUEST['agi_height_category']; + $newphoto = false; + $active = intval($_REQUEST['agi_active']); + + if($_FILES['photo']) + { + $photo = $_FILES['photo']; + $photo_name = $photo['name']; + $photo_tmp_name = $photo['tmp_name']; + $photo_size = $photo['size']; + $photo_error = $photo['error']; + $photo_type = $photo['type']; + + $allowed = ['jpg','jpeg','png','gif']; + $photo_ext = strtolower(end(explode('.', $photo_name))); + $photo_name = $name.'.'.$photo_ext; + $photo_path = 'uploads/'.$photo_name; + + if(in_array($photo_ext, $allowed)) + { + if($photo_error === 0) + { + if($photo_size < 10000000) + { + $answer = pictshareUploadImage($photo_tmp_name); + if($answer['status']=='ok' && in_array($answer['filetype'],['jpeg','png','gif'])) + $newphoto = $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 || !$dog_birthday ) + $error = 'Bitte zumindest Name und Geburtsdatum angeben'; + else if(!strtotime($dog_birthday)) + $error = 'Das Geburstdatum ist ungültig. Bitte die Eingabe prüfen'; + + if($error){ + $this->set('errorMessage', $error); + $this->set('template', '/templates/partials/error.html'); + return; + } + else + { + $dog = new Dog(); + if($id) + $dog->load($id); + + $dog->name = $name; + $dog->kennel_name = $kennel_name; + $dog->breed = $dog_breed; + $dog->size = $dog_size; + $dog->birthday = $dog_birthday; + $dog->agility_size = $agi_height_category; + $dog->active = $active; + if($newphoto) + $dog->photo = $newphoto; + + try + { + $dogid = $dog->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['dogs']) || !in_array($dogid, $_SESSION['user']->data['dogs'])) // new dog! + { + $_SESSION['user']->data['dogs'][] = $dogid; + 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('/dogs'); + } + else + { + $this->set('template', '/templates/partials/success.html'); + $this->set('successMessage', "Daten erfolgreich gespeichert"); + return; + } + + } + } + else + { + //checken ob der den hund eh bearbeiten darf + $id = $this->params[0]; + $dog = new Dog(); + $dog->load($id); + $this->set('dogdata',$dog->data); + $this->set('dogid',$dog->id); + $this->set('template', 'edit.html'); + } + } + + function overview() + { + $dogid = $this->params[0]; + $d = new Dog(); + + if(!$d->isMyDog($dogid)) + return 'Not your dog :('; + + $d->load($dogid); + $this->set('dogdata', $d->data); + $this->set('dogid', $dogid); + $this->set('template', 'dog.html'); + } + + function maySeeThisPage() { + if($_SESSION['user']) //wenn eingeloggt, kein problem + return true; + else return false; + } + +} \ No newline at end of file diff --git a/web/pages/profile/edit_profile.html b/web/pages/profile/edit_profile.html new file mode 100644 index 0000000..2b65519 --- /dev/null +++ b/web/pages/profile/edit_profile.html @@ -0,0 +1,40 @@ +
+

Hund

+ +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+
+ + \ No newline at end of file diff --git a/web/pages/profile/profile.html b/web/pages/profile/profile.html new file mode 100644 index 0000000..4716d06 --- /dev/null +++ b/web/pages/profile/profile.html @@ -0,0 +1,29 @@ + + +
+

Profil

+
+
+ <?= escape($user['name']); ?>'s profile Picture +
+ +
+

+
+

Alter: y ?>

+

Rasse:

+

Zuchtname:

+
+ +
+ +
+
+
+ +
+
+
+