Avancement sur Tableau de bord Admin et User

This commit is contained in:
nox 2019-12-09 01:02:34 +01:00
parent 2f38ff0776
commit ef9e63d898
15 changed files with 440 additions and 207 deletions

View File

@ -145,18 +145,24 @@ header.header img {
display: block; display: block;
margin: auto; margin: auto;
} }
/******************************************************************/
/* dashboard.twig */
/******************************************************************/
.tab-de-bord {
background-color: brown;
padding: 1rem;
min-width: 350px;
}
/******************************************************************/ /******************************************************************/
/* layout.twig */ /* layout.twig */
/******************************************************************/ /******************************************************************/
.mdp_oublie:hover { .mdp_oublie:hover {
background-color: deepskyblue; background-color: deepskyblue;
} }
/******************************************************************/ /******************************************************************/
/* LOADING PUBKEY */ /* LOADING PUBKEY */
/******************************************************************/ /******************************************************************/
#cle_pub { #cle_pub {
display: none; display: none;
} }
@ -178,7 +184,17 @@ body.loading .loadingPubkey {
/* POUR MOBILES */ /* POUR MOBILES */
/******************************************************************/ /******************************************************************/
@media only screen and (max-width:560px) { @media only screen and (max-width:560px) {
/******************************************************************/
/* dashboard.twig */
/******************************************************************/
.tab-de-bord {
background-color: brown;
padding: 1rem;
min-width: 280px;
}
/******************************************************************/
/* layout.twig */
/******************************************************************/
.fond { .fond {
background-color: black; background-color: black;
background-image: url("../images/bildreich_1275.jpg"); background-image: url("../images/bildreich_1275.jpg");

View File

@ -2,12 +2,12 @@
session_start(); session_start();
ini_set('display_errors', 0); ini_set('display_errors', 0);
include '../../config/config.php'; include '../../config/config.php';
$antenne_slug = $_GET['antenne_slug']; $antenne_slug = $_GET['antenne_slug'];
$nom_connecte = $_SESSION['user']; $nom_connecte = $_SESSION['user'];
$bdd = new \PDO("mysql:host=$db_server;dbname=$db_name", $db_username, $db_password); $bdd = new \PDO("mysql:host=$db_server;dbname=$db_name", $db_username, $db_password);
// Affichage des intitulés de colonnes // Affichage des intitulés de colonnes
$data = '<table class="table table-bordered table-striped"> $data = '<table class="table table-bordered table-striped">
<tr style="color: black;"> <tr style="color: black;">
<th>No.</th> <th>No.</th>
<th>Bien / service</th> <th>Bien / service</th>
@ -17,88 +17,88 @@
<th>Quantité</th> <th>Quantité</th>
<th>Prix en junes</th>'; <th>Prix en junes</th>';
$params["antenne_slug"] = $antenne_slug; $params["antenne_slug"] = $antenne_slug;
$requete = "SELECT products.*, users.username, users.pubkey $requete = "SELECT products.*, users.username, users.pubkey
FROM products FROM products
LEFT JOIN antennes LEFT JOIN antennes
ON antennes.id = products.antenne_id ON antennes.id = products.antenne_id
LEFT JOIN users LEFT JOIN users
ON users.id = products.user_id ON users.id = products.user_id
WHERE antennes.slug = :antenne_slug"; WHERE antennes.slug = :antenne_slug";
$stmt = $bdd->prepare($requete); $stmt = $bdd->prepare($requete);
$stmt2 = $bdd->prepare($requete); $stmt2 = $bdd->prepare($requete);
$stmt->execute($params); $stmt->execute($params);
$stmt2->execute($params); $stmt2->execute($params);
$count = $stmt->rowCount(); $count = $stmt->rowCount();
$affich_actions = false; $affich_actions = false;
while ($row2 = $stmt2->fetch(PDO::FETCH_ASSOC)) { while ($row2 = $stmt2->fetch(PDO::FETCH_ASSOC)) {
if ($row2['username'] == $nom_connecte) { if ($row2['username'] == $nom_connecte) {
$affich_actions = true; $affich_actions = true;
}
} }
if ($affich_actions) { }
$data .= '<th colspan="2" style="text-align: center;">Actions</th>'; if ($affich_actions) {
$data .= '</tr>'; $data .= '<th colspan="2" style="text-align: center;">Actions</th>';
} else { $data .= '</tr>';
$data .= '</tr>'; } else {
} $data .= '</tr>';
if ($count > 0) }
{ if ($count > 0)
$number = 1; {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $number = 1;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$data .= "<tr style='background:lightblue;color:black;'> $data .= "<tr style='background:lightblue;color:black;'>
<td>$number</td>"; <td>$number</td>";
$prix = $row['prix']; $prix = $row['prix'];
$vendeur = $row['username']; $vendeur = $row['username'];
$produit = $row['name']; $produit = $row['name'];
$pubkey = $row['pubkey']; $pubkey = $row['pubkey'];
$pubkeyShort = substr($pubkey, 0, 8); $pubkeyShort = substr($pubkey, 0, 8);
$vendeur_format = "<a target=\"_blank\" href=\"https://g1.duniter.fr/#/app/wot/$pubkey/\">$vendeur</a>"; $vendeur_format = "<a target=\"_blank\" href=\"https://g1.duniter.fr/#/app/wot/$pubkey/\">$vendeur</a>";
$cle_pub_format = "<a target=\"_blank\" href=\"https://g1.duniter.fr/api/#/v1/payment/$pubkey?amount=$prix&name=$vendeur&comment=[Achat GMarche] : $produit&preferred_node=https://g1.librelois.fr&redirect_url=https://gmarche.monnaie-libre.fr\" title=$pubkey> $pubkeyShort... </a>"; $cle_pub_format = "<a target=\"_blank\" href=\"https://g1.duniter.fr/api/#/v1/payment/$pubkey?amount=$prix&name=$vendeur&comment=[Achat GMarche] : $produit&preferred_node=https://g1.librelois.fr&redirect_url=https://gmarche.monnaie-libre.fr\" title=$pubkey> $pubkeyShort... </a>";
$data .= '<td>'.$produit.'</td>'; $data .= '<td>'.$produit.'</td>';
$data .= '<td><img src="/uploads/products/'.$antenne_slug.'/'.$row['image'].'" width="100" height="100" /></td>'; $data .= '<td><img src="/uploads/products/'.$antenne_slug.'/'.$row['image'].'" width="100" height="100" /></td>';
$data .= '<td>'.$vendeur_format.'</td>'; $data .= '<td>'.$vendeur_format.'</td>';
$data .= '<td>'.$cle_pub_format.'</td>'; $data .= '<td>'.$cle_pub_format.'</td>';
$data .= '<td>'.$row['quantite'].'</td>'; $data .= '<td>'.$row['quantite'].'</td>';
$data .= '<td>'.$prix.'</td>'; $data .= '<td>'.$prix.'</td>';
if ($row['username'] == $nom_connecte ) { if ($row['username'] == $nom_connecte ) {
$data .= '<td>'; $data .= '<td>';
$data .= '<button onclick="GetProduitsDetails(\''; $data .= '<button onclick="GetProduitsDetails(\'';
$data .= $row['id']; $data .= $row['id'];
$data .= "'"; $data .= "'";
$data .= ','; $data .= ',';
$data .= "'$antenne_slug'"; $data .= "'$antenne_slug'";
$data .= ",'"; $data .= ",'";
$data .= $row['image']; $data .= $row['image'];
$data .= "'"; $data .= "'";
$data .= ')" class=\'btn btn-primary\''; $data .= ')" class=\'btn btn-primary\'';
$data .= '>Modifier'; $data .= '>Modifier';
$data .= '</button>'; $data .= '</button>';
$data .= '</td><td>'; $data .= '</td><td>';
$data .= '<button onclick="DeleteProduits(\''; $data .= '<button onclick="DeleteProduits(\'';
$data .= $row['id']; $data .= $row['id'];
$data .= "'"; $data .= "'";
$data .= ','; $data .= ',';
$data .= "'$antenne_slug'"; $data .= "'$antenne_slug'";
$data .= ",'"; $data .= ",'";
$data .= $row['image']; $data .= $row['image'];
$data .= "'"; $data .= "'";
$data .= ')" class=\'btn btn-danger\''; $data .= ')" class=\'btn btn-danger\'';
$data .= '>Supprimer</button>'; $data .= '>Supprimer</button>';
$data .= '</td>'; $data .= '</td>';
} else { } else {
if ($affich_actions) { if ($affich_actions) {
$data .= '<td></td><td></td>'; $data .= '<td></td><td></td>';
}
} }
$data .= '</tr>';
$number++;
} }
} else { $data .= '</tr>';
// Il n'y a pas encore de biens/services saisis $number++;
$data .= "<tr style='background-color:lightblue;text-align:left;color:black;'><td colspan='10'>Aucun enregistrement saisi</td></tr>";
} }
$data .= '</table>'; } else {
echo $data; // Il n'y a pas encore de biens/services saisis
$data .= "<tr style='background-color:lightblue;text-align:left;color:black;'><td colspan='10'>Aucun enregistrement saisi</td></tr>";
}
$data .= '</table>';
echo $data;
?> ?>

View File

@ -2,8 +2,6 @@
namespace App\Admin; namespace App\Admin;
use App\Admin\Table\UserTable;
use Framework\Auth;
use Framework\Module; use Framework\Module;
use Framework\Renderer\RendererInterface; use Framework\Renderer\RendererInterface;
use Framework\Renderer\TwigRenderer; use Framework\Renderer\TwigRenderer;
@ -11,43 +9,19 @@ use Framework\Router;
class AdminModule extends Module class AdminModule extends Module
{ {
const DEFINITIONS = __DIR__ . '/config.php'; const DEFINITIONS = __DIR__ . '/config.php';
/**
* @var Auth
*/
private $auth;
public function __construct( public function __construct(
RendererInterface $renderer, RendererInterface $renderer,
Router $router, Router $router,
AdminTwigExtension $adminTwigExtension, AdminTwigExtension $adminTwigExtension,
UserTable $userTable,
Auth $auth,
string $prefix string $prefix
) )
{ {
$this->userTable = $userTable; $router->get('/dashboard', DashboardAction::class, 'dashboard');
$this->auth = $auth; $router->get('/dashboard/{user:[a-zA-Z\-0-9]+}', DashboardUserAction::class, 'dashboard.user');
$renderer->addPath('admin', __DIR__ . '/views');
$name_user = $this->auth->getUser()->username;
//$role = $user->getRoles();
$role = $_SESSION['role'];
$page = $params['p'] ?? 1; // Si la page n'est pas définie, on l'initialise à 1
//$liste_users = $this->userTable->findAll()->paginate(25, $page);
$liste_adminGeneral = $this->userTable->findAdminUsers('1');
$liste_adminAntenne = $this->userTable->findAdminUsers('2');
$liste_users = $this->userTable->findAdminUsers('3');
$router->get($prefix, DashboardAction::class, 'admin');
$router->post($prefix, DashboardAction::class);
if ($renderer instanceof TwigRenderer) { if ($renderer instanceof TwigRenderer) {
$renderer->getTwig()->addExtension($adminTwigExtension); $renderer->getTwig()->addExtension($adminTwigExtension);
$renderer->getTwig()->addGlobal('role',$role);
$renderer->getTwig()->addGlobal('name_user',$name_user);
$renderer->getTwig()->addGlobal('liste_adminGeneral',$liste_adminGeneral);
$renderer->getTwig()->addGlobal('liste_adminAntenne',$liste_adminAntenne);
$renderer->getTwig()->addGlobal('liste_users',$liste_users);
} }
} }
} }

View File

@ -1,7 +1,10 @@
<?php <?php
namespace App\Admin; namespace App\Admin;
use App\Admin\Table\UserTable;
use App\Gmarche\Table\AntenneTable;
use Framework\Renderer\RendererInterface; use Framework\Renderer\RendererInterface;
use Psr\Http\Message\ServerRequestInterface;
class DashboardAction class DashboardAction
{ {
@ -10,22 +13,54 @@ class DashboardAction
* @var RendererInterface * @var RendererInterface
*/ */
private $renderer; private $renderer;
/**
* @var AntenneTable
*/
private $antenneTable;
//private $widgets;
public function __construct(RendererInterface $renderer) /**
* @var UserTable
*/
private $userTable;
public function __construct(
RendererInterface $renderer,
AntenneTable $antenneTable,
UserTable $userTable)
{ {
$this->renderer = $renderer; $this->renderer = $renderer;
// $this->widgets = $widgets; $this->antenneTable = $antenneTable;
$this->userTable = $userTable;
} }
public function __invoke() /**
* @param ServerRequestInterface $request
* @return string
*/
public function __invoke(ServerRequestInterface $request)
{ {
if ($request->getMethod() === 'GET') { if ($request->getMethod() === 'GET') {
/*$widgets = array_reduce($this->widgets, function (string $html, AdminWidgetInterface $widget) {
return $html . $widget->render(); $this->renderer->addPath('admin', __DIR__ . '/views');
}, '');*/ $page = $params['p'] ?? 1; // Si la page n'est pas définie, on l'initialise à 1
return $this->renderer->render('@admin/dashboard'); $liste_adminGeneral = $this->userTable->findAdminUsers('1');
$liste_adminAntenne = $this->userTable->findAdminUsers('2');
$liste_users_suivi = $this->userTable->findUsers('3');
$listeAntennes = $this->antenneTable->findAllAntennes();
if (!isset($_SESSION)) {
session_start();
}
if (isset($_SESSION['user'])) {
$nom_user = $_SESSION['user'];
$role = $_SESSION['role'];
} else {
$nom_user = '';
$role = '3';
}
return $this->renderer->render('@admin/dashboard',
compact('nom_user','role', 'liste_adminGeneral', 'liste_users_suivi',
'liste_adminAntenne', 'listeAntennes'));
} }
} }
} }

View File

@ -0,0 +1,76 @@
<?php
namespace App\Admin;
use App\Auth\UserTable;
use App\Admin\Table\UserTable as UserTableAdmin;
use App\Gmarche\Table\AntenneTable;
use Framework\Auth;
use Framework\Renderer\RendererInterface;
use Psr\Http\Message\ServerRequestInterface;
class DashboardUserAction
{
/**
* @var RendererInterface
*/
private $renderer;
/**
* @var Auth
*/
private $auth;
/**
* @var AntenneTable
*/
private $antenneTable;
/**
* @var UserTable
*/
private $userTable;
public function __construct(
RendererInterface $renderer,
Auth $auth,
AntenneTable $antenneTable,
UserTable $userTable,
UserTableAdmin $userTableAdmin)
{
$this->renderer = $renderer;
$this->auth = $auth;
$this->antenneTable = $antenneTable;
$this->userTable = $userTable;
$this->userTableAdmin = $userTableAdmin;
}
/**
* @param ServerRequestInterface $request
* @return string
*/
public function __invoke(ServerRequestInterface $request)
{
if ($request->getMethod() === 'GET') {
$this->renderer->addPath('admin', __DIR__ . '/views');
$liste_users_suivi = $this->userTableAdmin->findUsers('3');
$username = $request->getAttribute('user');
$profil_user = $this->userTable->findBy('username', $username);
// var_dump($profil_user);
// die();
$listeAntennes = $this->antenneTable->findAllAntennes();
if (!isset($_SESSION)) {
session_start();
}
if (isset($_SESSION['user'])) {
$nom_user = $_SESSION['user'];
$role = $_SESSION['role'];
} else {
$nom_user = '';
$role = '3';
}
return $this->renderer->render('@admin/dashboard_user',
compact('nom_user','role','username','profil_user','liste_users_suivi','listeAntennes'));
}
}
}

View File

@ -29,4 +29,5 @@ class User
public $avatar; public $avatar;
public $suiviantenne;
} }

View File

@ -3,6 +3,8 @@
namespace App\Admin\Table; namespace App\Admin\Table;
use App\Admin\Entity\User; use App\Admin\Entity\User;
use App\Gmarche\Table\AntenneTable;
use App\Gmarche\Table\RegionTable;
use Framework\Database\Query; use Framework\Database\Query;
use Framework\Database\Table; use Framework\Database\Table;
@ -12,19 +14,50 @@ class UserTable extends Table
protected $table = 'users'; protected $table = 'users';
public function findList(): array
{
$results = $this->pdo
->query("SELECT id, name FROM {$this->table}")
->fetchAll(\PDO::FETCH_NUM);
$list = [];
foreach ($results as $result) {
$list[$result[0]] = $result[1];
}
return $list;
}
public function findAntennebyId(int $id_antenne): Query
{
$antenne = new AntenneTable($this->pdo);
return $this->makeQuery()
->select('a.name as nameAntenne')
->where("a.id = $id_antenne");
}
public function findUsers($role): Query
{
return $this->makeQuery()
->select('u.*')
->where("u.role = '".$role."'")
->order('u.username ASC');
}
/*public function findUsersSuivi($role): Query
{
$antenne = new AntenneTable($this->pdo);
return $this->makeQuery()
->join($antenne->getTable() . ' as a', 'substring(u.suiviantenne,1,1) = a.id')
->select('u.*,a.name as nameAntenne')
->where("u.role = '".$role."'")
->order('u.username, nameAntenne ASC');
}*/
public function findAdminUsers($role): Query public function findAdminUsers($role): Query
{ {
//$region = new RegionTable($this->pdo);
return $this->makeQuery() return $this->makeQuery()
->select('u.*') ->select('u.*')
->where("u.role = $role") ->where("u.role = $role")
->order('u.username ASC'); ->order('u.username ASC');
} }
public function findRole($username): Query public function findRole($username): Query
{ {
//$region = new RegionTable($this->pdo); return $this->makeQuery()
return $this->makeQuery()
->select('u.role') ->select('u.role')
->where("u.username = $username"); ->where("u.username = $username");
} }

View File

@ -1,59 +1,105 @@
{% extends '@admin/layout.twig' %} {% extends 'layout.twig' %}
{% block title "Ğ1-Marché - Tableau de bord" %}
{% block body %} {% block body %}
<h3 style="display:inline-block;">Tableau de bord - </h3> <div class="container" style="color:floralwhite;background-color: #333333;padding: 1rem;">
<h4 style="display:inline-block;"> <div class="container tab-de-bord">
{% if role == '0' %} Super Admin{% endif %} <h3 style="display:inline-block;">Tableau de bord - </h3>
{% if role == '1' %} Admin général{% endif %} <h4 style="display:inline-block;">
{% if role == '2' %} Admin Antenne{% endif %} {% if role == '0' %} Super Admin{% endif %}
</h4> {% if role == '1' %} Admin général{% endif %}
</h3> {% if role == '2' %} Admin Antenne{% endif %}
<p></p> </h4>
{% if role == '0' %} </h3>
<h4>Liste des admins généraux</h4> </div>
<ul class="list-group list-group-flush"> <p></p>
{% for admin_gen in liste_adminGeneral %} {% if role == '0' %}
<a style="color:black;" href="" title="{{ admin_gen.username }}"> <h4>Liste des admins généraux</h4>
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;"> <ul class="list-group list-group-flush">
{{ admin_gen.username }} {% for admin_gen in liste_adminGeneral %}
</li> <a style="color:black;" href="" title="{{ admin_gen.username }}">
</a> <li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;">
{% endfor %} {{ admin_gen.username }}
</ul> </li>
{% endif %} </a>
{% if (role == '0' or role == '1') %} {% endfor %}
<h4>Liste des admins Antenne</h4> </ul>
<ul class="list-group list-group-flush"> {% endif %}
{% for admin_ant in liste_adminAntenne %} <p></p>
<a style="color:black;" href="" title="{{ admin_ant.username }}"> {% if (role == '0' or role == '1') %}
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;"> <h4>Liste des admins Antenne</h4>
{{ admin_ant.username }} <ul class="list-group list-group-flush">
</li> {% for admin_ant in liste_adminAntenne %}
</a> <a style="color:black;" href="" title="{{ admin_ant.username }}">
{% endfor %} <li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;">
</ul> {{ admin_ant.username }}
{% endif %} </li>
{% if (role == '0' or role == '1' or role == '2') %} </a>
<h4>Liste des utilisateurs</h4> {% endfor %}
<ul class="list-group list-group-flush"> </ul>
{% for user in liste_users %} {% endif %}
<a style="color:black;" href="" title="{{ user.username }}"> <p></p>
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;"> {% if (role == '0' or role == '1' or role == '2') %}
{{ user.username }} <h4>Liste des régions/antennes</h4>
</li> <ul class="list-group list-group-flush">
</a> {% set antenne = '' %}
{% endfor %} {% set region = '' %}
</ul> {% for item in listeAntennes %}
{% endif %} {% if (item.regionName != region) %}
<p></p> <li class="liste_antennes list-group-item" style="color:black;
{% if (role == '0' or role == '1') %} background-color:lightgoldenrodyellow;padding: .2rem 1.25rem;">
<h4>Gestion d'une antenne</h4> {{ item.regionName }}
{% endif %} </li>
<p></p> <a style="color:black;" href="" title="{{ item.regionName }}">
{% if (role == '0' or role == '1' or role == '2') %} <li class="liste_antennes list-group-item" style="background-color:#8fbc8f;padding: .2rem 1.25rem;">
<h4>Gestion d'un G-Marché</h4> {{ item.antenneName }}
{% endif %} </li>
<div class="row"> </a>
{{ widgets | raw }} {% else %}
<a style="color:black;" href="" title="{{ item.regionName }}">
<li class="liste_antennes list-group-item" style="background-color:#8fbc8f;padding: .2rem 1.25rem;">
{{ item.antenneName }}
</li>
</a>
{% endif %}
{% set antenne = item.antenneName %}
{% set region = item.regionName %}
{% endfor %}
</ul>
{% endif %}
<p></p>
{% if (role == '0' or role == '1' or role == '2') %}
<h4>Liste des utilisateurs</h4>
<ul class="list-group list-group-flush">
{% for item2 in liste_users_suivi %}
<a style="color:black;" href="{{ path('dashboard.user',{user:item2.username}) }}" title="{{ item2.username }}">
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;">
{{ item2.username }}
{% set antenne_suivie = item2.suiviantenne|split('|') %}
{% for antenn in antenne_suivie %}
{% for item in listeAntennes %}
{% if (item.id == antenn) %}
- {{ item.antenneName }}
{% endif %}
{% endfor %}
{% endfor %}
</li>
</a>
{% endfor %}
</ul>
{% endif %}
<p></p>
{% if (role == '0' or role == '1') %}
<h4>Gestion d'une antenne</h4>
{% endif %}
<p></p>
{% if (role == '0' or role == '1' or role == '2') %}
<h4>Gestion d'un G-Marché</h4>
{% endif %}
<div class="row">
{{ widgets | raw }}
</div>
</div> </div>
{% endblock %} {% endblock %}

View File

@ -0,0 +1,63 @@
{% extends 'layout.twig' %}
{% block title "Ğ1-Marché - Tableau de bord User" %}
{% block body %}
<div class="container" style="color:floralwhite;background-color: #333333;padding: 1rem;">
<div class="container tab-de-bord">
<h3 style="display:inline-block;">Tableau de bord User - {{ username }}</h3>
</div>
<ul class="list-group list-group-flush">
<div class="container" style="color:black;background-color: lightgray;opacity: 0.9;margin: 1rem;padding:1rem;">
<form action="" method="post">
<button class="btn btn-primary">Désactiver l'utilisateur</button>
</form>
</div>
</ul>
<p></p>
<h4>Profil</h4>
<ul class="list-group list-group-flush">
<div class="container" style="color:black;background-color: lightgray;opacity: 0.9;margin: 1rem;padding:1rem;">
<form action="" method="post">
<!-- csrf_input() -->
{{ field('firstname', profil_user.firstname, 'Prénom') }}
{{ field('lastname', profil_user.lastname, 'Nom') }}
Adresse mail {{ profil_user.email }}<p></p>
Clé publique {{ profil_user.pubkey }}
<p></p>
<button class="btn btn-primary">Modifier les informations</button>
</form>
</div>
</ul>
<ul class="list-group list-group-flush">
<div class="container" style="color:black;background-color: lightgray;opacity: 0.9;margin: 1rem;padding:1rem;">
<form action="" method="post">
<button class="btn btn-primary">Renvoyer un mot de passe</button>
</form>
</div>
</ul>
<p></p>
<h4>Liste des antennes suivies</h4>
<ul class="list-group list-group-flush">
<li class="liste_antennes list-group-item" style="color:black;padding: .2rem 1.25rem;">
{% set antenne_suivie = profil_user.suiviantenne|split('|') %}
{% for antenne in antenne_suivie %}
{% for item in listeAntennes %}
{% if (item.id == antenne) %}
<li class="liste_antennes list-group-item" style="padding: .2rem 1.25rem;">
<a style="color:black;" href="" title="{{ item.antenneName }}">
{{ item.antenneName }}
</a>
</li>
{% endif %}
{% endfor %}
{% endfor %}
</li>
</ul>
<p></p>
</div>
{% endblock %}

View File

@ -26,13 +26,17 @@
{% if name_user != '' %} {% if name_user != '' %}
<form method="post" style="margin-top:5px;" action="{{ path('account.profil') }}"> <form method="post" style="margin-top:5px;" action="{{ path('account.profil') }}">
<span><img src="\avatar_user.png" width="22" height="22" /></span> <span><img src="\avatar_user.png" width="22" height="22" /></span>
<button style="color:white;font-size: 14px;" class="btn-primary">{{ name_user }}</button> <button style="color:white;font-size: 14px;" class="btn-primary">user = {{ name_user }}</button>
<button style="color:white;font-size: 14px;" class="btn-primary">user2 = {{ name_user2 }}</button>
</form> </form>
<form method="post" action="{{ path('auth.logout') }}"> <form method="post" action="{{ path('auth.logout') }}">
<!-- csrf_input() }}--> <!-- csrf_input() }}-->
<button class="btn btn-danger" style="margin-left: 7px; font-size:14px;">Se déconnecter</button> <button class="btn btn-danger" style="margin-left: 7px; font-size:14px;">Se déconnecter</button>
</form> </form>
{% else %} {% else %}
<span style="color:white;">
name_user = {{ name_user }}
name_user2 = {{ name_user2 }}</span>
<div class="nav-item" id="bouton-connexion"> <div class="nav-item" id="bouton-connexion">
<button style="color:white; font-size: 14px;" class="btn btn-primary" data-toggle="modal" data-target="#connexion_modal">Se connecter</button> <button style="color:white; font-size: 14px;" class="btn btn-primary" data-toggle="modal" data-target="#connexion_modal">Se connecter</button>
</div> </div>

View File

@ -52,7 +52,7 @@ class ForbiddenMiddleware implements MiddlewareInterface
public function redirectLogin(ServerRequestInterface $request): ResponseInterface public function redirectLogin(ServerRequestInterface $request): ResponseInterface
{ {
$this->session->set('auth.redirect', $request->getUri()->getPath()); $this->session->set('auth.redirect', $request->getUri()->getPath());
(new FlashService($this->session))->error('Vous devez posséder un compte pour accéder à cette page'); //(new FlashService($this->session))->error('Vous devez posséder un compte pour accéder à cette page');
return new RedirectResponse($this->loginPath); return new RedirectResponse($this->loginPath);
} }
} }

View File

@ -31,10 +31,12 @@ class ContactAction
} }
if (isset($_SESSION['user'])) { if (isset($_SESSION['user'])) {
$nom_user = $_SESSION['user']; $nom_user = $_SESSION['user'];
$role = $_SESSION['role'];
} else { } else {
$nom_user = ''; $nom_user = '';
$role = '3';
} }
return $this->renderer->render('@contact/contact',compact('nom_user')); return $this->renderer->render('@contact/contact',compact('nom_user','role'));
} }
} }
} }

View File

@ -3,14 +3,6 @@
{% block title "Ğ1-Marché - Contact" %} {% block title "Ğ1-Marché - Contact" %}
{% block body %} {% block body %}
<style> <style>
/*body .fond {
background-image: url("../../images/background_contacts.jpg");
background-repeat: no-repeat;
background-attachment:fixed;
background-position: center;
background-size: 100% auto;
font-family: Bree serif,"Helvetica Neue", Helvetica, Arial, sans-serif;
}*/
.main { .main {
width: 900px; width: 900px;
font-family: "Bree Serif", Arial; font-family: "Bree Serif", Arial;
@ -91,6 +83,7 @@
</script> </script>
{% endif %} {% endif %}
<div class="main" style="background:none;"> <div class="main" style="background:none;">
nom_user = {{ nom_user }}
<div class="header"> <div class="header">
<img class="img_header" src="/images/logo_contacts.jpg" style="width: 294px;height: 294px;" alt="Ğ1-Marché" title="Logo Contact" /> <img class="img_header" src="/images/logo_contacts.jpg" style="width: 294px;height: 294px;" alt="Ğ1-Marché" title="Logo Contact" />
</div> </div>

View File

@ -12,7 +12,6 @@ class AntenneTable extends Table
protected $table = 'antennes'; protected $table = 'antennes';
public function findAllbyRegion(int $region_id): Query public function findAllbyRegion(int $region_id): Query
{ {
$region = new RegionTable($this->pdo); $region = new RegionTable($this->pdo);
@ -22,22 +21,12 @@ class AntenneTable extends Table
->where("a.region_id = $region_id") ->where("a.region_id = $region_id")
->order('a.name ASC'); ->order('a.name ASC');
} }
/* public function getAntenne(string $antenne_slug): Query public function findAllAntennes(): Query
{ {
//$antenne = new AntenneTable($this->pdo); $region = new RegionTable($this->pdo);
return $this->makeQuery() return $this->makeQuery()
->select('a.*') ->join($region->getTable() . ' as r', 'a.region_id = r.id')
->where("a.slug = $antenne_slug") ->select('a.id, r.name as regionName, a.name as antenneName')
->order('a.name ASC'); ->order('r.name, a.name ASC');
} }
public function findPublic(): Query
{
return $this->findAll();
}
public function findWithAntenne(int $antenne_slug): Antenne
{
return $this->findPublic()->where("a.slug = $antenne_slug")->fetch();
}*/
} }

View File

@ -46,13 +46,14 @@
</li> </li>
{% if role=='0' or role=='1' or role=='2' %} {% if role=='0' or role=='1' or role=='2' %}
<li class="nav-item"> <li class="nav-item">
<a class="nav-link {% if admin %} active{% endif %}" style="font-size:14px;" <a class="nav-link {% if explodeUrl()[1]=='dashboard' %} active{% endif %}" style="font-size:14px;"
href="{{ path('admin') }}">Administration</a> href="{{ path('dashboard') }}">Administration</a>
</li> </li>
{% endif %} {% endif %}
<li class="nav-item"> <li class="nav-item">
<a class="nav-link {% if explodeUrl()[1]=='contact' %} active{% endif %}" style="font-size:14px;" <a class="nav-link {% if explodeUrl()[1]=='contact' %} active{% endif %}" style="font-size:14px;"
href="{{ path('contact') }}">Qui sommes-nous ?</a> href="{{ path('contact') }}">Qui sommes-nous ?
</a>
</li> </li>
</ul> </ul>
<div class="navbar-nav"> <div class="navbar-nav">