SAND-framework/application/class/Vue.php

84 lines
2.6 KiB
PHP
Raw Normal View History

2017-06-13 22:54:16 +02:00
<?php
/**
* Package MVC\Classe
* @author Emmanuel ROY
* @license MIT-licence (open source)
* @version 3.5
*/
namespace MVC\Classe;
2020-12-09 10:26:26 +01:00
class Vue
{
public $ecran;
public $block_body;
public function __construct($page_params)
2020-12-09 10:26:26 +01: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();
2021-02-23 15:28:23 +01:00
if($flag_exist){
//l'inclusion du controlleur doit renvoyer le tableau $templateData
require CONTROLLER_PATH . DIRECTORY_SEPARATOR . $name . '.php';
2021-02-23 15:28:23 +01:00
//WINWALKER TEMPLATING ENGINE
$paths = new \SplPriorityQueue;
$paths->insert(VIEW_PATH . DIRECTORY_SEPARATOR . "system", 100);
$paths->insert(VIEW_PATH . DIRECTORY_SEPARATOR . "layout", 200);
$paths->insert(VIEW_PATH . DIRECTORY_SEPARATOR . "view", 300);
2020-12-10 14:29:31 +01:00
switch ($engine){
case 'twig':
$renderer = new \Windwalker\Renderer\TwigRenderer($paths);
$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
echo $renderer->render($name, $templateData);
2020-12-09 10:26:26 +01:00
} else {
include CONTROLLER_PATH . DIRECTORY_SEPARATOR . $name . '.php';
}
2019-08-12 15:10:25 +02:00
$this->ecran = ob_get_clean();
return $this;
2020-12-09 10:26:26 +01:00
}
2017-06-13 22:54:16 +02:00
}