[Agrega] rutas para editar, eliminar y autorizar artículos en espera de aprobación

This commit is contained in:
Ricardo García Jiménez 2022-01-30 15:52:32 -06:00
parent 09d47cc575
commit a802566fc9
4 changed files with 72 additions and 1 deletions

View file

@ -18,10 +18,20 @@
defined('NABU') || exit();
require_once 'models/adminModel.php';
class adminController {
// Renderiza la página de administración para aprobar un artículo
// y aprueba un artículo con el método POST.
static public function approve_articles() {
$adminModel = new adminModel();
$articles = $adminModel -> sent();
unset($adminModel);
$messages = messages::get();
require_once 'views/admin/approve-articles.php';
}
@ -31,6 +41,16 @@ class adminController {
require_once 'views/admin/review-article.php';
}
// Renderiza la página para eliminar un artículo.
static public function delete_article() {
require_once 'views/pages/confirm-password.php';
}
// Renderiza la página autorizar la publicación de un artículo
static public function authorize_article() {
require_once 'views/pages/confirm-password.php';
}
// Renderiza la página de administración para buscar artículos publicados.
static public function published_articles() {
require_once 'views/admin/published-articles.php';

View file

@ -19,10 +19,12 @@
defined('NABU') || exit();
return array(
'authentication' => array('route' => 'authentication', 'controller' => 'authenticationController', 'view' => 'authentication'),
'all-articles' => array('route' => 'all-articles', 'controller' => 'articlesController', 'view' => 'all_articles'),
'approve-articles' => array('route' => 'approve-articles', 'controller' => 'adminController', 'view' => 'approve_articles'),
'article' => array('route' => 'article', 'controller' => 'articlesController', 'view' => 'article'),
'authentication' => array('route' => 'authentication', 'controller' => 'authenticationController', 'view' => 'authentication'),
'authorize-article' => array('route' => 'authorize-article', 'controller' => 'adminController', 'view' => 'authorize_article'),
'delete-article' => array('route' => 'delete-article', 'controller' => 'adminController', 'view' => 'delete_article'),
'delete-profile' => array('route' => 'delete-profile', 'controller' => 'profilesController', 'view' => 'delete_profile'),
'edit-profile' => array('route' => 'edit-profile', 'controller' => 'profilesController', 'view' => 'edit_profile'),
'errors' => array('route' => 'errors', 'controller' => 'blogController', 'view' => 'errors'),

View file

@ -23,6 +23,35 @@ class adminModel extends dbConnection {
parent::__construct();
}
// @return un array asociativo de artículos en espera de aprobación.
public function sent(string $pattern = '') {
$query = 'SELECT a.title, a.slug, u.username AS author ' .
'FROM articles AS a INNER JOIN users AS u ON a.user_id = u.id ' .
'WHERE a.authorized = FALSE ORDER BY a.creation_date DESC';
if (!empty($pattern))
$query = $query . 'LIMIT ? OFFSET ?';
try {
$prepare = $this -> pdo -> prepare($query);
if (empty($pattern))
$prepare -> execute();
else
$prepare -> execute();
$articles = $prepare -> fetchAll();
if (empty($articles))
$articles = array();
return $articles;
}
catch (PDOException $e) {
$this -> errors($e -> getMessage(), 'tuvimos un problema para mostrar los artículos en espera de aprobación');
}
}
public function __destruct() {
parent::__destruct();
$this -> pdo = null;

View file

@ -21,4 +21,24 @@
<?php require_once 'views/components/dashboard.php' ?>
<h1>Aprobar artículos</h1>
<table>
<tr>
<th>Título</th>
<th>Autor</th>
<th></th>
<th></th>
<th></th>
</tr>
<?php foreach($articles as $article): ?>
<tr>
<td><?= utils::escape($article['title']) ?></td>
<td><a href="<?= NABU_ROUTES['profile'] . '&user=' . urlencode($article['author']) ?>"><?= utils::escape($article['author']) ?></a></td>
<td><a href="<?= NABU_ROUTES['review-article'] . '&slug=' . $article['slug'] ?>">Editar</a></td>
<td><a href="<?= NABU_ROUTES['delete-article'] . '&slug=' . $article['slug'] ?>">Eliminar</a></td>
<td><a href="<?= NABU_ROUTES['authorize-article'] . '&slug=' . $article['slug'] ?>">Publicar</a></td>
</tr>
<?php endforeach ?>
</table>
<?php require_once 'views/components/footer.php' ?>