@@ -66,7 +66,7 @@ $app->get('/', function (Request $request, Response $response, array $args) { | |||
$blogs = new Blogs(); | |||
$blogs = $blogs->getBlogs(); | |||
//TODO: load the blog data | |||
$vars = [ | |||
"content" => $blogs | |||
@@ -121,15 +121,17 @@ $app->map(['GET', 'POST'], '/blog/create', function (Request $request, Response | |||
}); | |||
$app->get('/blog/{slug}', function (Request $request, Response $response, array $args) { | |||
$blogs = new Blogs(); | |||
$blogs = $blogs->getBlog($args['slug']); | |||
$vars = [ | |||
"content" => $blogs | |||
]; | |||
addNavbar($response); | |||
foreach ($_SESSION['blogs'] as $art) { | |||
if ($art['slug'] == $args['slug']) { | |||
$response->getBody()->write("<h1>" . $art['title'] . "</h1>"); | |||
} | |||
} | |||
$twig = $this->get('twig'); | |||
addNavbar($twig); | |||
$a = $twig->render('blog.html.twig', $vars); | |||
$response->getBody()->write($a); | |||
addFooter($response); | |||
return $response; | |||
}); | |||
@@ -17,6 +17,15 @@ class Blog extends DB | |||
return $res; | |||
} | |||
public function getBlog($slug) | |||
{ | |||
$sql = "SELECT * FROM blogs WHERE slug = :slug ;"; | |||
$stmt = $this->prepare($sql); | |||
$stmt->bindValue(':slug', $slug, SQLITE3_TEXT); | |||
$res = $stmt->execute(); | |||
return $res; | |||
} | |||
public function getBlogs() | |||
{ | |||
$sql = "SELECT * FROM blogs"; |
@@ -10,8 +10,18 @@ class Blogs | |||
protected $blogs = []; | |||
public function getBlog($id) | |||
public function getBlog($slug) | |||
{ | |||
$db = new BlogDB(); | |||
$res = $db->getBlog($slug); | |||
$result = $res->fetchArray(SQLITE3_ASSOC); | |||
$blog = new Blog(); | |||
$blog->setSlug($result['slug']); | |||
$blog->setID($result['id']); | |||
$blog->setTitle($result['title']); | |||
$blog->setContent($result['content']); | |||
$this->blogs[] = $blog; | |||
return $this; | |||
} | |||
// TODO/ filter system |
@@ -0,0 +1,13 @@ | |||
{% extends "base.html.twig" %} {% block main %} | |||
<ul> | |||
{% for blog in content.getBlogsList %} | |||
<h1>{{ blog.title }}</h1> | |||
{{ | |||
blog.content | |||
}} | |||
{% endfor %} | |||
</ul> | |||
{% endblock %} |