projekt templade added
145
CSS/style.css
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
/*
|
||||||
|
Created on : 04.01.2018, 15:39:10
|
||||||
|
Author : reich
|
||||||
|
*/
|
||||||
|
|
||||||
|
*, *:before, *:after {
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-size: 18px;
|
||||||
|
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wrapper {
|
||||||
|
max-width: 1000px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*** Allgemeine Definitionen ***/
|
||||||
|
h1 {
|
||||||
|
/* margin: 10px; */
|
||||||
|
color: #F2F2F2;
|
||||||
|
font-size: 48px;
|
||||||
|
font-weight: 100;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 span {
|
||||||
|
margin-left: -2px;
|
||||||
|
color: #FDBD02;
|
||||||
|
font-size: 24px;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
padding: 10px 0 10px 0;
|
||||||
|
text-align: center;
|
||||||
|
color: #011448;
|
||||||
|
font-size: 36px;
|
||||||
|
font-weight: 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
main {
|
||||||
|
background-color: #e6e6e6;
|
||||||
|
color: #000;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*** Standard-Button ***/
|
||||||
|
|
||||||
|
.button {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button a {
|
||||||
|
display: inline-block;
|
||||||
|
background: #FDBD02;
|
||||||
|
color:#303E64;
|
||||||
|
border: none;
|
||||||
|
width: 100px;
|
||||||
|
margin: 5px;
|
||||||
|
padding: 2px;
|
||||||
|
border-radius: 5px;
|
||||||
|
cursor:pointer;
|
||||||
|
font-size: 12px;
|
||||||
|
text-decoration: none;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button a:hover {
|
||||||
|
color:#fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clear {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*** Header-Bereich mit Navigationsleiste ***/
|
||||||
|
header {
|
||||||
|
width: 100%;
|
||||||
|
background-color: #303E64;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav {
|
||||||
|
text-align: center;
|
||||||
|
position: sticky;
|
||||||
|
top: 0;
|
||||||
|
background-color: #303E64;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav ul {
|
||||||
|
list-style-type: none;
|
||||||
|
padding: 0;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav li {
|
||||||
|
float: left;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav li a {
|
||||||
|
display: block;
|
||||||
|
width: 120px;
|
||||||
|
height: 35px;
|
||||||
|
border: 1px solid #000;
|
||||||
|
background-color: #e6e6e6;
|
||||||
|
color: #000;
|
||||||
|
text-decoration: none;
|
||||||
|
margin: 5px;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 35px;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav li a:hover {
|
||||||
|
background-color: #F2C608;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#metanavi {
|
||||||
|
color: lightskyblue;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.item-4-12 {
|
||||||
|
flex: 0 0 33.3333333333%;
|
||||||
|
}
|
||||||
|
|
||||||
|
img {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
[class*="item-"] {
|
||||||
|
padding: 0 10px 0 10px;
|
||||||
|
}
|
27
Controller/GalleryController.php
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace ppa\Controller;
|
||||||
|
|
||||||
|
use ppa\Model\GalleryModel;
|
||||||
|
use ppa\Library\View;
|
||||||
|
|
||||||
|
class GalleryController
|
||||||
|
{
|
||||||
|
private $galleryModel;
|
||||||
|
protected $view;
|
||||||
|
|
||||||
|
public function __construct($view)
|
||||||
|
{
|
||||||
|
$this->galleryModel = new GalleryModel();
|
||||||
|
$this->view = $view;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function showPhotos()
|
||||||
|
{
|
||||||
|
$this->view->setVars([
|
||||||
|
"photos" => $this->galleryModel->selectPhotos()
|
||||||
|
]);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
20
Controller/WelcomeController.php
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace ppa\Controller;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description of Welcome
|
||||||
|
*
|
||||||
|
* @author reich
|
||||||
|
*/
|
||||||
|
class WelcomeController
|
||||||
|
{
|
||||||
|
public function setView(\ppa\Library\View $view)
|
||||||
|
{
|
||||||
|
$this->view = $view;
|
||||||
|
}
|
||||||
|
|
||||||
|
function showWelcome()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
25
Library/ErrorMsg.php
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace ppa\Library;
|
||||||
|
|
||||||
|
use ppa\Library\View;
|
||||||
|
|
||||||
|
class ErrorMsg
|
||||||
|
{
|
||||||
|
protected $view;
|
||||||
|
|
||||||
|
public function __construct($msg = 'Ihre Anfrage konnte nicht verarbeitet werden', $ex = '')
|
||||||
|
{
|
||||||
|
$this->view = new \ppa\Library\View(dirname(__DIR__).DIRECTORY_SEPARATOR.'Views'
|
||||||
|
, 'Error', 'showErrMsg');
|
||||||
|
$this->view->setVars([
|
||||||
|
'error' => $msg,
|
||||||
|
'debug' => $ex
|
||||||
|
|
||||||
|
]);
|
||||||
|
$this->view->render();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
58
Library/View.php
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<?php
|
||||||
|
namespace ppa\Library;
|
||||||
|
|
||||||
|
class View
|
||||||
|
{
|
||||||
|
protected $path, $controller, $do, $vars = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $path Basepath of the views.
|
||||||
|
* @param string $controllerName Current controller.
|
||||||
|
* @param string $actionName Current action.
|
||||||
|
*/
|
||||||
|
public function __construct($path, $controllerName, $doMethodName)
|
||||||
|
{
|
||||||
|
$this->path = $path;
|
||||||
|
$this->controller = $controllerName;
|
||||||
|
$this->do = $doMethodName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set view vars. The keys will be added, to existing keys.
|
||||||
|
*
|
||||||
|
* @param array $vars
|
||||||
|
*/
|
||||||
|
public function setVars(array $vars)
|
||||||
|
{
|
||||||
|
foreach ($vars as $key => $val) {
|
||||||
|
$this->vars[$key] = $val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setDoMethodName($doMethodName)
|
||||||
|
{
|
||||||
|
$this->do = $doMethodName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Render the view.
|
||||||
|
*
|
||||||
|
* @throws NotFoundException
|
||||||
|
*/
|
||||||
|
public function render()
|
||||||
|
{
|
||||||
|
$filename = $this->path.DIRECTORY_SEPARATOR.$this->controller.DIRECTORY_SEPARATOR.$this->do.'.phtml';
|
||||||
|
|
||||||
|
if (!file_exists($filename)) {
|
||||||
|
new \ppa\Library\ErrorMsg("View not found: $filename");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
// spare the view the bloat of using "$this->vars[]" for every variable
|
||||||
|
foreach ($this->vars as $key => $val) {
|
||||||
|
$$key = $val;
|
||||||
|
}
|
||||||
|
|
||||||
|
include $filename;
|
||||||
|
}
|
||||||
|
}
|
45
Model/Database.php
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace ppa\Model;
|
||||||
|
|
||||||
|
abstract class Database {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Zugangsdaten für die Datenbank
|
||||||
|
*/
|
||||||
|
private $dbName = "fotofreunde"; //Datenbankname
|
||||||
|
private $linkName = "localhost"; //Datenbank-Server
|
||||||
|
private $user = "root"; //Benutzername
|
||||||
|
private $pw = "root"; //Passwort
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Stellt eine Verbindung zur Datenbank her
|
||||||
|
*
|
||||||
|
* @return \PDO Gibt eine Datenbankverbindung zurueck
|
||||||
|
*/
|
||||||
|
public function linkDB() {
|
||||||
|
try {
|
||||||
|
$pdo = new \PDO("mysql:dbname=$this->dbName;host=$this->linkName"
|
||||||
|
, $this->user
|
||||||
|
, $this->pw
|
||||||
|
, array(\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION));
|
||||||
|
return $pdo;
|
||||||
|
} catch (\PDOException $e) {
|
||||||
|
new \ppa\Library\ErrorMsg("Verbindung konnte nicht aufgebaut werden.", $e);
|
||||||
|
die;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Zum serverseitigen generieren einer UUID
|
||||||
|
*
|
||||||
|
* @return string Liefert eine UUID
|
||||||
|
*/
|
||||||
|
public function createUUID()
|
||||||
|
{
|
||||||
|
$data = openssl_random_pseudo_bytes(16);
|
||||||
|
$data[6] = chr(ord($data[6]) & 0x0f | 0x40);
|
||||||
|
$data[8] = chr(ord($data[8]) & 0x3f | 0x80);
|
||||||
|
return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
|
||||||
|
}
|
||||||
|
}
|
28
Model/GalleryModel.php
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace ppa\Model;
|
||||||
|
use ppa\Model\ParticipantModel;
|
||||||
|
|
||||||
|
class GalleryModel extends Database
|
||||||
|
{
|
||||||
|
public function selectPhotos()
|
||||||
|
{
|
||||||
|
$sql = "SELECT title, filename, category.description, firstname, gallery.created
|
||||||
|
, gallery.description as alt
|
||||||
|
FROM gallery
|
||||||
|
JOIN category ON category.id = categoryId
|
||||||
|
JOIN user ON user.id = userId
|
||||||
|
ORDER BY gallery.created DESC";
|
||||||
|
|
||||||
|
$pdo = $this->linkDB();
|
||||||
|
|
||||||
|
try {
|
||||||
|
$res = $pdo->query($sql);
|
||||||
|
} catch (\PDOException $e) {
|
||||||
|
new \ppa\Library\ErrorMsg("Ihre Anfrage konnte nicht verarbeitet werden", $e);
|
||||||
|
die;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $res->fetchAll(\PDO::FETCH_ASSOC);
|
||||||
|
}
|
||||||
|
}
|
9
Views/Error/showErrMsg.phtml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?php include dirname(__DIR__).'/header.phtml'; ?>
|
||||||
|
|
||||||
|
<h2><?=$error?></h2>
|
||||||
|
<p><?=$debug?></p>
|
||||||
|
|
||||||
|
<?php include dirname(__DIR__).'/footer.phtml'; ?>
|
||||||
|
|
||||||
|
|
||||||
|
|
17
Views/Gallery/showPhotos.phtml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<?php include dirname(__DIR__).'/header.phtml'; ?>
|
||||||
|
|
||||||
|
<h2>Galerie</h2>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<?php
|
||||||
|
|
||||||
|
foreach($photos as $p) {
|
||||||
|
echo '<div class="item-4-12">';
|
||||||
|
echo '<h3>' . $p["title"] . '</h3>'
|
||||||
|
. '<img src="images/' . $p["filename"] . '" />';
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php include dirname(__DIR__).'/footer.phtml'; ?>
|
6
Views/Welcome/showWelcome.phtml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?php include dirname(__DIR__).'/header.phtml'; ?>
|
||||||
|
|
||||||
|
<h2>Baustelle</h2>
|
||||||
|
|
||||||
|
<?php include dirname(__DIR__).'/footer.phtml'; ?>
|
||||||
|
|
5
Views/footer.phtml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
27
Views/header.phtml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Gallery View Vorlage</title>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
<link href="CSS/style.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<div class="wrapper">
|
||||||
|
<div class="button">
|
||||||
|
<a href="?controller=User&do=showUserLoginForm">Anmelden</a>
|
||||||
|
</div>
|
||||||
|
<h1>Fotofreun<span>.de</span> OWL<span>e.V.</span></h1>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
<nav>
|
||||||
|
<ul>
|
||||||
|
<li><a href="?controller=Welcome&do=showWelcome">Willkommen</a></li>
|
||||||
|
<li><a href="#">Mitglieder</a></li>
|
||||||
|
<li><a href="?controller=Gallery&do=showPhotos">Galerie</a></li>
|
||||||
|
<li><a href="#">Gästebuch</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
<div class="wrapper">
|
||||||
|
<main>
|
107
fotoclub.sql
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
-- phpMyAdmin SQL Dump
|
||||||
|
-- version 4.5.1
|
||||||
|
-- http://www.phpmyadmin.net
|
||||||
|
--
|
||||||
|
-- Host: 127.0.0.1
|
||||||
|
-- Erstellungszeit: 09. Dez 2017 um 16:39
|
||||||
|
-- Server-Version: 10.1.16-MariaDB
|
||||||
|
-- PHP-Version: 7.0.9
|
||||||
|
|
||||||
|
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
|
||||||
|
SET time_zone = "+00:00";
|
||||||
|
|
||||||
|
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
|
||||||
|
/*!40101 SET NAMES utf8mb4 */;
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Datenbank: `ppb`
|
||||||
|
--
|
||||||
|
|
||||||
|
-- --------------------------------------------------------
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Tabellenstruktur für Tabelle `user`
|
||||||
|
--
|
||||||
|
|
||||||
|
CREATE TABLE `user` (
|
||||||
|
`id` varchar(36) NOT NULL,
|
||||||
|
`username` varchar(8) NOT NULL,
|
||||||
|
`firstname` varchar(40) NOT NULL,
|
||||||
|
`lastname` varchar(40) NOT NULL,
|
||||||
|
`email` varchar(300) NOT NULL,
|
||||||
|
`pw` varchar(255) NOT NULL,
|
||||||
|
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
CREATE TABLE `gallery` (
|
||||||
|
`id` varchar(36) NOT NULL,
|
||||||
|
`userId` varchar(36) NOT NULL,
|
||||||
|
`categoryId` varchar(36) NOT NULL,
|
||||||
|
`title` varchar(80) NOT NULL,
|
||||||
|
`filename` varchar(200) NOT NULL,
|
||||||
|
`description` varchar(300) NOT NULL,
|
||||||
|
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
CREATE TABLE `category` (
|
||||||
|
`id` varchar(36) NOT NULL,
|
||||||
|
`description` varchar(200) NOT NULL,
|
||||||
|
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Indizes für die Tabelle `user`
|
||||||
|
--
|
||||||
|
ALTER TABLE `user`
|
||||||
|
ADD PRIMARY KEY (`id`),
|
||||||
|
ADD UNIQUE KEY `username` (`username`);
|
||||||
|
|
||||||
|
ALTER TABLE `category`
|
||||||
|
ADD PRIMARY KEY (`id`);
|
||||||
|
|
||||||
|
ALTER TABLE `gallery`
|
||||||
|
ADD PRIMARY KEY (`id`),
|
||||||
|
ADD CONSTRAINT `FK_EventUser` FOREIGN KEY (`userId`) REFERENCES `user`(`id`),
|
||||||
|
ADD CONSTRAINT `FK_EventCategory` FOREIGN KEY (`categoryId`) REFERENCES `category`(`id`);
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Daten für Tabelle `user`
|
||||||
|
--
|
||||||
|
-- pw: 12345 -> $2y$10$IeMpvUuMIrnxFHN.j94tEe.T1rjsTga1yYoyt5JAAXYUwbbjh1km6
|
||||||
|
|
||||||
|
INSERT INTO `user` (`id`, `username`, `firstname`, `lastname`, `email`, `pw`, `created`) VALUES
|
||||||
|
('0bb28278-d28a-11e7-b93f-2c4d544f8fe0', 'stefan78', 'Stefan', 'Stativ',
|
||||||
|
'test@test.de', '$2y$10$IeMpvUuMIrnxFHN.j94tEe.T1rjsTga1yYoyt5JAAXYUwbbjh1km6', '2017-11-26 09:13:20'),
|
||||||
|
('4f141df7-3c0a-11e8-b046-2c4d544f8fe0', 'fiona84', 'Fiona', 'Filter',
|
||||||
|
'fiona@test.de', '$2y$10$IeMpvUuMIrnxFHN.j94tEe.T1rjsTga1yYoyt5JAAXYUwbbjh1km6', '2018-01-12 11:11:51');
|
||||||
|
|
||||||
|
INSERT INTO `category` (`id`, `description`, `created`) VALUES
|
||||||
|
('23911087-3420-11e8-be39-2c4d544f8fe0', 'Portrait', '2018-04-14 12:11:31'),
|
||||||
|
('4a952637-3422-11e8-be39-2c4d544f8fe0', 'Natur', '2018-04-14 12:11:31'),
|
||||||
|
('999e18d3-3420-11e8-be39-2c4d544f8fe0', 'Landschaft', '2018-04-14 12:11:31'),
|
||||||
|
('dc3a66d9-3c0a-11e8-b046-2c4d544f8fe0', 'Urban', '2018-04-14 12:11:31');
|
||||||
|
|
||||||
|
INSERT INTO `gallery`(`id`, `userId`, `categoryId`, `title`, `filename`, `description`, `created`) VALUES
|
||||||
|
('b164bc94-eaf1-11e7-a313-2c4d544f8fe0', '0bb28278-d28a-11e7-b93f-2c4d544f8fe0', '23911087-3420-11e8-be39-2c4d544f8fe0',
|
||||||
|
'Ich selbst', 'stefan78-001.jpeg', 'Foto eines jungen Mannes mit Kamera', '2018-04-14 12:11:31'),
|
||||||
|
('7519223c-3429-11e8-be39-2c4d544f8fe0', '0bb28278-d28a-11e7-b93f-2c4d544f8fe0', '23911087-3420-11e8-be39-2c4d544f8fe0'
|
||||||
|
, 'Licht', 'stefan78-003.jpeg', 'Foto einer jungen Frau bei Nacht', '2018-03-12 09:31:12'),
|
||||||
|
('d746f216-eaf1-11e7-a313-2c4d544f8fe0', '0bb28278-d28a-11e7-b93f-2c4d544f8fe0', '4a952637-3422-11e8-be39-2c4d544f8fe0'
|
||||||
|
, 'Flowers', 'stefan78-002.jpeg', 'Weiße und rote Blumen', '2018-03-12 09:33:32'),
|
||||||
|
('0ccef76b-3da0-11e8-9afe-2c4d544f8fe0', '4f141df7-3c0a-11e8-b046-2c4d544f8fe0', 'dc3a66d9-3c0a-11e8-b046-2c4d544f8fe0',
|
||||||
|
'Endlos', 'fiona84-001.jpeg', 'Eine spiralförmige Treppe', '2018-05-12 12:11:31'),
|
||||||
|
('61f52468-3da0-11e8-9afe-2c4d544f8fe0', '4f141df7-3c0a-11e8-b046-2c4d544f8fe0', '999e18d3-3420-11e8-be39-2c4d544f8fe0'
|
||||||
|
, 'Morgenrot', 'fiona84-002.jpeg', 'Sonnenaufgang am Strand', '2018-01-11 09:31:12'),
|
||||||
|
('68f78c36-3da0-11e8-9afe-2c4d544f8fe0', '4f141df7-3c0a-11e8-b046-2c4d544f8fe0', 'dc3a66d9-3c0a-11e8-b046-2c4d544f8fe0'
|
||||||
|
, 'Tiefe Wolken', 'fiona84-003.jpeg', 'Eine Brücke im Nebel', '2018-02-23 09:33:32');
|
||||||
|
|
||||||
|
|
||||||
|
-- -------------------------------------------------------
|
||||||
|
|
||||||
|
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
|
||||||
|
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
|
||||||
|
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
BIN
images/fiona84-001.jpeg
Normal file
After Width: | Height: | Size: 242 KiB |
BIN
images/fiona84-002.jpeg
Normal file
After Width: | Height: | Size: 197 KiB |
BIN
images/fiona84-003.jpeg
Normal file
After Width: | Height: | Size: 266 KiB |
BIN
images/fiona84-004.jpeg
Normal file
After Width: | Height: | Size: 180 KiB |
BIN
images/stefan78-001.jpeg
Normal file
After Width: | Height: | Size: 86 KiB |
BIN
images/stefan78-002.jpeg
Normal file
After Width: | Height: | Size: 103 KiB |
BIN
images/stefan78-003.jpeg
Normal file
After Width: | Height: | Size: 252 KiB |
BIN
images/stefan78-004.jpeg
Normal file
After Width: | Height: | Size: 239 KiB |
39
index.php
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
spl_autoload_register(function ($className) {
|
||||||
|
if (substr($className, 0, 4) !== 'ppa\\') { return; }
|
||||||
|
|
||||||
|
$fileName = __DIR__.'/'.str_replace('\\', DIRECTORY_SEPARATOR, substr($className, 4)).'.php';
|
||||||
|
|
||||||
|
if (file_exists($fileName)) { include $fileName; }
|
||||||
|
});
|
||||||
|
|
||||||
|
$controllerName = "";
|
||||||
|
$doMethodName = "";
|
||||||
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||||
|
$controllerName = isset($_POST['controller']) && $_POST['controller'] ? $_POST['controller'] : "Welcome";
|
||||||
|
$doMethodName = isset($_POST['do']) && $_POST['do'] ? $_POST['do'] : "showWelcome";
|
||||||
|
} else {
|
||||||
|
$controllerName = isset($_GET['controller']) && $_GET['controller'] ? $_GET['controller'] : "Welcome";
|
||||||
|
$doMethodName = isset($_GET['do']) && $_GET['do'] ? $_GET['do'] : "showWelcome";
|
||||||
|
}
|
||||||
|
|
||||||
|
$controllerClassName = 'ppa\\Controller\\'.ucfirst($controllerName). 'Controller';
|
||||||
|
|
||||||
|
if (method_exists($controllerClassName, $doMethodName)) {
|
||||||
|
$view = new \ppa\Library\View(__DIR__.DIRECTORY_SEPARATOR.'Views'
|
||||||
|
, ucfirst($controllerName), $doMethodName);
|
||||||
|
|
||||||
|
$controller = new $controllerClassName($view);
|
||||||
|
$controller->$doMethodName();
|
||||||
|
|
||||||
|
$view->render();
|
||||||
|
} else {
|
||||||
|
http_response_code(404);
|
||||||
|
new \ppa\Library\ErrorMsg('Page not found: '.$controllerClassName.'::'.$doMethodName);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|