Compare commits

..

67 Commits

Author SHA1 Message Date
NOrtmann1 d28560b77e Update createArticle-controller.php 2026-05-26 18:45:12 +02:00
NOrtmann1 ee6dd0ddae Update index-controller.php 2026-05-26 18:45:10 +02:00
NOrtmann1 feb64eb769 Update index-controller.php 2026-05-26 18:42:16 +02:00
NOrtmann1 ecc76e453e Update createArticle.php 2026-05-26 18:39:23 +02:00
NOrtmann1 949ca542ab $abs_path 2026-05-26 18:37:56 +02:00
NOrtmann1 b090195d9f Update article.css 2026-05-26 18:30:27 +02:00
NOrtmann1 1f1e7dc814 Update createArticle.php 2026-05-26 18:29:41 +02:00
NOrtmann1 3606a750be refactoring 2026-05-26 18:15:28 +02:00
NOrtmann1 8762bc1b07 refactoring 2026-05-26 18:06:44 +02:00
NOrtmann1 c7f279b7e9 Update createArticle-controller.php 2026-05-26 17:53:51 +02:00
NOrtmann1 92f1f077d2 refactoring 2026-05-26 17:48:50 +02:00
NOrtmann1 50120f974d Update index.php 2026-05-26 17:45:30 +02:00
NOrtmann1 713a258d48 Update FileDatabase.php 2026-05-26 17:45:06 +02:00
NOrtmann1 0a7e6df734 Update index-controller.php 2026-05-26 17:44:14 +02:00
NOrtmann1 8c769ba280 create-Article-controller Implementation 2026-05-26 17:43:07 +02:00
NOrtmann1 5bcb64f7f8 Database-(Brücken)-Klasse 2026-05-26 17:03:50 +02:00
NOrtmann1 944f40d89f Artikel-Klasse + FileDatabase - Klasse 2026-05-26 15:41:05 +02:00
NOrtmann1 b15421efee refactoring 2026-05-26 15:01:17 +02:00
NOrtmann1 2044853f94 Update navbar.php 2026-05-26 11:15:20 +02:00
NOrtmann1 9a3e4cc7dc Update navbar.php 2026-05-26 11:08:43 +02:00
NOrtmann1 f508a222c6 mobile-nav- "Beitrag erstellen" Button 2026-05-26 11:07:34 +02:00
NOrtmann1 365f37dcea responsive Design für Smartphones 2026-05-26 10:47:03 +02:00
NOrtmann1 2472143146 Update createArticle.php 2026-05-26 10:42:32 +02:00
NOrtmann1 a1184299b1 erste article-Implementation
article-Interface & -Klasse
+ createArticle.php mit article.css (Editor)
+ neuer "Beitrag erstellen"-Button in Navbar
2026-05-26 10:36:56 +02:00
NOrtmann1 c41302d046 Klassen article und articleDAO 2026-05-22 17:09:20 +02:00
niklas.ortmann aaefd2917e Create article.php 2026-05-22 14:26:35 +02:00
NOrtmann1 ee7986bef3 Update index.php 2026-05-21 21:03:38 +02:00
NOrtmann1 8de1b1bdb5 Update index.php 2026-05-21 21:02:46 +02:00
NOrtmann1 4a663391ef Update navbar.css 2026-05-21 21:00:20 +02:00
niklas.ortmann 4cd877ea4c Merge pull request 'PHP: Dynamischer Content' (#8) from PHP_DynamischerContent into dev
Reviewed-on: #8
2026-05-21 20:57:26 +02:00
NOrtmann1 0f573d30ae linkanpassungen 2026-05-21 17:36:18 +02:00
NOrtmann1 fdd56c10b8 Update home.php 2026-05-21 17:33:42 +02:00
NOrtmann1 46daf72a14 Update index.php 2026-05-21 17:32:43 +02:00
NOrtmann1 896e6abcd8 login & register -> /content/ 2026-05-21 17:31:45 +02:00
NOrtmann1 95e5cf0908 navbar linkanpassungen 2026-05-21 17:30:07 +02:00
NOrtmann1 be35a00cef Dateien in richtige Ordner + statische HTML vom content entfernt 2026-05-21 17:19:40 +02:00
NOrtmann1 b616251511 dynamic content test
profil wird dynamisch in die index.php integriert (Test)
2026-05-21 17:13:52 +02:00
NOrtmann1 3f5313dd00 Update 404.php 2026-05-19 14:49:06 +02:00
NOrtmann1 f909d0453b Update 404.php 2026-05-13 22:55:47 +02:00
NOrtmann1 d5f4f2b8a5 Update main.css 2026-05-13 22:53:32 +02:00
niklas.ortmann 87a8e9b7d2 Merge pull request 'designcss2 zu dev' (#7) from designcss2 into dev
Reviewed-on: #7
2026-05-13 22:50:24 +02:00
NOrtmann1 729b0f08a1 Update main.css 2026-05-13 22:49:57 +02:00
NOrtmann1 2907bcdd67 Update home.php 2026-05-13 22:44:23 +02:00
NOrtmann1 65935c644b Update profile.php 2026-05-13 22:09:59 +02:00
NOrtmann1 8645900035 Update profile.php 2026-05-13 22:09:25 +02:00
NOrtmann1 49a8d49296 logo aus login und register entfernt 2026-05-13 21:53:59 +02:00
NOrtmann1 bc1051e4a2 Update register.php 2026-05-13 21:50:06 +02:00
NOrtmann1 d8f8fbbdd4 Update login.php 2026-05-13 21:48:35 +02:00
NOrtmann1 baf3f88e1e Update login.php 2026-05-13 21:47:51 +02:00
NOrtmann1 480b6cd4ae Update 404.php 2026-05-13 18:43:35 +02:00
NOrtmann1 29b588babb testing... 2026-05-13 18:41:29 +02:00
NOrtmann1 a29e48efad Update main.css 2026-05-13 18:11:03 +02:00
NOrtmann1 84a9f7063a Merge branch 'navbar' into dev 2026-05-13 18:08:42 +02:00
niklas.ortmann 58f7be9d52 Merge pull request 'Last Implementation' (#6) from designcss into dev
Reviewed-on: #6
2026-05-13 18:00:19 +02:00
caroschulte02-alt d497ea4fc3 First Implementation 2026-05-13 16:29:31 +02:00
caroschulte02-alt 80316e080a First Implementation 2026-05-13 16:18:12 +02:00
viratex bf06df461d Merge pull request 'Home, sowie Login und Register Website haben nun CSS implementiert' (#5) from responsiveCSS into dev
Reviewed-on: #5
2026-05-13 15:14:37 +02:00
viratex 503df76d6b Merge branch 'dev' into responsiveCSS 2026-05-13 15:13:22 +02:00
rirat-0 829d532518 font weight anpassung 2026-05-13 14:31:14 +02:00
rirat-0 33b0283758 update der register seite 2026-05-13 13:27:23 +02:00
rirat-0 6abc244be7 anpassung der login seite und main css fuer accessibility 2026-05-13 12:48:35 +02:00
rirat-0 012e3b8b9b update css fuer login seite 2026-05-13 12:39:11 +02:00
rirat-0 9375ab90b0 update der login seite 2026-05-13 12:04:55 +02:00
niklas.ortmann 6198d7b9ae Merge pull request 'Fehlende CRUD-Operationen' (#3) from Fehlende-CRUD-Operationen into dev
Reviewed-on: #3
2026-05-13 12:04:38 +02:00
NOrtmann1 52bede8277 Update profile.php 2026-05-13 11:27:46 +02:00
rirat-0 b81216cef1 kleine fehler und farbe behoben 2026-05-12 18:03:37 +02:00
rirat-0 43f0c78b3d Napassung von home.php und der main.css fuer responsive design 2026-05-12 14:19:57 +02:00
27 changed files with 886 additions and 496 deletions
-41
View File
@@ -1,41 +0,0 @@
<!--
Seite: 404 Seite nicht gefunden
Funktion: Wenn eine Seite nicht gefunden wurde oder noch fehlt, dann wird hierauf verwiesen.
-->
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="description" content="EduForge">
<meta name="author" content="Niklas Ortmann">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="images/logos/logo_icon.ico">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/navbar.css">
<link rel="stylesheet" href="css/footer.css">
<title>EduForge</title>
</head>
<body>
<main>
<?php
include_once 'includes/navbar.php';
?>
<h1>404 - Seite nicht vorhanden</h1>
<p>
Später im Projekt sollen über index.php?pfad= ... der Inhalt der index.php dynamisch gesetzt werden.
Alle Content-Links der Navbar führen zunächst hier her. Exemplarisch wurden für die Fächer Informatik, Physik, Mathematik der Content als Seite erstellt und kann über die Navbar ausgekundschaftet werden.
</p>
</main>
<?php
include_once 'includes/footer.php';
?>
</body>
</html>
+12
View File
@@ -0,0 +1,12 @@
<!--
Seite: 404 Seite nicht gefunden
Funktion: Wenn eine Seite nicht gefunden wurde oder noch fehlt, dann wird hierauf verwiesen.
-->
<main>
<h1>404 - Seite nicht vorhanden</h1>
<p>
Später im Projekt sollen über index.php?pfad= ... der Inhalt der index.php dynamisch gesetzt werden.
Alle Content-Links der Navbar führen zunächst hier her. Exemplarisch wurden für die Fächer Informatik, Physik, Mathematik der Content als Seite erstellt und kann über die Navbar ausgekundschaftet werden.
</p>
</main>
+83
View File
@@ -0,0 +1,83 @@
<!--
Seite: Beitrag erstellen
Inhalt: Formular für die Erstellung eines neuen Beitrags
-->
<?php
include_once $abs_path . '/php/model/ArticleManagerDAO.php';
include_once $abs_path . '/php/model/ArticleManager.php';
if(isset($_POST['title']) && isset($_POST['content']) && isset($_POST['category'])) {
}else{
// TODO: Exception werfen.
echo"Fehler!";
}
?>
<form method="post" action="php/controller/createArticle-controller.php" id="editor-form" class="wp-editor-scope editor-container">
<main class="editor-main">
<input type="text" id="title" name="title" placeholder="Titel hier eingeben" required>
<textarea id="content" name="content" placeholder="Schreibe deinen Beitrag..."></textarea>
</main>
<!-- Seitenleiste -->
<aside class="editor-sidebar">
<div class="sidebar-block">
<button type="submit" class="btn-publish">Veröffentlichen</button>
</div>
<div class="sidebar-block">
<label for="category">Kategorie <span class="required">*</span></label>
<select id="category" name="category" required>
<option value="" disabled selected>Kategorie wählen...</option>
<optgroup label="Sprachen">
<option value="deutsch">Deutsch</option>
<option value="englisch">Englisch</option>
<option value="franzoesisch">Französisch</option>
<option value="latein">Latein</option>
<option value="literatur">Literatur</option>
</optgroup>
<optgroup label="MINT">
<option value="mathe">Mathematik</option>
<option value="biologie">Biologie</option>
<option value="chemie">Chemie</option>
<option value="physik">Physik</option>
<option value="informatik">Informatik</option>
<option value="astronomie">Astronomie</option>
</optgroup>
<optgroup label="Gesellschaft & Werte">
<option value="geschichte">Geschichte</option>
<option value="erdkunde">Erdkunde</option>
<option value="sozialkunde">Sozialkunde</option>
<option value="wirtschaft">Wirtschaftskunde</option>
<option value="religion">Religion</option>
<option value="ethik">Ethikunterricht</option>
<option value="philosophie">Philosophie</option>
<option value="psychologie">Psychologie</option>
<option value="kunst">Kunst</option>
<option value="musik">Musik</option>
<option value="theater">Theater</option>
</optgroup>
<optgroup label="Technik & Praxis">
<option value="technik">Technik</option>
<option value="werken">Werken</option>
<option value="hauswirtschaft">Hauswirtschaft</option>
<option value="sport">Sport</option>
</optgroup>
</select>
</div>
<div class="sidebar-block">
<label for="tags">Schlagwörter</label>
<input type="text" id="tags" name="tags" placeholder="z.B. Technik, IT (mit Komma trennen)">
</div>
</aside>
</form>
@@ -2,28 +2,6 @@
Seite: Datenschutzerklärung Seite: Datenschutzerklärung
Inhalt: Informationen zur Datenverarbeitung gemäß DSGVO Inhalt: Informationen zur Datenverarbeitung gemäß DSGVO
--> -->
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="description" content="EduForge">
<meta name="author" content="Niklas Ortmann">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="images/logos/logo_icon.ico">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/navbar.css">
<link rel="stylesheet" href="css/footer.css">
<title>EduForge</title>
</head>
<body>
<?php
include_once 'includes/navbar.php';
?>
<main> <main>
<h1>Datenschutz</h1> <h1>Datenschutz</h1>
@@ -38,10 +16,3 @@ include_once 'includes/navbar.php';
</p> </p>
</main> </main>
<?php
include_once 'includes/footer.php';
?>
</body>
</html>
+15 -9
View File
@@ -13,22 +13,28 @@
sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no
sea takimata sanctus est Lorem ipsum dolor sit amet. sea takimata sanctus est Lorem ipsum dolor sit amet.
</p> </p>
<div>
<a href = "informatik.php" style = "padding: 5px; text-align: center; text-decoration: none; display: inline-block;"><b>Informatik</b></a> <br> <!-- Flexbox -->
<div> <div class="flexbox">
<div class="container">
<a href="index.php?pfad=informatik" class="category-link">Informatik</a>
<div class="article-link">
<a href="datenschutzVSdatensicherheit.php">Datenschutz vs. Datensicherheit</a> <a href="datenschutzVSdatensicherheit.php">Datenschutz vs. Datensicherheit</a>
</div> </div>
</div> </div>
<div>
<a href = "mathe.php" style = "padding: 5px; text-align: center; text-decoration: none; display: inline-block;"><b>Mathe</b></a> <br> <div class="container">
<div> <a href="index.php?pfad=mathe" class="category-link">Mathe</a>
<div class="article-link">
<a href="pythagoras.php">Satz des Pythagoras</a> <a href="pythagoras.php">Satz des Pythagoras</a>
</div> </div>
</div> </div>
<div>
<a href = "physik.php" style = "padding: 5px; text-align: center; text-decoration: none; display: inline-block;"><b>Physik</b></a> <div class="container">
<div> <a href="index.php?pfad=physik" class="category-link">Physik</a>
<div class="article-link">
<a href="tunneleffekt.php">Der Tunneleffekt</a> <a href="tunneleffekt.php">Der Tunneleffekt</a>
</div> </div>
</div> </div>
</div>
</main> </main>
-28
View File
@@ -2,27 +2,6 @@
Seite: Impressum Seite: Impressum
Inhalt: wer wie was auf der Webseite Inhalt: wer wie was auf der Webseite
--> -->
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="description" content="EduForge">
<meta name="author" content="Niklas Ortmann">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="images/logos/logo_icon.ico">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/navbar.css">
<link rel="stylesheet" href="css/footer.css">
<title>EduForge</title>
</head>
<body>
<?php
include_once 'includes/navbar.php';
?>
<main> <main>
@@ -38,10 +17,3 @@ include_once 'includes/navbar.php';
</p> </p>
</main> </main>
<?php
include_once 'includes/footer.php';
?>
</body>
</html>
-27
View File
@@ -2,26 +2,6 @@
Seite: Informatik Seite: Informatik
Inhalt: Eine Übersicht über alle Beiträge zum Fach Inhalt: Eine Übersicht über alle Beiträge zum Fach
--> -->
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="description" content="EduForge">
<meta name="author" content="Niklas Ortmann">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="images/logos/logo_icon.ico">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/navbar.css">
<link rel="stylesheet" href="css/footer.css">
<title>EduForge</title>
</head>
<body>
<?php
include_once 'includes/navbar.php';
?>
<main> <main>
<h1>Informatik</h1> <h1>Informatik</h1>
@@ -39,10 +19,3 @@ include_once 'includes/navbar.php';
<a href="datenschutzVSdatensicherheit.php">Datenschutz vs. Datensicherheit</a> <a href="datenschutzVSdatensicherheit.php">Datenschutz vs. Datensicherheit</a>
</div> </div>
</main> </main>
<?php
include_once 'includes/footer.php';
?>
</body>
</html>
+32
View File
@@ -0,0 +1,32 @@
<!--
Form: Login-Bereich
Funktion: Benutzerauthentifizierung und Zugang zum eigenen Profil, Erstellen von Beiträgen, etc.
-->
<main class="login-page">
<div class="login-container">
<h1>Bitte anmelden</h1>
<form>
<label id ="inputEmail" class="screenreader-only">E-Mail Adresse / </label>
<p class="input-label">Benutzername/E-Mail-Adresse:</p>
<input type="email" name="email" class="login-input" placeholder="E-Mail-Adresse" required autofocus>
<p class="input-label">Passwort:</p>
<input type="password" name="password" class="login-input" placeholder="Passwort" required>
<div class="checkbox-wrapper">
<label>
<input type="checkbox" name="remember-me" value="1"> angemeldet bleiben
</label>
</div>
<button type="submit" value="anmelden" name="loginSubmit" class="login-button">anmelden</button>
<div class="register-link">
<a href="register.php">Noch keinen Account? Jetzt hier registrieren!</a>
</div>
</form>
</div>
</main>
-28
View File
@@ -2,27 +2,6 @@
Seite: Mathe Seite: Mathe
Inhalt: Eine Übersicht über alle Beiträge zum Fach Inhalt: Eine Übersicht über alle Beiträge zum Fach
--> -->
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="description" content="EduForge">
<meta name="author" content="Niklas Ortmann">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="images/logos/logo_icon.ico">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/navbar.css">
<link rel="stylesheet" href="css/footer.css">
<title>EduForge</title>
</head>
<body>
<?php
include_once 'includes/navbar.php';
?>
<main> <main>
<h1>Mathe</h1> <h1>Mathe</h1>
@@ -41,10 +20,3 @@ include_once 'includes/navbar.php';
<a href="pythagoras.php">Satz des Pythagoras</a> <a href="pythagoras.php">Satz des Pythagoras</a>
</div> </div>
</main> </main>
<?php
include_once 'includes/footer.php';
?>
</body>
</html>
-28
View File
@@ -2,27 +2,6 @@
Seite: Physik Seite: Physik
Inhalt: Eine Übersicht über alle Beiträge zum Fach Inhalt: Eine Übersicht über alle Beiträge zum Fach
--> -->
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="description" content="EduForge">
<meta name="author" content="Niklas Ortmann">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="images/logos/logo_icon.ico">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/navbar.css">
<link rel="stylesheet" href="css/footer.css">
<title>EduForge</title>
</head>
<body>
<?php
include_once 'includes/navbar.php';
?>
<main> <main>
<h1>Physik</h1> <h1>Physik</h1>
@@ -42,10 +21,3 @@ include_once 'includes/navbar.php';
</div> </div>
</main> </main>
<?php
include_once 'includes/footer.php';
?>
</body>
</html>
+46
View File
@@ -0,0 +1,46 @@
<!--
Content: Profil
Inhalt: Das eigene Profil, wenn man angemeldet ist. Dort hat man die Möglichkeit seine Angaben zu ändern.
-->
<main class="form-page">
<div class="form-container">
<form>
<label class="input-label">Vorname</label>
<input type="text" name="Vorname" class="login-input" required
placeholder="Vorname"
value="<?php //DB-Daten ?>">
<label class="input-label">Nachname</label>
<input type="text" name="Nachname" class="login-input" required
placeholder="Nachname"
value="<?php //DB-Daten ?>">
<label class="input-label">Email-Adresse</label>
<input type="email" name="Email" class="login-input" required
placeholder="mustermann@web.de"
value="<?php //DB-Daten ?>">
<label class="input-label">Passwort</label>
<input type="password" name="Passwort" class="login-input"
required placeholder="Passwort">
<br>
<button type="submit" class="login-button">
Speichern
</button>
<br><br>
<button type="button" class="login-button">
Account löschen
</button>
</form>
</div>
</main>
+32
View File
@@ -0,0 +1,32 @@
<!--
Form: Registrierung
Funktion: Erstellung neuer Benutzerkonten
-->
<main class="login-page">
<div class="login-container">
<h1>Jetzt Registrieren!</h1>
<form>
<p class="input-label">Email:</p>
<input type="email" name="email" class="login-input" placeholder="mustermann@web.de" required>
<p class="input-label">Vorname:</p>
<input type="text" name="vorname" class="login-input" placeholder="Max" required>
<p class="input-label">Nachname:</p>
<input type="text" name="nachname" class="login-input" placeholder="Mustermann" required>
<p class="input-label">Passwort:</p>
<input type="password" name="password" class="login-input" placeholder="Passwort" required>
<div class="checkbox-wrapper">
<label>
<input type="checkbox" value="remember-me"> angemeldet bleiben
</label>
</div>
<button type="submit" value="anmelden" name="loginSubmit" class="login-button">kostenlos registrieren</button>
</form>
</div>
</main>
+123
View File
@@ -0,0 +1,123 @@
/* editor in Flexbox */
.wp-editor-scope.editor-container {
display: flex;
min-height: 100vh;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
color: #1e1e1e;
background-color: #f0f2f5;
box-sizing: border-box;
}
.wp-editor-scope * {
box-sizing: border-box;
margin: 0;
padding: 0;
}
/* Hauptbereich */
.wp-editor-scope .editor-main {
flex: 1;
padding: 40px;
display: flex;
flex-direction: column;
gap: 20px;
background: #ffffff;
}
.wp-editor-scope #title {
font-size: 2.5rem;
font-weight: 700;
border: none;
outline: none;
width: 100%;
background: transparent;
}
.wp-editor-scope #content {
flex: 1;
font-size: 1.1rem;
line-height: 1.6;
border: none;
outline: none;
resize: none;
width: 100%;
background: transparent;
}
/* Seitenleiste */
.wp-editor-scope .editor-sidebar {
width: 300px;
background-color: #ffffff;
border-left: 1px solid #e0e0e0;
padding: 20px;
display: flex;
flex-direction: column;
gap: 24px;
}
.wp-editor-scope .sidebar-block {
display: flex;
flex-direction: column;
gap: 8px;
}
.wp-editor-scope .sidebar-block label {
font-weight: 600;
font-size: 0.9rem;
}
.wp-editor-scope .required {
color: #d94f4f;
}
/* Formularelemente innerhalb der Editor-Sidebar */
.wp-editor-scope .editor-sidebar select,
.wp-editor-scope .editor-sidebar input[type="text"] {
width: 100%;
padding: 8px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 0.9rem;
background: #ffffff;
}
/* Button-Zeugs */
.wp-editor-scope .btn-publish {
background-color: #007cba;
color: white;
border: none;
padding: 12px;
border-radius: 4px;
font-weight: 600;
cursor: pointer;
font-size: 1rem;
width: 100%;
}
.wp-editor-scope .btn-publish:hover {
background-color: #006ba1;
}
@media (max-width: 760px) {
.wp-editor-scope.editor-container {
/* Sidebar nach unten */
flex-direction: column;
}
.wp-editor-scope .editor-main {
/* weniger Innenabstand */
padding: 20px;
}
.wp-editor-scope #content {
/* Verhindert, dass das Textfeld auf kleinen Displays kollabiert */
min-height: 300px;
}
.wp-editor-scope .editor-sidebar {
width: 100%;
/* Entfernt den linken Rand und setzt ihn nach oben als Trenner */
border-left: none;
border-top: 1px solid #e0e0e0;
}
}
+201 -3
View File
@@ -1,7 +1,205 @@
body {
background-color: coral; main {
max-width:1200px;
margin: 0 auto;
padding: 20px;
} }
a, button, input, select, textarea, label{ body {
background-color: #eef2f7;
color: #1f2937;
margin: 0;
}
a, button, input, select, textarea, label, main{
font-family: Arial, Helvetica, sans-serif; font-family: Arial, Helvetica, sans-serif;
} }
.flexbox {
display: flex;
flex-direction: column;
gap: 20px;
margin-top: 30px;
}
.container {
background-color: white;
border-radius: 8px;
padding: 15px;
border: 1px solid #dbe3ec;
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
transition: transform 0.2s, box-shadow 0.2s;
}
.container:hover {
transform: translateY(-3px);
box-shadow: 0 6px 18px rgba(0,0,0,0.12);
}
.category-link {
display: block;
text-align: left;
text-decoration: none;
font-weight: bold;
padding: 12px;
background-color: #2563eb;
color: white;
border-radius: 8px;
margin-bottom: 10px;
transition: background-color 0.2s, transform 0.2s, box-shadow 0.2s;
}
.category-link:hover {
background-color: #1d4ed8;
transform: translateY(-2px);
box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}
.article-link a {
color: #1f2937;
text-decoration: none;
font-weight: bold;
transition: color 0.2s;
}
.article-link a:hover {
color: #2563eb;
text-decoration: underline;
}
@media (min-width: 1024px) {
.container {
padding: 25px;
}
}
/* Seite wird horizontal und vertikal zentriert */
.login-page {
display: flex;
justify-content: center;
align-items: center;
min-height: 80vh;
}
.login-container {
width: 90%;
max-width: 450px;
padding: 30px;
border: 1px solid #dbe3ec;
border-radius: 10px;
background-color: white;
box-shadow: 0 6px 20px rgba(0,0,0,0.1);
}
.logo-wrapper {
text-align: center;
margin-bottom: 20px;
}
.login-logo {
width: 120px;
height: auto;
}
.login-container h1 {
text-align: center;
margin-bottom: 25px;
font-size: 1.7rem;
color: #1e293b;
}
.input-label {
margin-bottom: 5px;
font-weight: bold;
width: 100%;
color: #1f2937;
}
.input-label {
margin-bottom: 5px;
font-weight: bold;
width: 100%;
color: #1f2937;
}
.login-input {
width: 100%;
padding: 12px;
margin-bottom: 20px;
border: 1px solid #d1d5db;
border-radius: 6px;
box-sizing: border-box;
font-size: 1rem;
background-color: white;
}
.login-input:focus {
outline: none;
border-color: #2563eb;
box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}
.checkbox-wrapper {
margin-bottom: 20px;
color: #1f2937;
}
.login-button {
width: 100%;
padding: 12px;
background-color: #2563eb;
color: white;
border: none;
border-radius: 8px;
font-size: 1rem;
font-weight: bold;
cursor: pointer;
transition: background-color 0.2s, transform 0.2s, box-shadow 0.2s;
}
.login-button:hover {
background-color: #1d4ed8;
transform: translateY(-2px);
box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}
.register-link {
margin-top: 20px;
text-align: center;
font-size: 0.9rem;
color: #1f2937;
}
.register-link a {
color: #2563eb;
text-decoration: none;
font-weight: bold;
transition: color 0.2s;
}
.register-link a:hover {
color: #1d4ed8;
text-decoration: underline;
}
/* Versteckt das doppelte Label fuer Screenreader/Accessibility */
.screenreader-only {
display: none;
}
/* Allgemeine Formularseiten */
.form-page {
display: flex;
justify-content: center;
padding: 40px 20px;
}
.form-container {
width: 90%;
max-width: 600px;
padding: 30px;
background-color: white;
border: 1px solid #dbe3ec;
border-radius: 10px;
box-shadow: 0 6px 20px rgba(0,0,0,0.1);
}
+2 -2
View File
@@ -149,8 +149,8 @@ CSS für die navbar
display: none; display: none;
} }
/* Responsive Anpassungen unter 660px (für z.B. Smartphones) */ /* Responsive Anpassungen unter 760px (für z.B. Smartphones) */
@media (max-width: 660px) { @media (max-width: 760px) {
.nav { .nav {
flex-direction: row; flex-direction: row;
flex-wrap: wrap; flex-wrap: wrap;
+63 -58
View File
@@ -15,56 +15,60 @@ Globales Menü, wird via PHP später in alle Seiten eingebunden
</label> </label>
<ul id="mobile-nav" class="nav__mobile-menu"> <ul id="mobile-nav" class="nav__mobile-menu">
<li><a href="profile.php">Profil</a></li> <li>
<li><a href="login.php">Anmelden</a></li> <label for="nav-toggle" class="nav__close-btn">&times;</label>
<li><a href="register.php">Registrieren</a></li> </li>
<li><a href="index.php?pfad=profile">Profil</a></li>
<li><a href="index.php?pfad=login">Anmelden</a></li>
<li><a href="index.php?pfad=register">Registrieren</a></li>
<li><a href="index.php?pfad=createArticle">Beitrag erstellen</a></li>
<li> <li>
<label class="nav__mobile-label">Sprachen</label> <label class="nav__mobile-label">Sprachen</label>
<ul class="nav__mobile-submenu"> <ul class="nav__mobile-submenu">
<li><a href="404.php">Deutsch</a></li> <li><a href="index.php?pfad=deutsch">Deutsch</a></li>
<li><a href="404.php">Englisch</a></li> <li><a href="index.php?pfad=englisch">Englisch</a></li>
<li><a href="404.php">Französisch</a></li> <li><a href="index.php?pfad=franzoesisch">Französisch</a></li>
<li><a href="404.php">Latein</a></li> <li><a href="index.php?pfad=latein">Latein</a></li>
<li><a href="404.php">Literatur</a></li> <li><a href="index.php?pfad=literatur">Literatur</a></li>
</ul> </ul>
</li> </li>
<li> <li>
<label class="nav__mobile-label">MINT</label> <label class="nav__mobile-label">MINT</label>
<ul class="nav__mobile-submenu"> <ul class="nav__mobile-submenu">
<li><a href="mathe.php">Mathematik</a></li> <li><a href="index.php?pfad=mathe">Mathematik</a></li>
<li><a href="404.php">Biologie</a></li> <li><a href="index.php?pfad=biologie">Biologie</a></li>
<li><a href="404.php">Chemie</a></li> <li><a href="index.php?pfad=chemie">Chemie</a></li>
<li><a href="physik.php">Physik</a></li> <li><a href="index.php?pfad=englisch">Physik</a></li>
<li><a href="informatik.php">Informatik</a></li> <li><a href="index.php?pfad=informatik">Informatik</a></li>
<li><a href="404.php">Astronomie</a></li> <li><a href="index.php?pfad=astronomie">Astronomie</a></li>
</ul> </ul>
</li> </li>
<li> <li>
<label class="nav__mobile-label">Gesellschaft & Werte</label> <label class="nav__mobile-label">Gesellschaft & Werte</label>
<ul class="nav__mobile-submenu"> <ul class="nav__mobile-submenu">
<li><a href="404.php">Geschichte</a></li> <li><a href="index.php?pfad=geschichte">Geschichte</a></li>
<li><a href="404.php">Erdkunde</a></li> <li><a href="index.php?pfad=erdkunde">Erdkunde</a></li>
<li><a href="404.php">Sozialkunde</a></li> <li><a href="index.php?pfad=sozialkunde">Sozialkunde</a></li>
<li><a href="404.php">Wirtschaftskunde</a></li> <li><a href="index.php?pfad=wirtschaft">Wirtschaftskunde</a></li>
<li><a href="404.php">Religion</a></li> <li><a href="index.php?pfad=religion">Religion</a></li>
<li><a href="404.php">Ethikunterricht</a></li> <li><a href="index.php?pfad=ethik">Ethikunterricht</a></li>
<li><a href="404.php">Philosophie</a></li> <li><a href="index.php?pfad=philosophie">Philosophie</a></li>
<li><a href="404.php">Psychologie</a></li> <li><a href="index.php?pfad=psychologie">Psychologie</a></li>
<li><a href="404.php">Kunst</a></li> <li><a href="index.php?pfad=kunst">Kunst</a></li>
<li><a href="404.php">Musik</a></li> <li><a href="index.php?pfad=musik">Musik</a></li>
<li><a href="404.php">Theater</a></li> <li><a href="index.php?pfad=theater">Theater</a></li>
</ul> </ul>
</li> </li>
<li> <li>
<label class="nav__mobile-label">Technik & Praxis</label> <label class="nav__mobile-label">Technik & Praxis</label>
<ul class="nav__mobile-submenu"> <ul class="nav__mobile-submenu">
<li><a href="404.php">Technik</a></li> <li><a href="index.php?pfad=technik">Technik</a></li>
<li><a href="404.php">Werken</a></li> <li><a href="index.php?pfad=werken">Werken</a></li>
<li><a href="404.php">Hauswirtschaft</a></li> <li><a href="index.php?pfad=hauswirtschaft">Hauswirtschaft</a></li>
<li><a href="404.php">Sport</a></li> <li><a href="index.php?pfad=sport">Sport</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@@ -74,59 +78,60 @@ Globales Menü, wird via PHP später in alle Seiten eingebunden
<div class="nav__item nav__dropdown"> <div class="nav__item nav__dropdown">
<button class="nav__dropdown-toggle">Sprachen</button> <button class="nav__dropdown-toggle">Sprachen</button>
<div class="nav__dropdown-menu"> <div class="nav__dropdown-menu">
<a href="404.php">Deutsch</a> <a href="index.php?pfad=deutsch">Deutsch</a>
<a href="404.php">Englisch</a> <a href="index.php?pfad=englisch">Englisch</a>
<a href="404.php">Französisch</a> <a href="index.php?pfad=franzoesisch">Französisch</a>
<a href="404.php">Latein</a> <a href="index.php?pfad=latein">Latein</a>
<a href="404.php">Literatur</a> <a href="index.php?pfad=literatur">Literatur</a>
</div> </div>
</div> </div>
<div class="nav__item nav__dropdown"> <div class="nav__item nav__dropdown">
<button class="nav__dropdown-toggle">MINT</button> <button class="nav__dropdown-toggle">MINT</button>
<div class="nav__dropdown-menu"> <div class="nav__dropdown-menu">
<a href="mathe.php">Mathematik</a> <a href="index.php?pfad=mathe">Mathematik</a>
<a href="404.php">Biologie</a> <a href="index.php?pfad=biologie">Biologie</a>
<a href="404.php">Chemie</a> <a href="index.php?pfad=chemie">Chemie</a>
<a href="physik.php">Physik</a> <a href="index.php?pfad=physik">Physik</a>
<a href="informatik.php">Informatik</a> <a href="index.php?pfad=informatik">Informatik</a>
<a href="404.php">Astronomie</a> <a href="index.php?pfad=astronomie">Astronomie</a>
</div> </div>
</div> </div>
<div class="nav__item nav__dropdown"> <div class="nav__item nav__dropdown">
<button class="nav__dropdown-toggle">Gesellschaft & Werte</button> <button class="nav__dropdown-toggle">Gesellschaft & Werte</button>
<div class="nav__dropdown-menu"> <div class="nav__dropdown-menu">
<a href="404.php">Geschichte</a> <a href="index.php?pfad=geschichte">Geschichte</a>
<a href="404.php">Erdkunde</a> <a href="index.php?pfad=erdkunde">Erdkunde</a>
<a href="404.php">Sozialkunde</a> <a href="index.php?pfad=sozialkunde">Sozialkunde</a>
<a href="404.php">Wirtschaftskunde</a> <a href="index.php?pfad=wirtschaft">Wirtschaftskunde</a>
<a href="404.php">Religion</a> <a href="index.php?pfad=religion">Religion</a>
<a href="404.php">Ethikunterricht</a> <a href="index.php?pfad=ethik">Ethikunterricht</a>
<a href="404.php">Philosophie</a> <a href="index.php?pfad=philosophie">Philosophie</a>
<a href="404.php">Psychologie</a> <a href="index.php?pfad=psychologie">Psychologie</a>
<a href="404.php">Kunst</a> <a href="index.php?pfad=kunst">Kunst</a>
<a href="404.php">Musik</a> <a href="index.php?pfad=musik">Musik</a>
<a href="404.php">Theater</a> <a href="index.php?pfad=theater">Theater</a>
</div> </div>
</div> </div>
<div class="nav__item nav__dropdown"> <div class="nav__item nav__dropdown">
<button class="nav__dropdown-toggle">Technik & Praxis</button> <button class="nav__dropdown-toggle">Technik & Praxis</button>
<div class="nav__dropdown-menu"> <div class="nav__dropdown-menu">
<a href="404.php">Technik</a> <a href="index.php?pfad=technik">Technik</a>
<a href="404.php">Werken</a> <a href="index.php?pfad=werken">Werken</a>
<a href="404.php">Hauswirtschaft</a> <a href="index.php?pfad=hauswirtschaft">Hauswirtschaft</a>
<a href="404.php">Sport</a> <a href="index.php?pfad=sport">Sport</a>
</div> </div>
</div> </div>
</div> </div>
<div class="nav__right"> <div class="nav__right">
<a href = "profile.php" class="nav_item nav__link">Profil</a> <a href="index.php?pfad=profile" class="nav_item nav__link">Profil</a>
<div class="nav__search"> <div class="nav__search">
<?php <?php
include_once 'search.php'; include_once 'search.php';
?> ?>
</div> </div>
<a href = "login.php" class="nav__item nav__button">Anmelden</a> <a href="index.php?pfad=login" class="nav__item nav__button">Anmelden</a>
<a href = "register.php" class="nav__item nav__button">Registrieren</a> <a href="index.php?pfad=register" class="nav__item nav__button">Registrieren</a>
<a href="index.php?pfad=createArticle" class="nav__item nav__button">Beitrag erstellen</a>
</div> </div>
</nav> </nav>
+23 -9
View File
@@ -1,6 +1,14 @@
<?php
if (!isset($abs_path)) {
require_once "path.php";
}
require_once $abs_path . "/php/controller/index-controller.php";
?>
<!-- <!--
Seite: Hompage der Lernplattform Seite: Index der Lernplattform
Funktion: Webseitengerüst, Anzeigen von Beiträgen, Suchfunktion etc. Funktion: Webseitengerüst, Anzeigen von Content
--> -->
<!DOCTYPE html> <!DOCTYPE html>
<html lang="de"> <html lang="de">
@@ -14,6 +22,7 @@
<link rel="stylesheet" href="css/main.css"> <link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/navbar.css"> <link rel="stylesheet" href="css/navbar.css">
<link rel="stylesheet" href="css/footer.css"> <link rel="stylesheet" href="css/footer.css">
<link rel="stylesheet" href="css/article.css">
<title>EduForge</title> <title>EduForge</title>
</head> </head>
@@ -21,13 +30,18 @@
<body> <body>
<?php <?php
include_once 'includes/navbar.php'; include_once $abs_path . '/includes/navbar.php';
//Dynamischer Inhalt (später mit php...): //Dynamischer Inhalt:
include_once 'content/home.php'; if (isset($_GET["pfad"])) {
?> if (file_exists($abs_path . '/content/' . $_GET["pfad"] . '.php')) {
include_once $abs_path . '/content/' . $_GET["pfad"] . '.php';
<?php } else {
include_once 'includes/footer.php'; include_once $abs_path . '/content/404.php';
}
} else {
include_once $abs_path . '/content/home.php';
}
include_once $abs_path . '/includes/footer.php';
?> ?>
</body> </body>
-51
View File
@@ -1,51 +0,0 @@
<!--
Form: Login-Bereich
Funktion: Benutzerauthentifizierung und Zugang zum eigenen Profil, Erstellen von Beiträgen, etc.
-->
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="description" content="EduForge">
<meta name="author" content="Niklas Ortmann">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="images/logos/logo_icon.ico">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/navbar.css">
<link rel="stylesheet" href="css/footer.css">
<title>EduForge</title>
</head>
<body>
<?php
include_once 'includes/navbar.php';
?>
<main>
<div style="width: 50%">
<h1 style="width: 60%; text-align: center">Bitte anmelden</h1><br>
<label id="inputEmail" >E-Mail-Adresse / </label>
<p style="width: 80%;">Benutzername/E-Mail-Adresse:</p>
<input type="email" name="email" style="width: 80%;" placeholder="E-Mail-Adresse" required autofocus>
<p style="width: 80%;">Passwort:</p>
<input type="password" name="password" style="width: 80%;" placeholder="Passwort" required>
<div style="width: 80%;">
<label>
<input type="checkbox" name="remember-me" value="1"> angemeldet bleiben
</label>
</div>
<button type="submit" value="anmelden" name="loginSubmit" style="width: 80%;">anmelden</button><br>
<div style="width: 70%; text-align: center">
<a href="register.php" style="text-align: center;"> Noch keinen Account? Jetzt hier registrieren! </a>
</div>
</div>
</main>
<?php
include_once 'includes/footer.php';
?>
</body>
</html>
+3
View File
@@ -0,0 +1,3 @@
<?php
$abs_path = __DIR__;
?>
@@ -0,0 +1,18 @@
<?php
require_once $abs_path . '/php/model/ArticleManager.php';
require_once $abs_path . '/php/model/Article.php';
try {
$articleManager = new ArticleManager();
}catch (Exception $e){
die("Fehler bei der Initialisierung des Artikel-Managers: " . $e->getMessage());
}
try {
$author = "max.mustermann@web.de"; // wird später aus session bezogen.
$articleManager->newArticle($_POST['post-title'], $_POST['post-content'], $author);
} catch (Exception $e) {
echo "Fehler beim Erstellen des Beitrags: " . $e->getMessage();
}
?>
+3
View File
@@ -0,0 +1,3 @@
<?php
?>
+75
View File
@@ -0,0 +1,75 @@
<?php
/*
* Klasse: Artikel
* Diese Klasse stellt alle Daten eines Artikels (Beitrag) bereit
*
* @author Niklas Ortmann
*/
class Article
{
private $id;
private $title;
private $content;
private $author;
private $date;
/*
* Gibt die ID eines Artikels zurück.
*/
public function getId()
{
return $this->id;
}
/*
* Gibt den Titel eines Artikels zurück.
*/
public function getTitle()
{
return $this->title;
}
/*
* Setzt den Titel eines Artikels.
*/
public function setTitle($title)
{
$this->title = $title;
}
/*
* Gibt den Content eines Artikels zurück.
* TODO: Content muss noch definiert werden.
*/
public function getContent()
{
return $this->content;
}
/*
* Setzt den Content eines Artikels.
* TODO: Content muss noch definiert werden.
*/
public function setContent($content)
{
$this->content = $content;
}
/*
* Gibt den Autor eines Artikels zurück.
*/
public function getAuthor()
{
return $this->author;
}
/*
* Gibt das Veröffentlichungsdatum des Artikels zurück.
*/
public function getDate()
{
return $this->date;
}
}
?>
+77
View File
@@ -0,0 +1,77 @@
<?php
require_once 'ArticleManagerDAO.php';
/*
* Klasse: Eine lokale Lösung der DatenbankDAO.
* schreibt zunächst Daten lokal in das Verzeichnis und kann diese wieder auslesen.
*
* @author Niklas Ortmann
*/
class ArticleManager implements ArticleManagerDAO {
/*
* Gibt die Datenbank-Instanz zurück.
*/
public static function getInstance()
{
if (self::$instance == null) {
self::$instance = new ArticleManager();
}
return self::$instance;
}
/*
* Prüft, ob die lokalen txt-Dateien existieren.
* Wenn nicht, werden diese erstellt.
*/
public function __construct()
{
}
public function newArticle($title, $content, $author, $category) {
$newData = array(
"title" => $title,
"content" => $content,
"author" => $author,
"category" => $category,
//"tags" => isset($_POST["tags"]) ? $_POST["tags"] : '', TODO: Später hinzufügen
"date" => date("d.m.Y, H:i")
);
$newData = base64_encode(serialize($newData));
if (!file_exists("articles.txt")) {
$newData = fopen("articles.txt", "xb");
fclose($newData);
}
$previousData = file_get_contents("articles.txt");
if (file_put_contents("articles.txt", "$newData\n$previousData")) {
// TODO: Vernünftige Rückmeldung implementieren.
echo "Artikel erfolgreich gespeichert!";
} else {
// TODO: passende Exceptions werfen.
echo "Fehler!";
}
}
public function updateArticle($id, $title, $content, $author)
{
// TODO: Implement updateArticle() method.
}
public function deleteArticle($id)
{
// TODO: Implement deleteArticle() method.
}
public function getArticle($id)
{
// TODO: Implement getArticle() method.
}
public function getAllArticles()
{
// TODO: Implement getAllArticles() method.
}
}
?>
+66
View File
@@ -0,0 +1,66 @@
<?php
/*
* Die Klasse binhaltet alle Methoden für die Operation auf der Datenbank.
*
* @author Niklas Ortmann
*/
interface ArticleManagerDAO
{
/*
* Ein angemeldeter Nutzer erstellt einen neuen Beitrag.
* $title Titel des Beitrags
* $content Der Inhalt des Beitrags
* $author dem Author des des Beitrags (NID oder email)
* $category Kategorie des Beitrags
* $tags optionale Schlagworte für eine bessere Suche
*
* Mögliche Exceptions:
* TODO Fehlerbeschreibung hinzufügen
*/
public function newArticle($title, $content, $author, $category);
/*
* Ein angemeldeter Nutzer bearbeitet einen Beitrag.
* $id ID des Beitrags
* $title Titel des Beitrags
* $content Der Inhalt des Beitrags
* $author dem Author des des Beitrags (NID oder email)
*
* Mögliche Exceptions:
* TODO Fehlerbeschreibung hinzufügen
*/
public function updateArticle($id, $title, $content, $author);
/*
* Ein angemeldeter Nutzer löscht einen seiner Beiträge.
* $id ID des Beitrags
* $title Titel des Beitrags
* $content Der Inhalt des Beitrags
* $author dem Author des des Beitrags (NID oder email)
*
* Mögliche Exceptions:
* TODO Fehlerbeschreibung hinzufügen
*/
public function deleteArticle($id);
/*
* Beitrag aufrufen.
* $id ID des Beitrags
*
* Mögliche Exceptions:
* TODO Fehlerbeschreibung hinzufügen
*/
public function getArticle($id);
/*
* Alle Beiträge aufrufen.
*
* Mögliche Exceptions:
* TODO Fehlerbeschreibung hinzufügen
*/
public function getAllArticles();
}
?>
-63
View File
@@ -1,63 +0,0 @@
<!--
Seite: Profil
Inhalt: Das eigene Profil, wenn man angemeldet ist. Dort hat man die Möglichkeit seine Angaben zu ändern.
-->
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="description" content="EduForge">
<meta name="author" content="Niklas Ortmann">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="images/logos/logo_icon.ico">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/navbar.css">
<link rel="stylesheet" href="css/footer.css">
<title>EduForge</title>
</head>
<body>
<?php
include_once 'includes/navbar.php';
?>
<main>
<hr>
<div>
<div>
<h1>Benutzerdaten ändern</h1>
</div>
<div>
<div>
<label id="Vorname">Vorname</label>
<input type="text" name="Vorname" required placeholder="Vorname" value="<?php //DB-Daten ?>">
</div>
<div>
<label id="Nachname">Nachname</label>
<input type="text" name="Nachname" required placeholder="Nachname" value="<?php //DB-Daten ?>">
</div>
<div>
<label id="Email">Email-Adresse</label>
<input type="email" name="Email" required placeholder="mustermann@web.de" value="<?php //DB-Daten ?>">
</div>
<div>
<label id="Passwort">Passwort</label>
<input type="password" name="Passwort" required placeholder="Passwort">
</div>
<div>
<br>
<button type="submit" name="submit"><i></i> Speichern</button>
</div>
</div>
</div>
</main>
<?php
include_once 'includes/footer.php';
?>
</body>
</html>
-52
View File
@@ -1,52 +0,0 @@
<!--
Form: Registrierung
Funktion: Erstellung neuer Benutzerkonten
-->
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="description" content="EduForge">
<meta name="author" content="Niklas Ortmann">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/x-icon" href="images/logos/logo_icon.ico">
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/navbar.css">
<link rel="stylesheet" href="css/footer.css">
<title>EduForge</title>
</head>
<body>
<?php
include_once 'includes/navbar.php';
?>
<main>
<div style="width: 50%">
<h1 style="width: 50%; text-align: center">Jetzt Registrieren!</h1><br>
<p style="width: 80%;"> Email:</p>
<input type="email" name="email" style="width: 80%;" placeholder="mustermann@web.de" required>
<p style="width: 80%;"> Vorname:</p>
<input type="text" name="vorname" style="width: 80%;" placeholder="Max" required>
<p style="width: 80%;"> Nachname:</p>
<input type="text" name="nachname" style="width: 80%;" placeholder="Mustermann" required>
<p style="width: 80%;"> Passwort:</p>
<input type="password" name="password" style="width: 80%;" placeholder="Passwort" required>
<div style="width: 80%;">
<label>
<input type="checkbox" value="remember-me"> angemeldet bleiben
</label>
</div>
<button type="submit" value="anmelden" name="loginSubmit" style="width: 80%;">kostenlos registrieren</button>
</div>
</main>
<?php
include_once 'includes/footer.php';
?>
</body>
</html>
-56
View File
@@ -1,56 +0,0 @@
<?php
// Webhook: erfasst einen push auf dem dev (und aktualisiert das Webverzeichnis des Servers)
// Quelle: https://docs.gitea.com/usage/webhooks
ini_set('error_log', __DIR__ . '/tmp.log');
$secret_key = '763489347';
// check for POST request
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
error_log('FAILED - not POST - '. $_SERVER['REQUEST_METHOD']);
exit();
}
// get content type
$content_type = isset($_SERVER['CONTENT_TYPE']) ? strtolower(trim($_SERVER['CONTENT_TYPE'])) : '';
if ($content_type != 'application/json') {
error_log('FAILED - not application/json - '. $content_type);
exit();
}
// get payload
$payload = trim(file_get_contents("php://input"));
if (empty($payload)) {
error_log('FAILED - no payload');
exit();
}
// get header signature
$header_signature = isset($_SERVER['HTTP_X_GITEA_SIGNATURE']) ? $_SERVER['HTTP_X_GITEA_SIGNATURE'] : '';
if (empty($header_signature)) {
error_log('FAILED - header signature missing');
exit();
}
// calculate payload signature
$payload_signature = hash_hmac('sha256', $payload, $secret_key, false);
// check payload signature against header signature
if ($header_signature !== $payload_signature) {
error_log('FAILED - payload signature');
exit();
}
// convert json to array
$decoded = json_decode($payload, true);
// check for json decode errors
if (json_last_error() !== JSON_ERROR_NONE) {
error_log('FAILED - json decode - '. json_last_error());
exit();
}
// success, do something
error_log('SUCCESS - Webhook hat funktioniert');