2017-06-13 22:54:16 +02:00
|
|
|
<?php
|
|
|
|
|
2021-05-25 16:33:58 +02:00
|
|
|
/**
|
|
|
|
* Package MVC\Classe
|
|
|
|
* @author Emmanuel ROY
|
|
|
|
* @license MIT-licence (open source)
|
|
|
|
* @version 3.5
|
|
|
|
*/
|
|
|
|
|
2019-03-14 16:48:02 +01:00
|
|
|
namespace MVC\Classe;
|
|
|
|
|
2020-12-09 10:26:26 +01:00
|
|
|
class Vue
|
|
|
|
{
|
|
|
|
public $ecran;
|
|
|
|
public $block_body;
|
|
|
|
|
2021-05-25 16:33:58 +02:00
|
|
|
public function __construct($page_params)
|
2020-12-09 10:26:26 +01:00
|
|
|
{
|
2021-05-25 16:33:58 +02:00
|
|
|
//$templateData = array();
|
|
|
|
$url_params = array();
|
|
|
|
$templateData = $page_params;
|
|
|
|
|
|
|
|
extract($page_params);
|
|
|
|
//de base on ajoute les parametres du .model et ceux provenant de l'url
|
|
|
|
foreach ($page_params['all_params'] as $key => $value) {
|
|
|
|
//$templateData[$key] = $value;
|
|
|
|
$_GET[$key] = $value;
|
|
|
|
$url_params[$key] = $value;
|
|
|
|
}
|
|
|
|
|
2019-03-05 13:26:50 +01:00
|
|
|
|
2021-02-23 15:28:23 +01:00
|
|
|
if(!isset($engine)){$engine = 'blade';}
|
|
|
|
$flag_exist = false;
|
|
|
|
switch ($engine){
|
|
|
|
case 'twig':
|
|
|
|
if (file_exists(VIEW_PATH.DIRECTORY_SEPARATOR."view".DIRECTORY_SEPARATOR.$name.".html.twig")) {
|
|
|
|
$flag_exist = true;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 'blade':
|
|
|
|
default:
|
|
|
|
if (file_exists(VIEW_PATH.DIRECTORY_SEPARATOR."view".DIRECTORY_SEPARATOR.$name.".blade.php")) {
|
|
|
|
$flag_exist = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-12-09 10:26:26 +01:00
|
|
|
ob_start();
|
2019-09-09 22:37:17 +02:00
|
|
|
|
2021-02-23 15:28:23 +01:00
|
|
|
if($flag_exist){
|
2020-02-01 11:41:01 +01:00
|
|
|
//l'inclusion du controlleur doit renvoyer le tableau $templateData
|
|
|
|
require CONTROLLER_PATH . DIRECTORY_SEPARATOR . $name . '.php';
|
2020-12-09 09:07:15 +01:00
|
|
|
|
2021-02-23 15:28:23 +01:00
|
|
|
//WINWALKER TEMPLATING ENGINE
|
2020-02-01 11:41:01 +01:00
|
|
|
$paths = new \SplPriorityQueue;
|
2019-08-09 09:25:45 +02:00
|
|
|
|
2020-02-01 11:41:01 +01:00
|
|
|
$paths->insert(VIEW_PATH . DIRECTORY_SEPARATOR . "system", 100);
|
|
|
|
$paths->insert(VIEW_PATH . DIRECTORY_SEPARATOR . "layout", 200);
|
|
|
|
$paths->insert(VIEW_PATH . DIRECTORY_SEPARATOR . "view", 300);
|
2019-09-09 22:37:17 +02:00
|
|
|
|
2020-12-10 14:29:31 +01:00
|
|
|
switch ($engine){
|
|
|
|
case 'twig':
|
|
|
|
$renderer = new \Windwalker\Renderer\TwigRenderer($paths);
|
2021-07-09 11:52:48 +02:00
|
|
|
$renderer->addExtension(new \MVC\Classe\TwigControlleurAction);
|
2020-12-10 14:29:31 +01:00
|
|
|
$name .= '.html';
|
|
|
|
break;
|
|
|
|
case 'blade':
|
|
|
|
default:
|
2021-02-23 15:28:23 +01:00
|
|
|
$renderer = new \Windwalker\Renderer\BladeRenderer($paths, array('cache_path' => VIEW_PATH . DIRECTORY_SEPARATOR . "cache"));
|
2020-12-10 14:29:31 +01:00
|
|
|
}
|
|
|
|
|
2021-06-04 11:45:04 +02:00
|
|
|
foreach ($page_params as $key => $value) {
|
|
|
|
$templateData[$key] = $value;
|
|
|
|
}
|
|
|
|
|
2021-02-23 15:28:23 +01:00
|
|
|
//WINWALKER TEMPLATING ENGINE RENDER
|
2020-02-01 11:41:01 +01:00
|
|
|
echo $renderer->render($name, $templateData);
|
2020-12-09 10:26:26 +01:00
|
|
|
} else {
|
2020-02-01 11:41:01 +01:00
|
|
|
include CONTROLLER_PATH . DIRECTORY_SEPARATOR . $name . '.php';
|
2019-09-09 22:37:17 +02:00
|
|
|
}
|
2019-08-12 15:10:25 +02:00
|
|
|
$this->ecran = ob_get_clean();
|
2021-05-25 16:33:58 +02:00
|
|
|
return $this;
|
2020-12-09 10:26:26 +01:00
|
|
|
}
|
2017-06-13 22:54:16 +02:00
|
|
|
}
|