* [Lista] artículos publicados en admin.
* [Permite] eliminar y editar artículos publicados en admin
This commit is contained in:
parent
077845bd4c
commit
4a3cdae13f
|
@ -38,8 +38,8 @@ class adminController {
|
|||
|
||||
$pagination = utils::pagination($total, self::limit, $view);
|
||||
|
||||
// Lista de artículos en espera de aprobación.
|
||||
$articles = $adminModel -> sent(self::limit, $pagination['accumulation'], $query);
|
||||
// Obtiene todos los artículos en espera de aprobación.
|
||||
$articles = $adminModel -> find_sent(self::limit, $pagination['accumulation'], $query);
|
||||
|
||||
$page = $pagination['page'];
|
||||
|
||||
|
@ -314,11 +314,27 @@ class adminController {
|
|||
utils::redirect(NABU_ROUTES['approve-articles']);
|
||||
}
|
||||
|
||||
// Renderiza la página de administración para buscar artículos publicados.
|
||||
// Renderiza la página de administración con la lista de artículos
|
||||
// publicados y realiza búsquedas con el método POST.
|
||||
static public function published_articles() {
|
||||
$view = NABU_ROUTES['published-articles'];
|
||||
$max = 246;
|
||||
$query = '';
|
||||
$max = 246;
|
||||
$search = utils::validate_search(NABU_ROUTES['published-articles'], $max);
|
||||
$query = $search['query'];
|
||||
$view = $search['view'];
|
||||
|
||||
$adminModel = new adminModel();
|
||||
|
||||
// Obtiene el número total de artículos publicados.
|
||||
$total = $adminModel -> count_published($query);
|
||||
|
||||
$pagination = utils::pagination($total, self::limit, $view);
|
||||
|
||||
// Obtiene todos los artículos publicados.
|
||||
$articles = $adminModel -> find_published(self::limit, $pagination['accumulation'], $query);
|
||||
|
||||
$page = $pagination['page'];
|
||||
|
||||
unset($search, $adminModel, $total, $pagination);
|
||||
|
||||
$token = csrf::generate();
|
||||
$messages = messages::get();
|
||||
|
@ -326,11 +342,14 @@ class adminController {
|
|||
require_once 'views/admin/published-articles.php';
|
||||
}
|
||||
|
||||
// Renderiza la página de administración para buscar usuarios registrados.
|
||||
// Renderiza la página de administración con la lista de usuarios
|
||||
// registrado y realiza búsquedas con el método POST.
|
||||
static public function registered_users() {
|
||||
$view = NABU_ROUTES['registered-users'];
|
||||
$max = 255;
|
||||
$query = '';
|
||||
$max = 255;
|
||||
$search = utils::validate_search(NABU_ROUTES['registered-users'], $max);
|
||||
$query = $search['query'];
|
||||
$view = $search['view'];
|
||||
|
||||
|
||||
$token = csrf::generate();
|
||||
$messages = messages::get();
|
||||
|
|
|
@ -80,7 +80,7 @@ class articlesController {
|
|||
// Renderiza la página para listar todos los artículos autorizados
|
||||
// y realiza búsquedas con el método POST.
|
||||
static public function all_articles() {
|
||||
$max = 246;
|
||||
$max = 246;
|
||||
$search = utils::validate_search(NABU_ROUTES['all-articles'], $max);
|
||||
$query = $search['query'];
|
||||
$view = $search['view'];
|
||||
|
@ -92,7 +92,7 @@ class articlesController {
|
|||
|
||||
$pagination = utils::pagination($total, self::limit, $view);
|
||||
|
||||
// Lista de artículos autorizados.
|
||||
// Obtiene los artículos autorizados.
|
||||
$articles = $articlesModel -> all(self::limit, $pagination['accumulation'], $query);
|
||||
|
||||
$page = $pagination['page'];
|
||||
|
|
|
@ -25,7 +25,10 @@ class blogController {
|
|||
|
||||
$blogModel = new blogModel();
|
||||
|
||||
$articles = $blogModel -> popular(5);
|
||||
// Obtiene los artículos más populares.
|
||||
$articles = $blogModel -> popular(5);
|
||||
|
||||
// Obtiene los artículos más recientes.
|
||||
$recent_articles = $blogModel -> recent(10);
|
||||
|
||||
unset($blogModel);
|
||||
|
|
|
@ -48,7 +48,7 @@ class adminModel extends dbConnection {
|
|||
}
|
||||
|
||||
// @return un array asociativo de artículos en espera de aprobación.
|
||||
public function sent(int $limit, int $accumulation, string $pattern) {
|
||||
public function find_sent(int $limit, int $accumulation, 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 ';
|
||||
|
@ -74,7 +74,7 @@ class adminModel extends dbConnection {
|
|||
return $articles;
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para listar los artículos en espera de aprobación');
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para obtener los artículos en espera de aprobación');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -200,6 +200,61 @@ class adminModel extends dbConnection {
|
|||
}
|
||||
}
|
||||
|
||||
// @return el número total de artículos publicados.
|
||||
public function count_published(string $pattern) {
|
||||
$query = 'SELECT COUNT(*) AS total FROM articles WHERE authorized = TRUE';
|
||||
|
||||
if (!empty($pattern))
|
||||
$query = $query . ' AND title LIKE ?';
|
||||
|
||||
try {
|
||||
$prepare = $this -> pdo -> prepare($query);
|
||||
|
||||
if (empty($pattern))
|
||||
$prepare -> execute();
|
||||
else
|
||||
$prepare -> execute(array('%' . $pattern . '%'));
|
||||
|
||||
$count = $prepare -> fetch();
|
||||
|
||||
return $count['total'];
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para calcular el número total de artículos publicados');
|
||||
}
|
||||
}
|
||||
|
||||
// @return un array asociativo de artículos publicados.
|
||||
public function find_published(int $limit, int $accumulation, 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 = TRUE ';
|
||||
|
||||
if (!empty($pattern))
|
||||
$query = $query . 'AND a.title LIKE ? ';
|
||||
|
||||
$query = $query . 'ORDER BY a.title ASC LIMIT ? OFFSET ?';
|
||||
|
||||
try {
|
||||
$prepare = $this -> pdo -> prepare($query);
|
||||
|
||||
if (empty($pattern))
|
||||
$prepare -> execute(array($limit, $accumulation));
|
||||
else
|
||||
$prepare -> execute(array('%' . $pattern . '%', $limit, $accumulation));
|
||||
|
||||
$articles = $prepare -> fetchAll();
|
||||
|
||||
if (empty($articles))
|
||||
$articles = array();
|
||||
|
||||
return $articles;
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para obtener los artículos publicados');
|
||||
}
|
||||
}
|
||||
|
||||
public function __destruct() {
|
||||
parent::__destruct();
|
||||
$this -> pdo = null;
|
||||
|
|
|
@ -25,4 +25,22 @@
|
|||
|
||||
<?php require_once 'views/components/search.php' ?>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>Título</th>
|
||||
<th>Autor</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>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</table>
|
||||
|
||||
<?php require_once 'views/components/pagination.php' ?>
|
||||
<?php require_once 'views/components/footer.php' ?>
|
||||
|
|
Loading…
Reference in a new issue