Ajoute la redirection avec le slug
This commit is contained in:
@@ -16,7 +16,7 @@ class AdminController
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$news = new News(-1, $_POST['title'], $_POST['content'], new DateTime(), $di->getSecurity()->getCurrentUserId());
|
||||
$di->getNewsGateway()->insert($news);
|
||||
HttpResponse::redirect($di->getRouter()->url('news/' . $news->getId()));
|
||||
HttpResponse::redirect($di->getRouter()->url($news->getSlugRedirect()));
|
||||
}
|
||||
$news = new News(-1, '', '', new DateTime(), $di->getSecurity()->getCurrentUserId());
|
||||
return HttpResponse::found('edit', ['news' => $news]);
|
||||
@@ -28,7 +28,7 @@ class AdminController
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$news = new News($news->getId(), $_POST['title'], $_POST['content'], $news->getPublicationDate(), $news->getAuthorId());
|
||||
$di->getNewsGateway()->update($news);
|
||||
HttpResponse::redirect($di->getRouter()->url('news/' . $news->getId()));
|
||||
HttpResponse::redirect($di->getRouter()->url($news->getSlugRedirect()));
|
||||
}
|
||||
return HttpResponse::found('edit', ['news' => $news]);
|
||||
}
|
||||
|
@@ -35,6 +35,9 @@ class UserController
|
||||
{
|
||||
$newsId = intval($params['id']);
|
||||
$news = $di->getNewsGateway()->getById($newsId);
|
||||
if($news->getSlug() !== $params['slug']){
|
||||
HttpResponse::redirect($di->getRouter()->url($news->getSlugRedirect()));
|
||||
}
|
||||
return new HttpResponse(200, 'newsView', ['news' => $news]);
|
||||
}
|
||||
|
||||
|
@@ -38,6 +38,11 @@ class News
|
||||
return strtolower(trim(preg_replace('/[^A-Za-z0-9-]+/', '-', $this->title)));
|
||||
}
|
||||
|
||||
public function getSlugRedirect(): string
|
||||
{
|
||||
return 'news/' . $this->getSlug() . '-'. $this->getId();
|
||||
}
|
||||
|
||||
public function getContent(): string
|
||||
{
|
||||
return $this->content;
|
||||
|
@@ -7,7 +7,7 @@
|
||||
</div>
|
||||
<h1>Hello world!</h1>
|
||||
<?php foreach ($params['news'] as $news) : ?>
|
||||
<a href="<?= $router->url('news/' . $news->getSlug() . '-'. $news->getId()) ?>">
|
||||
<a href="<?= $router->url($news->getSlugRedirect()) ?>">
|
||||
<div class="card">
|
||||
<header class="card-header">
|
||||
<p class="card-header-title">
|
||||
|
Reference in New Issue
Block a user