2020-03-08 04:37:19 +01:00
|
|
|
<?php
|
2022-02-24 01:53:36 +01:00
|
|
|
/**
|
|
|
|
* View - DuckBrain
|
2021-10-22 05:34:49 +02:00
|
|
|
*
|
|
|
|
* Manejador de vistas simplificado.
|
|
|
|
*
|
2022-04-12 21:56:50 +02:00
|
|
|
* @author KJ
|
2022-02-24 01:53:36 +01:00
|
|
|
* @website https://kj2.me
|
|
|
|
* @licence MIT
|
|
|
|
*/
|
2020-03-08 04:37:19 +01:00
|
|
|
|
2020-03-17 18:46:16 +01:00
|
|
|
namespace Libs;
|
2020-03-08 04:37:19 +01:00
|
|
|
|
2022-06-26 03:11:11 +02:00
|
|
|
class View extends Neuron {
|
2020-03-17 18:46:16 +01:00
|
|
|
|
2022-02-24 01:53:36 +01:00
|
|
|
/**
|
|
|
|
* Función que "renderiza" las vistas
|
2021-10-22 05:34:49 +02:00
|
|
|
*
|
|
|
|
* @param string $viewName
|
|
|
|
* Ruta relativa y el nommbre sin extensión del archivo ubicado en src/Views
|
|
|
|
*
|
|
|
|
* @param array $params
|
2022-02-24 01:53:36 +01:00
|
|
|
* (opcional) Arreglo que podrá ser usado en la vista mediante $view ($param['index'] se usaría así: $view->index)
|
2021-10-22 05:34:49 +02:00
|
|
|
*
|
|
|
|
* @param string $viewPath
|
2022-02-24 01:53:36 +01:00
|
|
|
* (opcional) Ruta donde se encuentra la vista. En caso de que la vista no se encuentre en esa ruta, se usará la ruta por defecto "src/Views/".
|
2021-10-22 05:34:49 +02:00
|
|
|
*/
|
2022-03-17 22:22:04 +01:00
|
|
|
public static function render(string $viewName, array $params = [], string $viewPath = null) {
|
2022-06-26 03:11:11 +02:00
|
|
|
$instance = new View($params);
|
|
|
|
$instance->html($viewName, $viewPath);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Renderiza las vistas HTML
|
|
|
|
*
|
|
|
|
* @param string $viewName
|
|
|
|
* Ruta relativa y el nommbre sin extensión del archivo ubicado en src/Views
|
|
|
|
*
|
|
|
|
* @param string $viewPath
|
|
|
|
* (opcional) Ruta donde se encuentra la vista. En caso de que la vista no se encuentre en esa ruta, se usará la ruta por defecto "src/Views/".
|
|
|
|
*/
|
|
|
|
public function html(string $viewName, string $viewPath = null) {
|
|
|
|
$view = $this;
|
2021-10-22 05:34:49 +02:00
|
|
|
|
|
|
|
if (isset($viewPath) && file_exists($viewPath.$viewName.'.php'))
|
|
|
|
return include($viewPath.$viewName.'.php');
|
|
|
|
|
|
|
|
include(ROOT_DIR.'/src/Views/'.$viewName.'.php');
|
|
|
|
}
|
2022-06-26 03:11:11 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Imprime los datos en Json.
|
|
|
|
*
|
|
|
|
* @param object $data
|
|
|
|
*/
|
|
|
|
public function json(object $data) {
|
2022-11-22 05:59:20 +01:00
|
|
|
header('Content-Type: application/json; charset=utf-8');
|
2022-06-26 03:11:11 +02:00
|
|
|
print(json_encode($data));
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Imprime los datos en texto plano
|
|
|
|
*
|
|
|
|
* @param string $txt
|
|
|
|
*/
|
|
|
|
public function text(string $txt) {
|
2022-11-22 05:59:20 +01:00
|
|
|
header('Content-Type: text/plain; charset=utf-8');
|
|
|
|
print($txt);
|
2022-06-26 03:11:11 +02:00
|
|
|
}
|
2020-03-08 04:37:19 +01:00
|
|
|
}
|
|
|
|
?>
|