diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 2ab874c..bd6b5c0 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,12 +1,11 @@ { "recommendations": [ - "zarifprogrammer.tailwind-snippets", - "dawhite.mustache", "otovo-oss.htmx-tags", "devsense.phptools-vscode", "bmewburn.vscode-intelephense-client", "github.copilot", "github.copilot-chat", - "bradlc.vscode-tailwindcss" + "anbuselvanrocky.bootstrap5-vscode", + "hansuxdev.bootstrap5-snippets" ] } \ No newline at end of file diff --git a/web/inc/classes/Page.class.php b/web/inc/classes/Page.class.php index 68f0e49..f90e185 100644 --- a/web/inc/classes/Page.class.php +++ b/web/inc/classes/Page.class.php @@ -18,6 +18,7 @@ class Page public $menu_text; public $menu_image; public $menu_priority; + public $menu_classes; public $submenu; private $r; diff --git a/web/inc/core.php b/web/inc/core.php index 1eddbe5..980443a 100644 --- a/web/inc/core.php +++ b/web/inc/core.php @@ -118,7 +118,7 @@ function getMenu() { while($arr[$menu_priority]) $menu_priority++; - $arr[$menu_priority] = array('text'=>$menu_text,'image'=>$instance->menu_image, 'url'=>$file,'menu_class'=>$instance->menu_class,'submenu'=>$instance->submenu); + $arr[$menu_priority] = array('text'=>$menu_text,'image'=>$instance->menu_image, 'url'=>$file,'menu_classes'=>$instance->menu_classes,'submenu'=>$instance->submenu); } } } diff --git a/web/pages/admin/edituser.html b/web/pages/admin/edituser.html index 0404e31..c07bd74 100644 --- a/web/pages/admin/edituser.html +++ b/web/pages/admin/edituser.html @@ -28,7 +28,7 @@
- +
diff --git a/web/pages/demo/controller.php b/web/pages/demo/controller.php new file mode 100644 index 0000000..ef351ec --- /dev/null +++ b/web/pages/demo/controller.php @@ -0,0 +1,27 @@ +menu_text = 'Demo'; + $this->menu_image = 'fas fa-do'; + $this->menu_priority = 5; + } + + function setSubmenu() + { + //$this->addSubmenuItem('Hunde anzeigen','/dogs','far fa-list-alt'); + //$this->addSubmenuItem('Hund hinzufügen','/dogs/add','fas fa-plus-circle'); + } + + function index() + { + $this->set('successTitle','Erfolgreich'); + $this->set('successMessage','Text davon'); + + $this->set('errorMessage','Fehler ohne Titel'); + + $this->set('template','demo.html'); + } +} \ No newline at end of file diff --git a/web/pages/demo/demo.html b/web/pages/demo/demo.html new file mode 100644 index 0000000..4e0e7da --- /dev/null +++ b/web/pages/demo/demo.html @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/web/pages/login/controller.php b/web/pages/login/controller.php index 6e67328..242edf4 100644 --- a/web/pages/login/controller.php +++ b/web/pages/login/controller.php @@ -5,7 +5,9 @@ class Login extends Page { function setMenu() { if($_SESSION['user']) + { $this->menu_text = $_SESSION['userid']; + } else $this->menu_text = 'Login'; $this->menu_image = 'far fa-user'; @@ -25,7 +27,7 @@ class Login extends Page { function index() { - $this->set('hello','world'); + $this->set('template', 'login.html'); //return print_r($_REQUEST, true); } @@ -47,11 +49,48 @@ class Login extends Page { function validate() { - $email = $_REQUEST['email']; - $password = $_REQUEST['password']; + $email = trim($_REQUEST['email']); + $password = trim($_REQUEST['password']); $remember = $_REQUEST['remember']; - return print_r(['email'=>$email,'password'=>$password,'remember'=>$remember], true); + $error = false; + + $u = new User(); + + if(!$email || !$password) + $error = 'Bitte gib deine E-Mail-Adresse und dein Passwort ein'; + else if(!filter_var($email, FILTER_VALIDATE_EMAIL)) + $error = 'Bitte gib eine gültige E-Mail-Adresse ein'; + else if(!$u->exists($email)) + $error = 'Benutzer nicht gefunden. Schon registriert?'; + else { + + try{ + $u->load($email); + } + catch(Exception $e){ + $error = $e->getMessage(); + } + if(!password_verify($password, $u->data['password'])) + $error = 'E-Mail-Adresse oder Passwort falsch'; + else if($u->data['active'] == 0) + $error = 'Dein Account ist noch nicht aktiviert'; + else + { + $u->login(); + $this->redirect('/'); + } + } + + if($error) + { + $this->set('template', '/templates/partials/error.html'); + $this->set('errorTitle', 'Error'); + $this->set('errorMessage', $error); + } + + + //return print_r(['email'=>$email,'password'=>$password,'remember'=>$remember], true); } } \ No newline at end of file diff --git a/web/pages/login/login.html b/web/pages/login/login.html index 29e2cd8..2af7ce2 100644 --- a/web/pages/login/login.html +++ b/web/pages/login/login.html @@ -1,39 +1,20 @@ -
-
-
-

- Sign in to your account -

-
- -
-
-
- - -
-
- - -
-
-
-
- -
-
- -
-
- Forgot password? -
- -

- Don’t have an account yet? Sign up -

-
-
+
+
+
+ + + We'll never share your email with anyone else.
-
+
+ + +
+
+ + +
+ +

+ Don't have an account yet? Sign up +

+ diff --git a/web/pages/register/register.html b/web/pages/register/register.html index 200a2c4..1475aaf 100644 --- a/web/pages/register/register.html +++ b/web/pages/register/register.html @@ -1,28 +1,19 @@ -
-
-
-

- Register -

-
-
-
- - -
-
- - -
-
- - -
- - -
-
+

Registrieren

+ +
+
+
+ + + We'll never share your email with anyone else.
-
+
+ + +
+
+ + +
+ + diff --git a/web/templates/mainpage.html b/web/templates/mainpage.html index 8df47f4..0973672 100644 --- a/web/templates/mainpage.html +++ b/web/templates/mainpage.html @@ -15,8 +15,8 @@ -
- +
+
diff --git a/web/templates/menu.html b/web/templates/menu.html index 6eb6b21..bb15fc4 100644 --- a/web/templates/menu.html +++ b/web/templates/menu.html @@ -15,7 +15,7 @@