Update 3.2.0
This commit is contained in:
parent
5be76d38f6
commit
c341a9b84b
|
@ -6,7 +6,7 @@ class Bdd
|
||||||
{
|
{
|
||||||
public $bdd;
|
public $bdd;
|
||||||
|
|
||||||
public function __construct($bdd = 'bdd')
|
public function __construct($bdd = 'default')
|
||||||
{
|
{
|
||||||
switch ($bdd) {
|
switch ($bdd) {
|
||||||
case 'bdd1':
|
case 'bdd1':
|
||||||
|
|
|
@ -22,6 +22,7 @@ class Controlleur
|
||||||
}
|
}
|
||||||
// no break
|
// no break
|
||||||
default:
|
default:
|
||||||
|
//si c'est une route symfony alors on appelle le conduit associé
|
||||||
if ($application->route != null) {
|
if ($application->route != null) {
|
||||||
$application->url->page['name'] = $application->route['_route'];
|
$application->url->page['name'] = $application->route['_route'];
|
||||||
$conduit = explode('::', $application->route['controller']);
|
$conduit = explode('::', $application->route['controller']);
|
||||||
|
@ -32,20 +33,20 @@ class Controlleur
|
||||||
$class->initialize($application);
|
$class->initialize($application);
|
||||||
$this->vue = new VueVide();
|
$this->vue = new VueVide();
|
||||||
$this->vue->ecran = $class->$method();
|
$this->vue->ecran = $class->$method();
|
||||||
|
//si c'est une page de traitement PRG on appelle le fichier de controle de formulaire
|
||||||
} elseif ($application->url->page['control']) {
|
} elseif ($application->url->page['control']) {
|
||||||
$url_params = $application->url->page['params'];
|
$url_params = $application->url->page['params'];
|
||||||
require TRAITEMENT_PATH . DIRECTORY_SEPARATOR . $application->url->page['name'] . '.php';
|
require TRAITEMENT_PATH . DIRECTORY_SEPARATOR . $application->url->page['name'] . '.php';
|
||||||
|
//sinon c'est une page MVC normale
|
||||||
} else {
|
} else {
|
||||||
$this->modele = new Modele($application->url->page);
|
$this->modele = new Modele($application->url->page);
|
||||||
|
//on appelle le garde d'authentification
|
||||||
if(isset($this->modele->page['authentification']) && $this->modele->page['authentification'] == 'yes'){
|
if(isset($this->modele->page['authentification']) && $this->modele->page['authentification'] == 'yes'){
|
||||||
//on declare la session lors du chargement du controlleur,
|
//on declare la session lors du chargement du controlleur,
|
||||||
// ainsi on instancie la page précédente et le javascript et le css asynchrone
|
// ainsi on instancie la page précédente et le javascript et le css asynchrone
|
||||||
\MVC\Object\Session::createAndTestSession();
|
\MVC\Object\Session::createAndTestSession();
|
||||||
}else{
|
|
||||||
\MVC\Object\Session::sessionStart();
|
|
||||||
\MVC\Object\History::setPagePrecedente();
|
|
||||||
\MVC\Object\Asynchronous::declare();
|
|
||||||
}
|
}
|
||||||
|
//fixme: doit on passer l'application entière dans la vue ou seulement $application->modele->page ?
|
||||||
$this->vue = new Vue($this);
|
$this->vue = new Vue($this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,17 +7,21 @@ class ControlleurAction
|
||||||
{
|
{
|
||||||
public static function inserer($action, $data = array())
|
public static function inserer($action, $data = array())
|
||||||
{
|
{
|
||||||
|
//on extrait la classe d'appel de l'action
|
||||||
$action = explode('.', $action);
|
$action = explode('.', $action);
|
||||||
$class = ucfirst($action[0]) . "Action";
|
$class = ucfirst($action[0]) . "Action";
|
||||||
//echo $class;
|
//TODO: use try ... catch with \MVC\Classe\Logger to log error
|
||||||
if (is_file(ACTION_PATH . DIRECTORY_SEPARATOR . $class . ".php")) {
|
if (is_file(ACTION_PATH . DIRECTORY_SEPARATOR . $class . ".php")) {
|
||||||
require_once ACTION_PATH . DIRECTORY_SEPARATOR . $class . ".php";
|
require_once ACTION_PATH . DIRECTORY_SEPARATOR . $class . ".php";
|
||||||
|
//On charge la classe Action de façon réflextive
|
||||||
$slot = new $class();
|
$slot = new $class();
|
||||||
|
//si l'action passé en parametre est fournit avec une methode pointée on charge celle demandée sinon on charge celle par defaut
|
||||||
if (isset($action[1])) {
|
if (isset($action[1])) {
|
||||||
$method = $action[1];
|
$method = $action[1];
|
||||||
|
//On appel la méthode de la classe action de manière reflextive
|
||||||
return $slot->$method(...$data);
|
return $slot->$method(...$data);
|
||||||
} else {
|
} else {
|
||||||
return $slot->default($data);
|
return $slot->default(...$data);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/*HandleError*/
|
/*HandleError*/
|
||||||
|
|
|
@ -23,13 +23,8 @@ class HttpMethod
|
||||||
case 'POST':
|
case 'POST':
|
||||||
break;
|
break;
|
||||||
case 'PUT':
|
case 'PUT':
|
||||||
//$this->data['GET'] = ...
|
|
||||||
//POST DATA except enctype="multipart/form-data"
|
|
||||||
$this->data = json_decode(file_get_contents("php://input"), true);
|
|
||||||
// no break
|
|
||||||
case 'DELETE':
|
case 'DELETE':
|
||||||
//$this->data['GET'] = ...
|
//on décode les données depuis l'input afin de les traiter
|
||||||
//POST DATA except enctype="multipart/form-data"
|
|
||||||
$this->data = json_decode(file_get_contents("php://input"), true);
|
$this->data = json_decode(file_get_contents("php://input"), true);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -3,42 +3,6 @@
|
||||||
|
|
||||||
namespace MVC\Classe;
|
namespace MVC\Classe;
|
||||||
|
|
||||||
/**
|
|
||||||
* Class Response
|
|
||||||
*
|
|
||||||
* example use:
|
|
||||||
* $data = array('a','b','c');
|
|
||||||
*
|
|
||||||
* Three Way to send a request
|
|
||||||
*
|
|
||||||
* $request = new Response('http://myurl','mymethod');
|
|
||||||
* $request->addContent($data);
|
|
||||||
* $request->send();
|
|
||||||
*
|
|
||||||
* OR
|
|
||||||
*
|
|
||||||
* $request = new Response('http://myurl');
|
|
||||||
* (
|
|
||||||
* $request->createContext('mymethod')
|
|
||||||
* $request->addContent($data);
|
|
||||||
* $request->send();
|
|
||||||
* ) OR (
|
|
||||||
* $request->get($data);
|
|
||||||
* $request->post($data);
|
|
||||||
* $request->put($data);
|
|
||||||
* $request->delete($data);
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* OR
|
|
||||||
*
|
|
||||||
* $request = new Response();
|
|
||||||
* $request->setUrl('http://myurl')->get($data)
|
|
||||||
* $request->setUrl('http://myurl')->post($data)
|
|
||||||
* $request->setUrl('http://myurl')->put($data)
|
|
||||||
* $request->setUrl('http://myurl')->delete($data)
|
|
||||||
*
|
|
||||||
* @package MVC\Classe
|
|
||||||
*/
|
|
||||||
class HttpMethodRequete
|
class HttpMethodRequete
|
||||||
{
|
{
|
||||||
protected $url;
|
protected $url;
|
||||||
|
|
|
@ -6,6 +6,25 @@ namespace MVC\Classe\Implement;
|
||||||
class Action
|
class Action
|
||||||
{
|
{
|
||||||
public function render($view, $data)
|
public function render($view, $data)
|
||||||
|
{
|
||||||
|
return $this->renderBlade($view,$data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function renderTwig($view, $data)
|
||||||
|
{
|
||||||
|
$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);
|
||||||
|
|
||||||
|
$renderer = new \Windwalker\Renderer\TwigRenderer($paths);
|
||||||
|
$view .= '.html';
|
||||||
|
|
||||||
|
return $renderer->render($view, $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function renderBlade($view, $data)
|
||||||
{
|
{
|
||||||
$paths = new \SplPriorityQueue;
|
$paths = new \SplPriorityQueue;
|
||||||
|
|
||||||
|
|
|
@ -30,11 +30,20 @@ class Modele
|
||||||
$this->page[$matches[1]] = $matches[2];
|
$this->page[$matches[1]] = $matches[2];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->page['url_params'] = $base_param['params'];
|
$this->page['url_params'] = $base_param['params'];
|
||||||
|
//export nom a nom les variable dans la superglobale $_GET
|
||||||
|
foreach($base_param['params'] as $key => $value){
|
||||||
|
$_GET[$key] = $value;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$this->page['name'] = $base_param['name'];
|
$this->page['name'] = $base_param['name'];
|
||||||
$this->page['description'] = $base_param['description'];
|
$this->page['description'] = $base_param['description'];
|
||||||
$this->page['params'] = $base_param['params'];
|
$this->page['params'] = $base_param['params'];
|
||||||
|
//export nom a nom les variable dans la superglobale $_GET
|
||||||
|
foreach($base_param['params'] as $key => $value){
|
||||||
|
$_GET[$key] = $value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
|
|
||||||
namespace MVC\Classe;
|
namespace MVC\Classe;
|
||||||
|
|
||||||
//require_once dirname(dirname(__FILE__)).DIRECTORY_SEPARATOR."config".DIRECTORY_SEPARATOR."define-constantes.php";
|
|
||||||
|
|
||||||
class Url
|
class Url
|
||||||
{
|
{
|
||||||
public $page;
|
public $page;
|
||||||
|
@ -37,21 +35,20 @@ class Url
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//print_r($urlParts);
|
//Récupération du nom de la page
|
||||||
if (isset($urlParts[0])) {
|
if (isset($urlParts[0])) {
|
||||||
//Récupération du nom de la page
|
//il se peut que l'on ait des variable avec ? dans l'url
|
||||||
($urlParts[0] == 'index' || $urlParts[0] == '') ? $page['name'] = 'index' : $page['name'] = $urlParts[0];
|
$urlQuery = explode('?', $urlParts[0]);
|
||||||
|
$urlQueryPageName = $urlQuery[0];
|
||||||
|
($urlQueryPageName == 'index' || $urlQueryPageName == '') ? $page['name'] = 'index' : $page['name'] = $urlQueryPageName;
|
||||||
unset($urlParts[0]);
|
unset($urlParts[0]);
|
||||||
} else {
|
} else {
|
||||||
$page['name'] = 'index';
|
$page['name'] = 'index';
|
||||||
}
|
}
|
||||||
|
|
||||||
//il se peut que l'on ait des variable avec ? dans l'url
|
|
||||||
$urlQuery = explode('?', $page['name']);
|
|
||||||
$page['name'] = $urlQuery[0];
|
|
||||||
|
|
||||||
$page['name'] = strtolower($page['name']);
|
$page['name'] = strtolower($page['name']);
|
||||||
|
|
||||||
|
//si c'est une page de controle de formulaire : on renomme la page
|
||||||
if ($page['name'] == 'control') {
|
if ($page['name'] == 'control') {
|
||||||
$page['control'] = true;
|
$page['control'] = true;
|
||||||
($urlParts[1] == 'index' || $urlParts[1] == '') ? $page['name']='index' : $page['name']=$urlParts[1];
|
($urlParts[1] == 'index' || $urlParts[1] == '') ? $page['name']='index' : $page['name']=$urlParts[1];
|
||||||
|
@ -60,7 +57,7 @@ class Url
|
||||||
|
|
||||||
//vérification du nombre de parametres:
|
//vérification du nombre de parametres:
|
||||||
$numParts = count($urlParts);
|
$numParts = count($urlParts);
|
||||||
//s'il n'existe pas autant de clé que de valeurs, ce peut ^etre un module symfony
|
//s'il n'existe pas autant de clé que de valeurs, ce peut ^etre un module symfony ou tout autre module
|
||||||
if ($numParts%2 != 0) {
|
if ($numParts%2 != 0) {
|
||||||
//si un module symfony n'est pas reférencé avec le nom de la page, on renvoi un erreur
|
//si un module symfony n'est pas reférencé avec le nom de la page, on renvoi un erreur
|
||||||
if (!in_array($page['name'], $this->registre->getIndex())) {
|
if (!in_array($page['name'], $this->registre->getIndex())) {
|
||||||
|
@ -81,10 +78,13 @@ class Url
|
||||||
// si c'est un module alors on charge un a un les parametres
|
// si c'est un module alors on charge un a un les parametres
|
||||||
if (in_array($page['name'], $this->registre->getIndex())) {
|
if (in_array($page['name'], $this->registre->getIndex())) {
|
||||||
foreach ($urlParts as $key => $value) {
|
foreach ($urlParts as $key => $value) {
|
||||||
$values[] = $value;
|
if ($key % 2 == 0) {
|
||||||
$keys[] = $key;
|
$values[] = $value;
|
||||||
|
} else {
|
||||||
|
$keys[] = $value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$page['params'] = $values;
|
$page['params'] = array_combine($keys, $values);
|
||||||
// sinon c'est une page normal du framework
|
// sinon c'est une page normal du framework
|
||||||
} else {
|
} else {
|
||||||
$values = array();
|
$values = array();
|
||||||
|
@ -96,11 +96,7 @@ class Url
|
||||||
$keys[] = $value;
|
$keys[] = $value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($page['control']) {
|
$page['params'] = array_combine($keys, $values);
|
||||||
$page['params'] = array_combine($values, $keys);
|
|
||||||
} else {
|
|
||||||
$page['params'] = array_combine($keys, $values);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$page['name'] = lcfirst($page['name']);
|
$page['name'] = lcfirst($page['name']);
|
||||||
|
@ -112,21 +108,29 @@ class Url
|
||||||
//recherche du fichier controlleur correpondant HTTP1.1 ou HTTP1.0
|
//recherche du fichier controlleur correpondant HTTP1.1 ou HTTP1.0
|
||||||
switch ($method) {
|
switch ($method) {
|
||||||
//cas des requètes HTTP1.1
|
//cas des requètes HTTP1.1
|
||||||
case 'PUT':
|
|
||||||
case 'DELETE':
|
|
||||||
case 'GET':
|
case 'GET':
|
||||||
case 'POST':
|
case 'POST':
|
||||||
if ($appRequest) {
|
if ($appRequest) {
|
||||||
$page['name'] = ucfirst($page['name']);
|
$page['name'] = ucfirst($page['name']);
|
||||||
$pageFile = CONTROLLER_PATH . DIRECTORY_SEPARATOR . $page['name'] . 'HttpReponse.php';
|
$pageFile = CONTROLLER_PATH . DIRECTORY_SEPARATOR . $page['name'] . 'HttpReponse.php';
|
||||||
|
if (!file_exists($pageFile)) {
|
||||||
|
$pageFile = CONTROLLER_PATH . DIRECTORY_SEPARATOR . $page['name'] . 'RestReponse.php';
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$page['name'] = lcfirst($page['name']);
|
|
||||||
$pageFile = CONTROLLERS_PATH . DIRECTORY_SEPARATOR . $page['name'] . '.php';
|
$pageFile = CONTROLLERS_PATH . DIRECTORY_SEPARATOR . $page['name'] . '.php';
|
||||||
if (!file_exists($pageFile)) {
|
if (!file_exists($pageFile)) {
|
||||||
$page['name'] = ucfirst($page['name']);
|
$page['name'] = ucfirst($page['name']);
|
||||||
$pageFile = CONTROLLER_PATH . DIRECTORY_SEPARATOR . $page['name'] . 'HttpReponse.php';
|
$pageFile = CONTROLLER_PATH . DIRECTORY_SEPARATOR . $page['name'] . 'HttpReponse.php';
|
||||||
|
if (!file_exists($pageFile)) {
|
||||||
|
$pageFile = CONTROLLER_PATH . DIRECTORY_SEPARATOR . $page['name'] . 'RestReponse.php';
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case 'PUT':
|
||||||
|
case 'DELETE':
|
||||||
|
$page['name'] = ucfirst($page['name']);
|
||||||
|
$pageFile = CONTROLLER_PATH . DIRECTORY_SEPARATOR . $page['name'] . 'RestReponse.php';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,15 +159,6 @@ class Url
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function module_link_rewrite($page, $params = array())
|
|
||||||
{
|
|
||||||
$stringParams = '';
|
|
||||||
foreach ($params as $values) {
|
|
||||||
$stringParams .= "/" . $values;
|
|
||||||
}
|
|
||||||
return '/' . BASE_SERVER_DIRECTORY . $page . $stringParams;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static function link_rewrite_slashParam($page, $params = array())
|
private static function link_rewrite_slashParam($page, $params = array())
|
||||||
{
|
{
|
||||||
$stringParams = '';
|
$stringParams = '';
|
||||||
|
@ -194,8 +189,7 @@ class Url
|
||||||
$base_url = $scheme . "://" . $url;
|
$base_url = $scheme . "://" . $url;
|
||||||
$url = $base_url;
|
$url = $base_url;
|
||||||
}else{
|
}else{
|
||||||
$base_url = PATH_URL;
|
$url = PATH_URL;
|
||||||
$url = $base_url . BASE_SERVER_DIRECTORY;
|
|
||||||
}
|
}
|
||||||
if ($isControlPatern) {
|
if ($isControlPatern) {
|
||||||
$uri = self::controlLink_rewrite($page, $params);
|
$uri = self::controlLink_rewrite($page, $params);
|
||||||
|
@ -210,4 +204,20 @@ class Url
|
||||||
public static function getBaseDirectory(){
|
public static function getBaseDirectory(){
|
||||||
return '/' . BASE_SERVER_DIRECTORY;
|
return '/' . BASE_SERVER_DIRECTORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getRootDirectoryUrl(){
|
||||||
|
if(isset($_SERVER['HTTP_HOST'])) {
|
||||||
|
$url = $_SERVER['HTTP_HOST'];
|
||||||
|
if (isset($_SERVER['REQUEST_SCHEME'])) {
|
||||||
|
$scheme = $_SERVER['REQUEST_SCHEME'];
|
||||||
|
} else {
|
||||||
|
$scheme = 'http';
|
||||||
|
}
|
||||||
|
$base_url = $scheme . "://" . $url;
|
||||||
|
$url = $base_url;
|
||||||
|
}else{
|
||||||
|
$url = PATH_URL;
|
||||||
|
}
|
||||||
|
return $url . BASE_SERVER_DIRECTORY;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,23 +12,34 @@ class Vue
|
||||||
$templateData = array();
|
$templateData = array();
|
||||||
extract($application->modele->page);
|
extract($application->modele->page);
|
||||||
|
|
||||||
ob_start();
|
if(!isset($engine)){$engine = 'blade';}
|
||||||
if (file_exists(VIEW_PATH.DIRECTORY_SEPARATOR."view".DIRECTORY_SEPARATOR.$name.".blade.php")) {
|
$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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
|
||||||
|
if($flag_exist){
|
||||||
//l'inclusion du controlleur doit renvoyer le tableau $templateData
|
//l'inclusion du controlleur doit renvoyer le tableau $templateData
|
||||||
require CONTROLLER_PATH . DIRECTORY_SEPARATOR . $name . '.php';
|
require CONTROLLER_PATH . DIRECTORY_SEPARATOR . $name . '.php';
|
||||||
|
|
||||||
|
//WINWALKER TEMPLATING ENGINE
|
||||||
|
|
||||||
//TEMPLATING BLADE
|
|
||||||
$paths = new \SplPriorityQueue;
|
$paths = new \SplPriorityQueue;
|
||||||
|
|
||||||
$paths->insert(VIEW_PATH . DIRECTORY_SEPARATOR . "system", 100);
|
$paths->insert(VIEW_PATH . DIRECTORY_SEPARATOR . "system", 100);
|
||||||
$paths->insert(VIEW_PATH . DIRECTORY_SEPARATOR . "layout", 200);
|
$paths->insert(VIEW_PATH . DIRECTORY_SEPARATOR . "layout", 200);
|
||||||
$paths->insert(VIEW_PATH . DIRECTORY_SEPARATOR . "view", 300);
|
$paths->insert(VIEW_PATH . DIRECTORY_SEPARATOR . "view", 300);
|
||||||
|
|
||||||
if(!isset($engine)){$engine = 'blade';}
|
|
||||||
|
|
||||||
switch ($engine){
|
switch ($engine){
|
||||||
case 'twig':
|
case 'twig':
|
||||||
$renderer = new \Windwalker\Renderer\TwigRenderer($paths);
|
$renderer = new \Windwalker\Renderer\TwigRenderer($paths);
|
||||||
|
@ -36,7 +47,7 @@ class Vue
|
||||||
break;
|
break;
|
||||||
case 'blade':
|
case 'blade':
|
||||||
default:
|
default:
|
||||||
$renderer = new \Windwalker\Renderer\BladeRenderer($paths, array('cache_path' => VIEW_PATH . DIRECTORY_SEPARATOR . "cache"));
|
$renderer = new \Windwalker\Renderer\BladeRenderer($paths, array('cache_path' => VIEW_PATH . DIRECTORY_SEPARATOR . "cache"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -44,6 +55,7 @@ class Vue
|
||||||
foreach ($application->modele->page as $key => $value) {
|
foreach ($application->modele->page as $key => $value) {
|
||||||
$templateData[$key] = $value;
|
$templateData[$key] = $value;
|
||||||
}
|
}
|
||||||
|
//WINWALKER TEMPLATING ENGINE RENDER
|
||||||
echo $renderer->render($name, $templateData);
|
echo $renderer->render($name, $templateData);
|
||||||
} else {
|
} else {
|
||||||
include CONTROLLER_PATH . DIRECTORY_SEPARATOR . $name . '.php';
|
include CONTROLLER_PATH . DIRECTORY_SEPARATOR . $name . '.php';
|
||||||
|
|
|
@ -1,10 +1,20 @@
|
||||||
#Comment modifier proprement une page contenu dans le framework SAND
|
#Comment modifier proprement une page contenu dans le framework SAND
|
||||||
|
|
||||||
Tout d’abord il vous faut reconnaitre la vue pour aller chercher le bon fichier à modifier dans le dossier `application/include`.
|
Tout d’abord il vous faut reconnaitre le nom de la page suivant le routage pour aller chercher les bons fichiers à modifier dans le dossier `include`.
|
||||||
|
|
||||||
Si vous désirez modifier le comportement d’une page il vous faudra très certainement modifier le contrôleur et la view associé, voir peut-être l’action et sa vue.
|
Par exemple : pour la page `index`, les bon fichiers à modifier sont :
|
||||||
|
|
||||||
Si vous désirez juste modifier l’affichage, il vous suffira simplement de modifier la vue blade ou twig suivant le moteur de rendu.
|
- `application/include/controlleurs/index.php`
|
||||||
|
- `application/include/modeles/index.model`
|
||||||
|
- `application/include/vues/view/index.blade.php` ou `application/include/vues/view/index.html.twig`
|
||||||
|
|
||||||
|
Si vous désirez modifier le comportement d’une page il vous faudra très certainement modifier le contrôleur et la vue associée, voire peut-être l’action et sa vue si la vue mère fait des appels de ce type.
|
||||||
|
|
||||||
|
Les actions se trouve dans le dossier `application/include/actions/` et leurs vues sont dans le même dossiers que les vues mères : `application/include/vues/view/`, il convient de la préfixer par `action-actionnamedescription`.
|
||||||
|
|
||||||
|
Le `.model` de la page contient une variable engine qui peut prendre les valeurs `blade` ou `twig`. Par défaut si ce paramètre de modèle n’est pas renseigné c’est le moteur de rendu `blade` qui sera appelé.
|
||||||
|
|
||||||
|
Si vous désirez juste modifier l’affichage, il vous suffira simplement de modifier la vue `blade` ou `twig` suivant le moteur de rendu.
|
||||||
|
|
||||||
|
Cependant si vous désirez modifier le `head` ou le `layout` de la page vous devrez modifier les fichiers dans `application/include/vues/system/` ou `application/include/vues/layout/`
|
||||||
|
|
||||||
Le fichier `.model` de la page contient une variable engine qui peut prendre les valeurs `blade` ou `twig`.
|
|
||||||
Par défaut si ce paramètre de modèle n’est pas renseigné c’est le moteur de rendu blade qui sera appelé.
|
|
||||||
|
|
Loading…
Reference in a new issue