-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.php
More file actions
131 lines (113 loc) · 3.16 KB
/
index.php
File metadata and controls
131 lines (113 loc) · 3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<?php
// ==========================================
// ROUTER PRINCIPAL DEL FRONTEND
// ==========================================
// Sanitizar parámetros
$view = isset($_GET['view']) ? trim($_GET['view']) : 'inicio';
$slug = isset($_GET['slug']) ? trim($_GET['slug']) : null;
$extra = isset($_GET['extra']) ? trim($_GET['extra']) : null;
// ==========================================
// LISTA DE VISTAS PERMITIDAS
// ==========================================
$rutas_validas = [
'blog',
'inicio',
'contacto',
'articulo',
'sobre-mi',
'categoria',
'categorias',
'politica-de-privacidad'
];
// Si la vista no existe → 404
if (!in_array($view, $rutas_validas)) {
http_response_code(404);
$GLOBALS['pagina_actual'] = '404';
$view = '404';
}
// Define página actual para el header y el footer
$GLOBALS['pagina_actual'] = $view;
// ==========================================
// CARGAR HEADER
// ==========================================
require_once __DIR__ . '/includes/header.php';
// ==========================================
// LÓGICA DEL ROUTER
// ==========================================
// ---------------------------
// PÁGINA DE INICIO
// ---------------------------
if ($view === 'inicio') {
require __DIR__ . '/views/inicio.php';
}
// ---------------------------
// BLOG LISTADO
// /blog
// ---------------------------
elseif ($view === 'blog' && !$slug) {
require __DIR__ . '/views/blog.php';
}
// ---------------------------
// BLOG ARTÍCULO
// /blog/mi-articulo
// /blog/mi-articulo/slug
// ---------------------------
elseif ($view === 'blog' && $slug) {
$articulo_slug = $slug;
$articulo_extra = $extra; // opcional
require __DIR__ . '/views/articulo.php';
}
// ---------------------------
// ARTÍCULO INDIVIDUAL
// /articulo/mi-slug
// ---------------------------
elseif ($view === 'articulo' && $slug) {
$articulo_slug = $slug;
require __DIR__ . '/views/articulo.php';
}
// ---------------------------
// CONTACTO
// /contacto
// ---------------------------
elseif ($view === 'contacto') {
require __DIR__ . '/views/contacto.php';
}
// ---------------------------
// SOBRE MI
// /sobre-mi
// ---------------------------
elseif ($view === 'sobre-mi') {
require __DIR__ . '/views/sobre-mi.php';
}
// ---------------------------
// CATEGORIAS
// /categorias
// ---------------------------
elseif ($view === 'categorias') {
require __DIR__ . '/views/categorias.php';
}
// ---------------------------
// CATEGORIA INDIVIDUAL
// /categoria
// ---------------------------
elseif ($view === 'categoria' && $slug) {
$categoria_slug = $slug;
require __DIR__ . '/views/categoria.php';
}
// ---------------------------
// POLITICA DE PRIVACIDAD
// /politica-de-privacidad
// ---------------------------
elseif ($view === 'politica-de-privacidad') {
require __DIR__ . '/views/politica-de-privacidad.php';
}
// ---------------------------
// 404
// ---------------------------
else {
require __DIR__ . '/views/404.php';
}
// ==========================================
// CARGAR FOOTER
// ==========================================
require_once __DIR__ . '/includes/footer.php';