summaryrefslogtreecommitdiff
path: root/html/app/views
diff options
context:
space:
mode:
Diffstat (limited to 'html/app/views')
-rw-r--r--html/app/views/basic.php50
-rw-r--r--html/app/views/components/breadcrumbs.php30
-rw-r--r--html/app/views/components/header_includes.php23
-rw-r--r--html/app/views/components/top-bar.php17
-rw-r--r--html/app/views/components/user-management.php35
-rw-r--r--html/app/views/error/404.php8
-rw-r--r--html/app/views/error/general.php8
-rw-r--r--html/app/views/group.php5
-rw-r--r--html/app/views/user/login.php8
-rw-r--r--html/app/views/user/new-password.php68
-rw-r--r--html/app/views/user/register.php175
-rw-r--r--html/app/views/welcome.php21
12 files changed, 270 insertions, 178 deletions
diff --git a/html/app/views/basic.php b/html/app/views/basic.php
deleted file mode 100644
index 39bdf00..0000000
--- a/html/app/views/basic.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php ob_start(); ?><!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="utf-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <title>ΣΚΛΑΒΕΝΙΤΗΣ - <?=$page['title']?></title>
-
- <!-- import assets -->
-
- <link rel="preconnect" href="https://fonts.googleapis.com">
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
- <link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@300;400;500;700&display=swap" rel="stylesheet">
-
- <!-- TODO: parse seo data -->
-
-
-</head>
-<body class="homepage" data-plugin-lazyload>
-
- <div class="mainContainer">
-
- <div class="mainLayer"></div>
-
-
- <!-- header -->
- < ?php cache_view('partials/header', []); ? >
- <?php ob_flush(); ?>
-
-
- <!-- main content -->
- <main class="main">
-
- <?php parse_sections( $page['sections'] ); ?>
-
- </main>
- <?php ob_flush(); ?>
-
-
- <!-- footer -->
- < ?php cache_view('partials/footer', [], true) ? >
-
- </div>
-
- <!-- scripts -->
- <?php link_asset('js',
- ['require.files', 'require.slim', 'plugins.min', 'plugins.setup' ]
- ); ?>
-
-</body>
-</html><?php ob_flush(); ?>
diff --git a/html/app/views/components/breadcrumbs.php b/html/app/views/components/breadcrumbs.php
new file mode 100644
index 0000000..471cfb6
--- /dev/null
+++ b/html/app/views/components/breadcrumbs.php
@@ -0,0 +1,30 @@
+<?php
+/** breadcrumbs
+ * -----------------------------------------------------------------------------
+ *
+ * imported variables
+ * ---
+ * @param $id : category_id of last level
+ * @param $title : category title of last level
+ * @param $parents : array of parent nodes
+ * -----------------------------------------------------------------------------
+ */
+?>
+
+<div class="breadcrumb">
+ <!-- home -->
+ <a href="/">Classroom</a>
+
+ <!-- parent nodes -->
+ <?php if ($id != 0) : ?>
+ <?php foreach($parents as $node) : ?>
+ <i class="fas fa-angle-right"></i> <a href="/wiki/category?id=<?=$node['id']?>"><?=$node['title']?></a>
+ <?php endforeach; ?>
+ <?php endif; ?>
+
+ <!-- last (current) node -->
+ <?php if ($id != 0) : ?>
+ <i class="fas fa-angle-right"></i> <a href="/wiki/category?id=<?=$id?>"><?=$title?></a>
+ <?php endif; ?>
+
+</div> \ No newline at end of file
diff --git a/html/app/views/components/header_includes.php b/html/app/views/components/header_includes.php
new file mode 100644
index 0000000..4ee6904
--- /dev/null
+++ b/html/app/views/components/header_includes.php
@@ -0,0 +1,23 @@
+
+<!-- fonts (CDN) -->
+<link rel="preconnect" href="https://fonts.googleapis.com">
+<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@400&display=swap" rel="stylesheet">
+
+<!-- fontawesome icons (CDN) -->
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" integrity="sha512-iecdLmaskl7CVkqkXNQ/ZH/XLlvWZOJyj7Yy7tcenmpD1ypASozpmT/E0iPtmFIB46ZmdtAc9eNBvH0H/ZpiBw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
+
+<!-- bootstap (CDN) -->
+<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous">
+
+<!-- main css -->
+<link href="/assets/css/class.css" rel="stylesheet">
+
+<!-- overides -->
+<link href="/assets/css/overides.css" rel="stylesheet">
+
+<!-- bootstrap javascript (CDN) -->
+<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/js/bootstrap.bundle.min.js" integrity="sha384-qKXV1j0HvMUeCBQ+QVp7JcfGl760yU08IQ+GpUo5hlbpg51QRiuqHAJz8+BrxE/N" crossorigin="anonymous"></script>
+
+<!-- jQuery (CDN) -->
+<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js" integrity="sha512-pumBsjNRGGqkPzKHndZMaAG+bir374sORyzM3uulLV14lN5LyykqNk8eEeUlUkB3U0M4FApyaHraT65ihJhDpQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
diff --git a/html/app/views/components/top-bar.php b/html/app/views/components/top-bar.php
new file mode 100644
index 0000000..ed96e35
--- /dev/null
+++ b/html/app/views/components/top-bar.php
@@ -0,0 +1,17 @@
+<div class="top-bar">
+
+ <?php // breadcrumbs
+ ////////////////////////////////////////////////////////////////////////
+ Render::template("components/breadcrumbs", [
+ 'id' => 0,
+ 'title' => '',
+ 'parents' => []
+ ]);
+ ?>
+
+ <?php // User management drop-down
+ ////////////////////////////////////////////////////////////////////////
+ Render::view('components/user-management');
+ ?>
+
+</div><!-- /top-bar --> \ No newline at end of file
diff --git a/html/app/views/components/user-management.php b/html/app/views/components/user-management.php
index dd38396..02a439e 100644
--- a/html/app/views/components/user-management.php
+++ b/html/app/views/components/user-management.php
@@ -1,33 +1,42 @@
<div class="user">
- <div class="btn-group js-visitor">
+ <div class="dropdown js-visitor">
<button type="button" class="btn btn-default dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
- <i class="fa-regular fa-user"></i>
+ <i class="fa fa-regular fa-user"></i>
Διαχείριση Λογαριασμού
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
- <li><a href="/login">Είσοδος</a></li>
- <li role="separator" class="divider"></li>
- <li><a href="/register">Εγγραφή</a></li>
- <li><a href="/reset-password">Επαναφορά password</a></li>
+ <li><a class="dropdown-item" href="/login">Είσοδος</a></li>
+
+ <li><hr class="dropdown-divider"></li>
+
+ <li><a class="dropdown-item" href="/register">Εγγραφή</a></li>
+ <li><a class="dropdown-item" href="/reset-password">Επαναφορά password</a></li>
</ul>
</div>
- <div class="btn-group js-subscriber">
+ <div class="dropdown js-subscriber">
<button type="button" class="btn btn-default dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
Διαχείριση Λογαριασμού <span class="caret"></span>
</button>
<ul class="dropdown-menu">
- <li><a href="/profile">Διαχείριση Προφίλ</a></li>
- <li><a href="/courses">Ύλη μαθημάτων</a></li>
- <li><a href="/payments">Πληρωμές</a></li>
- <li role="separator" class="divider"></li>
- <li><a href="/logout">Έξοδος</a></li>
+ <li><a class="dropdown-item" href="/profile">Διαχείριση Προφίλ</a></li>
+ <li><a class="dropdown-item" href="/courses">Ύλη μαθημάτων</a></li>
+ <li><a class="dropdown-item" href="/payments">Πληρωμές</a></li>
+
+ <li><hr class="dropdown-divider"></li>
+
+ <li><a class="dropdown-item" href="/logout">Έξοδος</a></li>
</ul>
</div>
</div>
-
+<script>
+ // default: hide subscriber's menu
+ [].forEach.call(document.querySelectorAll('.js-subscriber'), function (el) {
+ el.style.display = 'none';
+ });
+</script>
diff --git a/html/app/views/error/404.php b/html/app/views/error/404.php
index f594860..2b67e8d 100644
--- a/html/app/views/error/404.php
+++ b/html/app/views/error/404.php
@@ -1,7 +1,7 @@
-<html>
- <head>
- <meta name="viewport" content="width=device-width, initial-scale=1" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
<title>404: Not Found</title>
<style>
diff --git a/html/app/views/error/general.php b/html/app/views/error/general.php
index d6649de..84cc4d9 100644
--- a/html/app/views/error/general.php
+++ b/html/app/views/error/general.php
@@ -1,7 +1,7 @@
-<html>
- <head>
- <meta name="viewport" content="width=device-width, initial-scale=1" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
<title>404: Not Found</title>
<style>
diff --git a/html/app/views/group.php b/html/app/views/group.php
index fddd3d2..5d5dea0 100644
--- a/html/app/views/group.php
+++ b/html/app/views/group.php
@@ -1,8 +1,3 @@
-<img src="https://cdn.sklavenitis.co.gr/uploads/products/1180106.jpg">
-<!--
-<img src="https://s1.sklavenitis.gr/images/1600x1600/40/files/ProductMedia/Products/1222798/1.jpg" style="max-height:240px;"> -->
-<img src="https://s1.sklavenitis.gr/images/ProductDetail/40/files/ProductMedia/Products/1222798/1.jpg">
-
<section>
<div style="padding: 1em">
diff --git a/html/app/views/user/login.php b/html/app/views/user/login.php
index 2cf3290..4451d52 100644
--- a/html/app/views/user/login.php
+++ b/html/app/views/user/login.php
@@ -1,7 +1,7 @@
-<html>
+<!DOCTYPE html>
+<html lang="en">
<head>
- <meta name="viewport" content="width=device-width, initial-scale=1" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <meta charset="utf-8">
<title><?=SITE_TITLE?> - Είσοδος Χρήστη</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
@@ -12,6 +12,8 @@
<link href="/assets/css/overides.css" rel="stylesheet">
+ <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/js/bootstrap.bundle.min.js" integrity="sha384-qKXV1j0HvMUeCBQ+QVp7JcfGl760yU08IQ+GpUo5hlbpg51QRiuqHAJz8+BrxE/N" crossorigin="anonymous"></script>
+
<style>
html,body{
padding:0; margin:0;
diff --git a/html/app/views/user/new-password.php b/html/app/views/user/new-password.php
index 955cffb..06e7fac 100644
--- a/html/app/views/user/new-password.php
+++ b/html/app/views/user/new-password.php
@@ -1,42 +1,42 @@
-<html>
+<!DOCTYPE html>
+<html lang="en">
<head>
- <meta name="viewport" content="width=device-width, initial-scale=1" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title><?=SITE_TITLE?> - Επαναφορά κωδικού πρόσβασης</title>
+ <meta charset="utf-8">
+ <title><?=SITE_TITLE?> - Επαναφορά κωδικού πρόσβασης</title>
- <link rel="preconnect" href="https://fonts.googleapis.com">
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
- <link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@400&display=swap" rel="stylesheet">
+ <link rel="preconnect" href="https://fonts.googleapis.com">
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+ <link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@400&display=swap" rel="stylesheet">
- <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous">
+ <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous">
- <link href="/assets/css/overides.css" rel="stylesheet">
+ <link href="/assets/css/overides.css" rel="stylesheet">
- <style>
- html,body{
- padding:0; margin:0;
- font-size:1.25em;
- color: #037; background: #eee;
- line-height:1.2em;
- }
- h3 {
- font-size: 2em; font-style: normal;
- font-weight: 400;
- color: #05a;
- margin: 0; padding: 5px;
- opacity: 0.27;
- border-bottom: 1px solid #05a;
- }
- .container { display: flex; height: 100vh; align-items:center; }
- .content { position: relative;
- max-width:480px; width: 100%;
- margin: auto auto; padding: 1.5em;
- justify-center: center;
- background: #ddd;
- border-radius: 8px;
- box-shadow: 1px 5px 7px #7777;
- }
- </style>
+ <style>
+ html,body{
+ padding:0; margin:0;
+ font-size:1.25em;
+ color: #037; background: #eee;
+ line-height:1.2em;
+ }
+ h3 {
+ font-size: 2em; font-style: normal;
+ font-weight: 400;
+ color: #05a;
+ margin: 0; padding: 5px;
+ opacity: 0.27;
+ border-bottom: 1px solid #05a;
+ }
+ .container { display: flex; height: 100vh; align-items:center; }
+ .content { position: relative;
+ max-width:480px; width: 100%;
+ margin: auto auto; padding: 1.5em;
+ justify-center: center;
+ background: #ddd;
+ border-radius: 8px;
+ box-shadow: 1px 5px 7px #7777;
+ }
+ </style>
</head>
<body class="classroom">
<div class='container'>
diff --git a/html/app/views/user/register.php b/html/app/views/user/register.php
index 97724a6..591dcb7 100644
--- a/html/app/views/user/register.php
+++ b/html/app/views/user/register.php
@@ -1,75 +1,120 @@
-<html>
+<!DOCTYPE html>
+<html lang="en">
<head>
- <meta name="viewport" content="width=device-width, initial-scale=1" />
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title><?=SITE_TITLE?> - Εγγραφή</title>
+ <meta charset="utf-8">
+ <title><?=SITE_TITLE?> - Εγγραφή</title>
- <link rel="preconnect" href="https://fonts.googleapis.com">
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
- <link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:wght@400&display=swap" rel="stylesheet">
+ <?php // header includes
+ ////////////////////////////////////////////////////////////////////////
+ Render::view('components/header_includes');
+ ?>
- <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-aFq/bzH65dt+w6FI2ooMVUpc+21e0SRygnTpmBvdBgSdnuTN7QbdgL+OapgHtvPp" crossorigin="anonymous">
-
- <link href="/assets/css/overides.css" rel="stylesheet">
-
- <style>
- html,body{
- padding:0; margin:0;
- font-size:1.25em;
- color: #037; background: #eee;
- line-height:1.2em;
- }
- h3 {
- font-size: 2em; font-style: normal;
- font-weight: 400;
- color: #05a;
- margin: 0; padding: 5px;
- opacity: 0.27;
- border-bottom: 1px solid #05a;
- }
- .container { display: flex; height: 100vh; align-items:center; }
- .content { position: relative;
- max-width:480px; width: 100%;
- margin: auto auto; padding: 1.5em;
- justify-center: center;
- background: #ddd;
- border-radius: 8px;
- box-shadow: 1px 5px 7px #7777;
- }
- </style>
+ <style>
+ html,body{
+ padding:0; margin:0;
+ font-size:1.25em;
+ color: #037; background: #eee;
+ line-height:1.2em;
+ }
+ h3 {
+ font-size: 2em; font-style: normal;
+ font-weight: 400;
+ color: #05a;
+ margin: 0; padding: 5px;
+ opacity: 0.27;
+ border-bottom: 1px solid #05a;
+ }
+ .container { display: flex; height: 100vh; align-items:center; }
+ .content { position: relative;
+ max-width:480px; width: 100%;
+ margin: auto auto; padding: .5em;
+ justify-center: center;
+ font-size: .9em;
+ }
+ .content-form {
+ padding: 1.5em;
+ background: #ddd;
+ border-radius: 8px;
+ box-shadow: 1px 5px 7px #7777;
+ }
+ .content .info { padding: 1.5em; font-size: .92em; }
+ .content .info p { padding: .5em; }
+ .form-label { margin-bottom: .25rem; }
+ </style>
</head>
<body class="classroom">
<div class='container'>
- <div class='content'>
- <h4>Εγγραφή</h4>
- <hr />
- <form method="post" action="/login-check">
- <div>
- <div class="mb-3">
- <label for="name" class="form-label">Όνομα</label>
- <input type="text" class="form-control form-control-sm" name="name" required>
- </div>
- <div class="mb-3">
- <label for="surname" class="form-label">Επίθετο</label>
- <input type="text" class="form-control form-control-sm" name="surname" required>
- </div>
- <div class="mb-3">
- <label for="exampleInputEmail1" class="form-label">Email</label>
- <input type="email" class="form-control form-control-sm" name="email" aria-describedby="emailHelp" rerquired>
- </div>
- <div class="mb-3">
- <label for="exampleInputPassword1" class="form-label">Κωδικός Πρόσβασης</label>
- <input type="password" class="form-control form-control-sm" name="password" required>
- </div>
- <div class="mb-3">
- <label for="exampleInputPassword2" class="form-label">Επιβεβαίωση Κωδικού Πρόσβασης</label>
- <input type="password" class="form-control form-control-sm" name="password2" required>
- </div>
- <br />
- <button type="submit" class="btn btn-primary btn-sm col-12">Εγγραφή</button>
- </div>
- </form>
+ <div class="content">
+ <div class="info">
+ <h4>Classroom: Εγγραφή</h4>
+ </div>
+ <div class='content-form'>
+ <form method="post">
+ <div>
+ <div class="mb-3">
+ <label for="name" class="form-label">Όνομα</label>
+ <input type="text" class="form-control form-control-sm" name="name" required>
+ </div>
+ <div class="mb-3">
+ <label for="surname" class="form-label">Επίθετο</label>
+ <input type="text" class="form-control form-control-sm" name="surname" required>
+ </div>
+ <div class="mb-3">
+ <label for="exampleInputEmail1" class="form-label">Email</label>
+ <input type="email" class="form-control form-control-sm" name="email" aria-describedby="emailHelp" rerquired>
+ </div>
+ <div class="mb-3">
+ <label for="exampleInputPassword1" class="form-label">Κωδικός Πρόσβασης</label>
+ <input type="password" class="form-control form-control-sm" name="password" required>
+ </div>
+ <div class="mb-3">
+ <label for="exampleInputPassword2" class="form-label">Επιβεβαίωση Κωδικού Πρόσβασης</label>
+ <input type="password" class="form-control form-control-sm" name="password2" required>
+ </div>
+ <br />
+ <button type="submit" class="btn btn-primary btn-sm col-12">Εγγραφή</button>
+ </div>
+ </form>
+ </div>
+ <div class="info">
+ <p>Αν έχετε ήδη λογαρισμό <a href="/login">συνδεθείτε</a>.</p>
+ <p>Σε κάθε περίπτωση μπορείτε να επιστρέψετε στην <a href="/">αρχική σελίδα</a>.</p>
+ </div>
</div>
</div>
</body>
+
+<script>
+ // When form is submited
+ // -------------------------------------------------------------------------
+
+ $('.content-form form').submit( event => {
+ event.preventDefault();
+
+ if ($('input[name=password]').val() != $('input[name=password2]').val()) {
+ alert('Τα δυο passrods δεν ταιριάζουν!');
+
+ } else {
+
+ // prepare data to POST
+ var data = {
+ name: $('input[name=name]').val(),
+ surname: $('input[name=surname]').val(),
+ email: $('input[name=email]').val(),
+ password: $('input[name=password]').val()
+ };
+
+ // select action url (add or update)
+ var request = '/xml/register';
+
+ // send POST request
+ $.post(request, data)
+ .done(function( data ) {
+ console.log(data);
+ });
+ }
+
+ });
+</script>
+
</html>
diff --git a/html/app/views/welcome.php b/html/app/views/welcome.php
new file mode 100644
index 0000000..11dd6c6
--- /dev/null
+++ b/html/app/views/welcome.php
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title><?=SITE_TITLE?> - Welcome!</title>
+
+ <?php // header includes
+ ////////////////////////////////////////////////////////////////////////
+ Render::view('components/header_includes');
+ ?>
+
+</head>
+<body class='classroom'>
+
+ <?php // top-bar
+ ////////////////////////////////////////////////////////////////////////
+ Render::view('components/top-bar');
+ ?>
+
+</body>
+</html> \ No newline at end of file