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