Definición de métodos de acciones de acuerdo a la URL

This commit is contained in:
Ricardo García Jiménez 2021-09-19 22:04:30 -05:00
parent b4f8aa1eca
commit 0d4c926679
14 changed files with 161 additions and 28 deletions

View file

@ -5,5 +5,47 @@ defined('NABU') || exit;
require_once 'models/adminModel.php';
class adminController {
static public function admin() {
if (empty($_GET['page'])) {
self::dashboard();
}
else {
switch ($_GET['page']) {
case 'authorize':
self::authorize_article();
break;
case 'delete':
self::delete_article();
break;
case 'edit':
self::edit_article();
break;
case 'published':
self::published_articles();
break;
default:
utils::redirect(NABU_ROUTES['admin']);
}
}
}
static private function dashboard() {
//
}
static private function authorize_article() {
//
}
static private function delete_article() {
//
}
static private function edit_article() {
//
}
static private function published_articles() {
//
}
}

View file

@ -5,5 +5,23 @@ defined('NABU') || exit;
require_once 'models/articlesModel.php';
class articlesController {
static public function all_articles() {
//
}
static public function article() {
//
}
static public function category() {
//
}
static public function post_article() {
//
}
static public function sent_articles() {
//
}
}

View file

@ -5,5 +5,11 @@ defined('NABU') || exit;
require_once 'models/blogModel.php';
class blogController {
static public function errors() {
//
}
static public function home() {
//
}
}

View file

@ -5,5 +5,15 @@ defined('NABU') || exit;
require_once 'models/communityModel.php';
class communityController {
static public function comment() {
//
}
static public function favorites() {
//
}
static public function like() {
//
}
}

View file

@ -5,5 +5,33 @@ defined('NABU') || exit;
require_once 'models/profilesModel.php';
class profilesController {
static public function profile() {
if (empty($_GET['page'])) {
self::view();
}
else {
switch ($_GET['page']) {
case 'delete':
self::delete_profile();
break;
case 'edit':
self::edit_profile();
break;
default:
utils::redirect(NABU_ROUTES['home']);
}
}
}
static private function view() {
//
}
static private function delete_profile() {
//
}
static private function edit_profile() {
//
}
}

View file

@ -5,5 +5,7 @@ defined('NABU') || exit;
require_once 'models/searchModel.php';
class searchController {
static public function search() {
//
}
}

View file

@ -5,5 +5,15 @@ defined('NABU') || exit;
require_once 'models/usersModel.php';
class usersController {
static public function login() {
//
}
static public function logout() {
//
}
static public function signup() {
//
}
}

View file

@ -5,5 +5,7 @@ defined('NABU') || exit;
require_once 'models/verificationsModel.php';
class verificationsController {
public static function verifications() {
//
}
}

View file

@ -3,6 +3,7 @@
defined('NABU') || exit;
require_once 'core/config.php';
require_once 'libs/utils.php';
$components = require 'core/routes.php';
@ -16,18 +17,20 @@ foreach ($components as $alias => $component) {
define('NABU_ROUTES', $routes);
// Selecciona el controlador y la vista de una ruta solicitada.
$controller = 'blogController';
$view = 'home';
if (!empty($_GET['view'])) {
foreach ($components as $alias => $component) {
if ($component['route'] == $_GET['view']) {
$controller = $component['controller'];
$view = $component['view'];
break;
}
}
}
if (empty($controller) || empty($view)) {
utils::redirect(NABU_ROUTES['home']);
}
unset($components, $routes);
require_once 'controllers/' . $controller . '.php';

View file

@ -3,27 +3,27 @@
defined('NABU') || exit;
return array(
'admin' => array('route' => 'admin', 'controller' => 'adminController', 'view' => 'admin'),
'all-articles' => array('route' => 'all-articles', 'controller' => 'articlesController', 'view' => 'all_articles'),
'article' => array('route' => 'article', 'controller' => 'articlesController', 'view' => 'article'),
'authorize-article' => array('route' => 'admin&page=authorize', 'controller' => 'adminController', 'view' => 'admin'),
'category' => array('route' => 'category', 'controller' => 'articlesController', 'view' => 'category'),
'comment' => array('route' => 'comment', 'controller' => 'communityController', 'view' => 'comment'),
'delete-profile' => array('route' => 'profile&page=delete', 'controller' => 'profilesController', 'view' => 'profile'),
'delete-article' => array('route' => 'admin&page=delete', 'controller' => 'adminController', 'view' => 'delete_article'),
'edit-article' => array('route' => 'admin&page=edit', 'controller' => 'adminController', 'view' => 'edit_article'),
'edit-profile' => array('route' => 'profile&page=edit', 'controller' => 'profilesController', 'view' => 'edit_profile'),
'errors' => array('route' => 'errors', 'controller' => 'blogController', 'view' => 'errors'),
'home' => array('route' => 'home', 'controller' => 'blogController', 'view' => 'home'),
'favorites' => array('route' => 'favorites', 'controller' => 'communityController', 'view' => 'favorites'),
'like' => array('route' => 'like', 'controller' => 'communityController', 'view' => 'like'),
'list-articles' => array('route' => 'admin&page=list', 'controller' => 'adminController', 'view' => 'admin'),
'login' => array('route' => 'login', 'controller' => 'usersController', 'view' => 'login'),
'logout' => array('route' => 'logout', 'controller' => 'usersController', 'view' => 'logout'),
'post-article' => array('route' => 'post-article', 'controller' => 'articlesController', 'view' => 'post_article'),
'profile' => array('route' => 'profile', 'controller' => 'profilesController', 'view' => 'profile'),
'search' => array('route' => 'search', 'controller' => 'searchController', 'view' => 'search'),
'sent-articles' => array('route' => 'sent-articles', 'controller' => 'articlesController', 'view' => 'sent_articles'),
'signup' => array('route' => 'signup', 'controller' => 'usersController', 'view' => 'signup'),
'verifications' => array('route' => 'verifications', 'controller' => 'verificationsController', 'view' => 'verifications'),
'admin' => array('route' => 'admin', 'controller' => 'adminController', 'view' => 'admin'),
'all-articles' => array('route' => 'all-articles', 'controller' => 'articlesController', 'view' => 'all_articles'),
'article' => array('route' => 'article', 'controller' => 'articlesController', 'view' => 'article'),
'authorize-article' => array('route' => 'admin&page=authorize', 'controller' => 'adminController', 'view' => 'admin'),
'category' => array('route' => 'category', 'controller' => 'articlesController', 'view' => 'category'),
'comment' => array('route' => 'comment', 'controller' => 'communityController', 'view' => 'comment'),
'delete-profile' => array('route' => 'profile&page=delete', 'controller' => 'profilesController', 'view' => 'profile'),
'delete-article' => array('route' => 'admin&page=delete', 'controller' => 'adminController', 'view' => 'delete_article'),
'edit-article' => array('route' => 'admin&page=edit', 'controller' => 'adminController', 'view' => 'edit_article'),
'edit-profile' => array('route' => 'profile&page=edit', 'controller' => 'profilesController', 'view' => 'edit_profile'),
'errors' => array('route' => 'errors', 'controller' => 'blogController', 'view' => 'errors'),
'home' => array('route' => 'home', 'controller' => 'blogController', 'view' => 'home'),
'favorites' => array('route' => 'favorites', 'controller' => 'communityController', 'view' => 'favorites'),
'like' => array('route' => 'like', 'controller' => 'communityController', 'view' => 'like'),
'published-articles' => array('route' => 'admin&page=published', 'controller' => 'adminController', 'view' => 'admin'),
'login' => array('route' => 'login', 'controller' => 'usersController', 'view' => 'login'),
'logout' => array('route' => 'logout', 'controller' => 'usersController', 'view' => 'logout'),
'post-article' => array('route' => 'post-article', 'controller' => 'articlesController', 'view' => 'post_article'),
'profile' => array('route' => 'profile', 'controller' => 'profilesController', 'view' => 'profile'),
'search' => array('route' => 'search', 'controller' => 'searchController', 'view' => 'search'),
'sent-articles' => array('route' => 'sent-articles', 'controller' => 'articlesController', 'view' => 'sent_articles'),
'signup' => array('route' => 'signup', 'controller' => 'usersController', 'view' => 'signup'),
'verifications' => array('route' => 'verifications', 'controller' => 'verificationsController', 'view' => 'verifications'),
);

View file

@ -0,0 +1,12 @@
<?php
defined('NABU') || exit;
// Colecciòn de herramientas propias de Nabu.
class utils {
// Redirecciona a una página web y termina la ejecución de todos los scripts de PHP.
static public function redirect(string $route) {
header('Location: ' . $route);
exit;
}
}