Compare commits

..

2 Commits

Author SHA1 Message Date
829d121268 add roles 2024-10-24 18:03:57 +02:00
e2b3062a22 twig render function 2024-10-24 17:44:47 +02:00
7 changed files with 109 additions and 30 deletions

View File

@@ -1,12 +0,0 @@
<?php
/* inclure l'autoloader */
require_once('../vendor/autoload.php');
/* templates chargés à partir du système de fichiers (répertoire vue) */
$loader = new Twig\Loader\FilesystemLoader('../templates');
/* options : prod = cache dans le répertoire cache, dev = pas de cache */
$options_prod = array('cache' => 'cache', 'autoescape' => true);
$options_dev = array('cache' => false, 'autoescape' => true);
/* stocker la configuration */
$twig = new Twig\Environment($loader);
/* charger+compiler le template, exécuter, envoyer le résultat au navigateur */
echo $twig->render($vue, $donnees);

View File

@@ -1,6 +1,7 @@
<?php <?php
require_once('../src/User.php'); require_once('../src/User.php');
require_once('../src/Twig.php');
if (isset($_POST)) { if (isset($_POST)) {
if ( if (
@@ -23,7 +24,4 @@ if (isset($_POST)) {
} }
} }
$vue = "users/add.twig"; renderTwig("users/add.twig", array());
$donnees = array();
require_once('../modele/twig.php');

View File

@@ -2,6 +2,7 @@
session_start(); session_start();
require_once('../src/User.php'); require_once('../src/User.php');
require_once('../src/Twig.php');
if (isset($_GET['id']) && !empty($_GET['id'])) { if (isset($_GET['id']) && !empty($_GET['id'])) {
$id = strip_tags($_GET['id']); $id = strip_tags($_GET['id']);
@@ -13,8 +14,4 @@ if (isset($_GET['id']) && !empty($_GET['id'])) {
header('Location: index.php'); header('Location: index.php');
} }
renderTwig("users/details.twig", array("user" => $user));
$vue = "users/details.twig";
$donnees = array("user" => $user);
require_once('../modele/twig.php');

View File

@@ -1,6 +1,7 @@
<?php <?php
require_once('../src/User.php'); require_once('../src/User.php');
require_once('../src/Twig.php');
if (isset($_POST)) { if (isset($_POST)) {
if ( if (
@@ -28,7 +29,4 @@ if (isset($_GET['id']) && !empty($_GET['id'])) {
$user = GetUser($id); $user = GetUser($id);
} }
$vue = "users/edit.twig"; renderTwig("users/edit.twig", array("user" => $user));
$donnees = array("user" => $user);
require_once('../modele/twig.php');

View File

@@ -1,9 +1,6 @@
<?php <?php
// On inclut la connexion à la base
require_once('../src/User.php'); require_once('../src/User.php');
require_once('../src/Twig.php');
$vue = "users/index.twig"; renderTwig("users/index.twig", array("users" => GetUsers()));
$donnees = array("users" => GetUsers());
require_once('../modele/twig.php');

View File

@@ -0,0 +1,86 @@
<?php
require_once('DataBase.php');
class Role
{
public int $id;
public string $name;
function __construct(array $table)
{
$this->id = $table['id'];
$this->name = $table['name'];
}
}
function AddRole(string $name): void
{
global $db;
ConnectDataBase();
$sql = "INSERT INTO `roles` (`name`) VALUES (:name);";
$query = $db->prepare($sql);
$query->bindValue(':name', $name, PDO::PARAM_STR);
$query->execute();
CloseDataBase();
}
function GetRole(int $id): Role
{
global $db;
ConnectDataBase();
$sql = "SELECT * FROM `roles` WHERE `id`=:id;";
$query = $db->prepare($sql);
$query->bindValue(':id', $id, PDO::PARAM_INT);
$query->execute();
$result = $query->fetch();
CloseDataBase();
if (empty($result))
return null;
return new Role($result);
}
function GetRoles(): array
{
global $db;
ConnectDataBase();
$sql = 'SELECT * FROM `roles`';
$query = $db->prepare($sql);
$query->execute();
$result = $query->fetchAll(PDO::FETCH_ASSOC);
CloseDataBase();
$roles = array();
foreach ($result as $role) {
array_push($roles, new User($role));
}
return $roles;
}
function UpdateRole(Role $role): void
{
global $db;
ConnectDataBase();
$sql = "UPDATE `roles` SET `name`=:name WHERE `id`=:id;";
$query = $db->prepare($sql);
$query->bindValue(':login', $role->name, PDO::PARAM_STR);
$query->bindValue(':id', $role->id, PDO::PARAM_INT);
$query->execute();
CloseDataBase();
}

15
tpCrudTwig/src/Twig.php Normal file
View File

@@ -0,0 +1,15 @@
<?php
/* inclure l'autoloader */
require_once('../vendor/autoload.php');
function renderTwig(string $file, $donnees) {
/* templates chargés à partir du système de fichiers (répertoire vue) */
$loader = new Twig\Loader\FilesystemLoader('../templates');
/* options : prod = cache dans le répertoire cache, dev = pas de cache */
$options_prod = array('cache' => 'cache', 'autoescape' => true);
$options_dev = array('cache' => false, 'autoescape' => true);
/* stocker la configuration */
$twig = new Twig\Environment($loader);
/* charger+compiler le template, exécuter, envoyer le résultat au navigateur */
echo $twig->render($file, $donnees);
}