radiantassure/Framework/Vue.php
2025-12-27 08:27:41 +00:00

157 lines
4.1 KiB
PHP
Executable File

<?php
require_once 'Session.php';
require_once 'Configuration.php';
require_once 'Functions.php';
class Vue
{
private $fichier;
private $titre;
private $nomvue;
private $datejour;
private $datejourfr;
private $heuresysteme;
private $heuresystemefr;
public function __construct($action, $controleur = "")
{
$fichier = "Vue/";
if ($controleur != "") {
$fichier = $fichier . $controleur . "/";
}
$this->fichier = $fichier . $action . ".php";
if (substr($controleur, 0, 2) == "Tb")
{
$this->nomvue = substr($controleur, 0, 7);
} else
if (substr($controleur, 0, 2) == "Rq")
{
$this->nomvue = "Execution";
} else
{
$this->nomvue = $controleur;
}
$this->datejour = date("Y-m-d");
$this->datejourfr = date("d/m/Y");
$this->heuresysteme = date("Y-m-d H:i:s");
$this->heuresystemefr = date("d/m/Y H:i:s");
// Ajout du 06/04/2019
require_once 'Localisation.php';
}
public function generer($donnees)
{
// Ajout du 26/10/2024 => déconnecter si session expirée
$_SESSION['derniere_action'] = time();
$contenu = $this->genererFichier($this->fichier, $donnees);
$racineWeb = Configuration::get("racineWeb", "/");
$_SESSION['racineWeb'] = $racineWeb;
if (!isset($_SESSION['menu']))
{
$vue = $this->genererFichier('Vue/portail.php', array('titre' => $this->titre, 'contenu' => $contenu, 'racineWeb' => $racineWeb));
} else
{
$menus = $_SESSION['menu'];
$menusvue = $_SESSION['menu'.$this->nomvue];
$vue = $this->genererFichier('Vue/gabarit.php', array('titre' => $this->titre, 'contenu' => $contenu,
'racineWeb' => $racineWeb, 'menus' => $menus, 'nomvue' => $this->nomvue, 'menusvue' => $menusvue,
'datejour' => $this->datejour, 'heuresysteme' => $this->heuresysteme));
}
echo $vue;
}
public function genererAjaxgabarit($donnees)
{
$contenu = $this->genererFichier($this->fichier, $donnees);
$racineWeb = Configuration::get("racineWeb", "/");
$_SESSION['racineWeb'] = $racineWeb;
if (!isset($_SESSION['menu']))
{
$vue = $this->genererFichier('Vue/portail.php', array('titre' => $this->titre, 'contenu' => $contenu, 'racineWeb' => $racineWeb));
} else
{
$menus = $_SESSION['menu'];
$menusvue = $_SESSION['menu'.$this->nomvue];
$vue = $this->genererFichier('Vue/gabarit.php', array('titre' => $this->titre, 'contenu' => $contenu,
'racineWeb' => $racineWeb, 'menus' => $menus, 'nomvue' => $this->nomvue, 'menusvue' => $menusvue,
'datejour' => $this->datejour, 'heuresysteme' => $this->heuresysteme));
}
echo $vue;
}
public function genererAjax($donnees)
{
$vue = $this->genererFichier($this->fichier, $donnees);
echo $vue;
}
private function genererFichier($fichier, $donnees)
{
if (file_exists($fichier)) {
extract($donnees);
ob_start();
require $fichier;
return ob_get_clean();
}
else {
throw new Exception("Fichier '$fichier' introuvable");
}
}
private function nettoyer($valeur)
{
if (!isset($valeur))
{
$valeur = '';
}
return htmlspecialchars($valeur, ENT_QUOTES, 'UTF-8', false);
}
private function nettoyertrue($valeur)
{
if (!isset($valeur))
{
$valeur = '';
}
return htmlspecialchars($valeur, ENT_QUOTES, 'UTF-8', true);
}
private function echapper($valeur)
{
if (!isset($valeur))
{
$valeur = '';
}
return addslashes($valeur);
}
private function dechapper($valeur)
{
if (!isset($valeur))
{
$valeur = '';
}
return stripslashes($valeur);
}
/**
* Fonction de fin de session et deconnexion automatique
* @param $duree
*/
private function dureesession($duree, $racine){
// Le delais est est atteint
if(isset($_SESSION['derniere_action']) && (time() - $_SESSION['derniere_action']) > $duree){ //subtract new timestamp from the old one
unset($_SESSION['derniere_action']);
header('Location: '.$racine.'Connexion/deconnecter');
} else {
$_SESSION['derniere_action'] = time(); //set new timestamp
}
}
}