Finalisation de la modification d'une antenne - Ajout des lignes de présentation de l'antenne dans la page Produits
This commit is contained in:
parent
5aec7c62ec
commit
034ceec279
|
@ -37,7 +37,7 @@ class ProfilAction
|
|||
|
||||
public function __invoke(ServerRequestInterface $request)
|
||||
{
|
||||
$listeAntennes = $this->antenneTable->findAllAntennes();
|
||||
$listeAntennes = $this->antenneTable->findAllAntennes('');
|
||||
$user_affiche = $request->getAttribute('user')->username;
|
||||
$nom_avatar = $request->getAttribute('user')->avatar;
|
||||
$email = $request->getAttribute('user')->email;
|
||||
|
|
|
@ -56,7 +56,7 @@ class DashboardAction
|
|||
$liste_adminGeneral = $this->userTable->findAdminUsers('1');
|
||||
$liste_adminAntenne = $this->userTable->findAdminUsers('2');
|
||||
$liste_users_suivi = $this->userTable->findUsers('3');
|
||||
$listeAntennes = $this->antenneTable->findAllAntennes();
|
||||
$listeAntennes = $this->antenneTable->findAllAntennes('',false,'');
|
||||
if ($this->session->get('username')) {
|
||||
$this->session->delete('role');
|
||||
$this->session->delete('username');
|
||||
|
|
|
@ -59,7 +59,7 @@ class DashboardUserAction
|
|||
$user = $this->userTable->findBy('username', $user_affiche);
|
||||
$id_affiche = $user->id;
|
||||
$actif_affiche = $user->actif;
|
||||
$listeAntennes = $this->antenneTable->findAllAntennes();
|
||||
$listeAntennes = $this->antenneTable->findAllAntennes('');
|
||||
$sess = $_SESSION;
|
||||
return $this->renderer->render('@admin/dashboard_user',
|
||||
compact('sess','user_affiche','id_affiche', 'actif_affiche', 'user','liste_users_suivi','listeAntennes'));
|
||||
|
|
|
@ -4,7 +4,6 @@ namespace App\Admin\Table;
|
|||
|
||||
use App\Admin\Entity\User;
|
||||
use App\Gmarche\Table\AntenneTable;
|
||||
use App\Gmarche\Table\RegionTable;
|
||||
use Framework\Database\Query;
|
||||
use Framework\Database\Table;
|
||||
|
||||
|
|
|
@ -4,11 +4,14 @@ if (!isset($_SESSION)) {
|
|||
session_start();
|
||||
}
|
||||
|
||||
use App\Admin\Table\UserTable;
|
||||
use App\Framework\Response\RedirectBackResponse;
|
||||
use App\Gmarche\Table\AntenneTable;
|
||||
use App\Gmarche\Table\RegionTable;
|
||||
use Framework\Actions\RouterAwareAction;
|
||||
use Framework\Renderer\RendererInterface;
|
||||
use Framework\Response\RedirectResponse;
|
||||
use Framework\Session\FlashService;
|
||||
use Framework\Validator;
|
||||
use Psr\Container\ContainerInterface;
|
||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||
|
@ -31,60 +34,86 @@ class AntenneEditAction
|
|||
*/
|
||||
private $antenneTable;
|
||||
|
||||
/**
|
||||
* @var FlashService
|
||||
*/
|
||||
private $flashService;
|
||||
|
||||
use RouterAwareAction;
|
||||
|
||||
public function __construct(
|
||||
RendererInterface $renderer,
|
||||
RegionTable $regionTable,
|
||||
AntenneTable $antenneTable,
|
||||
UserTable $userTable,
|
||||
FlashService $flashService,
|
||||
ContainerInterface $container
|
||||
) {
|
||||
$this->renderer = $renderer;
|
||||
$this->regionTable = $regionTable;
|
||||
$this->antenneTable = $antenneTable;
|
||||
$this->userTable = $userTable;
|
||||
$this->flashService = $flashService;
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
if ($request->getMethod() === 'GET') {
|
||||
// $role = $this->session->get('role', []);
|
||||
// $username = $this->session->get('username', []);
|
||||
$listeAntennes = $this->antenneTable->findAllAntennes();
|
||||
$listeRegions = $this->regionTable->findAll();
|
||||
}
|
||||
|
||||
$params = $request->getQueryParams();
|
||||
// On récupère l'id de la région cliquée
|
||||
$slug = $request->getAttribute('slug') ?: $_SESSION['connecte'];
|
||||
//$region_id = $this->regionTable->findBy('slug', $slug)->id ?: 1;
|
||||
$page = $params['p'] ?? 1; // Si la page n'est pas définie, on l'initialise à 1
|
||||
// $antennes = $this->antenneTable->findAllbyRegion($region_id)->paginate(25, $page);
|
||||
//$region = $this->regionTable->findBy('slug', $slug);
|
||||
$sess = $_SESSION;
|
||||
$role = $request->getAttribute('user')->role;
|
||||
$user_id = $request->getAttribute('user')->id;
|
||||
if ($role < 3) {
|
||||
if ($request->getMethod() === 'GET') {
|
||||
// $username = $this->session->get('username', []);
|
||||
if ($role == 2) {
|
||||
$antennes_suivies = $request->getAttribute('user')->suiviantenne;
|
||||
$liste_ant_suiv = str_replace('|',',',$antennes_suivies);
|
||||
$listeAntennes = $this->antenneTable->findAnyAntennes('tri_alpha',$liste_ant_suiv);
|
||||
} else {
|
||||
$listeAntennes = $this->antenneTable->findAllAntennes('tri_alpha');
|
||||
}
|
||||
$listeRegions = $this->regionTable->findAll();
|
||||
}
|
||||
|
||||
if ($request->getMethod() === 'POST') {
|
||||
//$user = $this->auth->getUser();
|
||||
$params = $request->getParsedBody();
|
||||
$antenne_id = $params['antenne'];
|
||||
echo "antenne_id=/";
|
||||
var_dump($params);
|
||||
echo "/";
|
||||
die();
|
||||
$validator = (new Validator($params))
|
||||
->required('antenne', 'region');
|
||||
if ($validator->isValid()) {
|
||||
$antenneParams = [
|
||||
'id' => $params['antenne'],
|
||||
'region_id' => $params['region']
|
||||
];
|
||||
$this->antenneTable->update($antenne_id, $antenneParams);
|
||||
$this->flashService->success("L'antenne a bien été mise à jour");
|
||||
return new RedirectResponse($request->getUri()->getPath());
|
||||
$params = $request->getQueryParams();
|
||||
// On récupère l'id de la région cliquée
|
||||
$slug = $request->getAttribute('slug') ?: $_SESSION['connecte'];
|
||||
//$region_id = $this->regionTable->findBy('slug', $slug)->id ?: 1;
|
||||
$page = $params['p'] ?? 1; // Si la page n'est pas définie, on l'initialise à 1
|
||||
$sess = $_SESSION;
|
||||
|
||||
if ($request->getMethod() === 'POST') {
|
||||
$params = $request->getParsedBody();
|
||||
$antenne_id = strstr( $params['antenne'], '|', true);
|
||||
$date = $params['datepicker'];
|
||||
$time = '00:00:00';
|
||||
$date_us = substr($date,6,4).'-'.substr($date,3,2).'-'.substr($date,0,2);
|
||||
$date_us .= ' '.$time;
|
||||
$madate = date("Y-m-d H:i:s", strtotime($date_us));
|
||||
$validator = (new Validator($params))
|
||||
->required('antenne', 'region');
|
||||
if ($validator->isValid()) {
|
||||
$antenneParams = [
|
||||
'id' => $antenne_id,
|
||||
'region_id' => $params['region'],
|
||||
'gmarcheAt' => $madate,
|
||||
'edito1' => $params['contenu1'],
|
||||
'edito2' => $params['contenu2'],
|
||||
'edito3' => $params['contenu3'],
|
||||
'edito4' => $params['contenu4']
|
||||
];
|
||||
$this->antenneTable->update($antenne_id, $antenneParams);
|
||||
$this->flashService->success("L'antenne a bien été mise à jour");
|
||||
return new RedirectResponse($request->getUri()->getPath());
|
||||
}
|
||||
$errors = $validator->getErrors();
|
||||
}
|
||||
return $this->renderer->render('@antenne/edit', compact('sess', 'page', 'listeRegions',
|
||||
'listeAntennes'));
|
||||
} else {
|
||||
$this->flashService->success("Vous n'avez pas accès à cette fonction");
|
||||
return new RedirectBackResponse($request);
|
||||
}
|
||||
$errors = $validator->getErrors();
|
||||
}
|
||||
return $this->renderer->render('@antenne/edit', compact('sess','page', 'listeRegions', 'listeAntennes'));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
<span style="color:white;font-size:1.4rem;">
|
||||
MODIFICATION D'UNE ANTENNE
|
||||
</span>
|
||||
<div class="container" style="padding:3rem; width:55rem;border:1px solid blue;margin:auto;">
|
||||
<div class="container" style="padding:3rem; width:55rem;border:1px solid white;margin:auto;">
|
||||
<!--{ path('antenne.edit', { id: item.id, region: explodeUrl()[2]}) }}-->
|
||||
<form action="" method="post">
|
||||
<!--{ csrf_input }}-->
|
||||
|
@ -45,19 +45,32 @@
|
|||
Sélectionnez l'antenne
|
||||
</option>
|
||||
{% for item in listeAntennes %}
|
||||
<option class="list-group-item list-group-item-action" value="{{ item.id }}">
|
||||
<option class="list-group-item list-group-item-action" value="{{ item.id }}|{{ item.regionId }}">
|
||||
{{ item.antenneName }}
|
||||
</option>
|
||||
|
||||
{% endfor %}
|
||||
|
||||
</select>
|
||||
</div>
|
||||
{% set j=0 %}
|
||||
{% for item in listeAntennes %}
|
||||
{% set j=j+1 %}
|
||||
{% set name = 'region_name'~j %}
|
||||
<span style="width:0;height:0;">{{ field(name,item.regionName,"", {type:'hidden'}) }}</span>
|
||||
<span style="width:0;height:0;">{{ field(name,item.regionName,"", {type:'hidden'}) }}</span>
|
||||
|
||||
{% endfor %}
|
||||
{% set k=0 %}
|
||||
{% for item in listeAntennes %}
|
||||
{% set k=k+1 %}
|
||||
{% set name = 'edito1_'~k %}
|
||||
<span style="width:0;height:0;">{{ field(name,item.edito1,"", {type:'hidden'}) }}</span>
|
||||
{% set name = 'edito2_'~k %}
|
||||
<span style="width:0;height:0;">{{ field(name,item.edito2,"", {type:'hidden'}) }}</span>
|
||||
{% set name = 'edito3_'~k %}
|
||||
<span style="width:0;height:0;">{{ field(name,item.edito3,"", {type:'hidden'}) }}</span>
|
||||
{% set name = 'edito4_'~k %}
|
||||
<span style="width:0;height:0;">{{ field(name,item.edito4,"", {type:'hidden'}) }}</span>
|
||||
{% set name = 'gmAt_'~k %}
|
||||
<span style="width:0;height:0;">{{ field(name,item.gmarcheAt,"", {type:'hidden'}) }}</span>
|
||||
{% endfor %}
|
||||
<div class="col-md-4" style="min-width:15rem;">
|
||||
<div style="float:left; text-align:left;margin-left:2rem;margin-bottom: 1rem;">
|
||||
|
@ -75,11 +88,13 @@
|
|||
</div>
|
||||
<div style="clear:both;">
|
||||
<div class="row" style="color:white;">
|
||||
<div class="col-md-12" style="margin-top:1rem;height:14rem;border:1px solid white;">
|
||||
<!--{ field('contenu', item.content, "Annonce de présentation de l'antenne", {type: 'textarea'},'',[rows]) }}-->
|
||||
<div class="col-md-12" style="margin-top:1rem;height:auto;">
|
||||
<div class="form-group">
|
||||
<label for="comment">Annonce de présentation de l'antenne</label>
|
||||
<textarea class="form-control" rows="7" id="contenu"></textarea>
|
||||
<label for="comment">Annonce de présentation de l'antenne</label><p></p>
|
||||
Ligne 1 <textarea id="edito1" class="form-control" rows="2" name="contenu1"></textarea>
|
||||
Ligne 2 <textarea id="edito2" class="form-control" rows="2" name="contenu2"></textarea>
|
||||
Ligne 3 <textarea id="edito3" class="form-control" rows="2" name="contenu3"></textarea>
|
||||
Ligne 4 <textarea id="edito4" class="form-control" rows="2" name="contenu4"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -91,8 +106,9 @@
|
|||
</div>
|
||||
</div>
|
||||
<script>
|
||||
/* Lorsqu'on sélectione une antenne */
|
||||
document.querySelector("#antenne_select").addEventListener("change", function() {
|
||||
/* On vide si besoin la zone select */
|
||||
/* On vide si besoin la zone select des régions */
|
||||
if (document.getElementById("region").hasChildNodes()) {
|
||||
var child = document.getElementById("region");
|
||||
while (child.hasChildNodes()) {
|
||||
|
@ -101,22 +117,43 @@
|
|||
}
|
||||
/* if (document.querySelector("#antenne_select").options[0].text=="Sélectionnez l'antenne") {
|
||||
// document.querySelector("#antenne_select").removeChild( document.querySelector("#antenne_select").firstChild);
|
||||
// var diff = 1;
|
||||
} else {
|
||||
// var diff = 0;
|
||||
}*/
|
||||
var x = document.querySelector("#antenne_select").selectedIndex,
|
||||
y = document.querySelector("#antenne_select").options,
|
||||
select = document.getElementById('region'),
|
||||
nom_zone = "region_name"+x,
|
||||
region_nom = document.getElementById(nom_zone).value;
|
||||
/* On supprime la valeur en double avec cleanArray */
|
||||
//region_id = document.getElementById(nom_zone).text;
|
||||
/* Affichage de la date du gmarché et des éditos en fonction de l'antenne sélectionnée */
|
||||
var gmAt = document.getElementById('datepicker'),
|
||||
nom_zone_gmAt = "gmAt_"+x,
|
||||
valeur_gmAt = document.getElementById(nom_zone_gmAt).value;
|
||||
gmAt.value = valeur_gmAt;
|
||||
var edito1 = document.getElementById('edito1'),
|
||||
nom_zone_edito1 = "edito1_"+x,
|
||||
valeur_edito1 = document.getElementById(nom_zone_edito1).value;
|
||||
edito1.value = valeur_edito1;
|
||||
var edito2 = document.getElementById('edito2'),
|
||||
nom_zone_edito2 = "edito2_"+x,
|
||||
valeur_edito2 = document.getElementById(nom_zone_edito2).value;
|
||||
edito2.value = valeur_edito2;
|
||||
var edito3 = document.getElementById('edito3'),
|
||||
nom_zone_edito3 = "edito3_"+x,
|
||||
valeur_edito3 = document.getElementById(nom_zone_edito3).value;
|
||||
edito3.value = valeur_edito3;
|
||||
var edito4 = document.getElementById('edito4'),
|
||||
nom_zone_edito4 = "edito4_"+x,
|
||||
valeur_edito4 = document.getElementById(nom_zone_edito4).value;
|
||||
edito4.value = valeur_edito4;
|
||||
/* Affichage des régions */
|
||||
var tableau = new Array("Auvergne-Rhône-Alpes", "Bourgogne-Franche-Comté", "Bretagne",
|
||||
"Centre-Val de Loire", "Corse", "Grand Est", "Hauts-de-France", "Ile-de-France", "Normandie",
|
||||
"Nouvelle-Aquitaine", "Occitanie", "Pays de la Loire", "Provence-Alpes-Côte d'Azur");
|
||||
for (var i = 0; i<tableau.length; i++){
|
||||
opt = document.createElement('option')
|
||||
opt.value = tableau[i]
|
||||
var valeurs_antenne = y[x].value.split("|")
|
||||
var deuxieme_valeur = valeurs_antenne[1]
|
||||
opt.value = deuxieme_valeur
|
||||
opt.innerHTML = tableau[i]
|
||||
if (region_nom == tableau[i]) {
|
||||
opt.selected = "selected"
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
namespace App\Gmarche\Table;
|
||||
|
||||
use App\Gmarche\Entity\Antenne;
|
||||
use App\Auth\UserTable;
|
||||
use Framework\Database\Query;
|
||||
use Framework\Database\Table;
|
||||
|
||||
|
@ -21,12 +22,35 @@ class AntenneTable extends Table
|
|||
->where("a.region_id = $region_id")
|
||||
->order('a.name ASC');
|
||||
}
|
||||
public function findAllAntennes(): Query
|
||||
public function findAnyAntennes(string $tri, $antennes_select): Query
|
||||
{
|
||||
$region = new RegionTable($this->pdo);
|
||||
if ($tri == 'tri_alpha') {
|
||||
$order = 'a.name ASC';
|
||||
} else {
|
||||
$order = 'r.name, a.name ASC';
|
||||
}
|
||||
|
||||
return $this->makeQuery()
|
||||
->join($region->getTable() . ' as r', 'a.region_id = r.id')
|
||||
->select('a.id, a.region_id, r.name as regionName, a.name as antenneName, r.slug as regionSlug, a.slug as antenneSlug')
|
||||
->order('r.name, a.name ASC');
|
||||
->join($region->getTable() . ' as r', 'region_id = r.id')
|
||||
->select('a.id, region_id as regionId, r.name as regionName, a.name as antenneName,
|
||||
r.slug as regionSlug, a.slug as antenneSlug, edito1, edito2, edito3, edito4, gmarcheAt')
|
||||
->where("a.id IN ($antennes_select)")
|
||||
->order($order);
|
||||
}
|
||||
public function findAllAntennes(string $tri): Query
|
||||
{
|
||||
$region = new RegionTable($this->pdo);
|
||||
if ($tri == 'tri_alpha') {
|
||||
$order = 'a.name ASC';
|
||||
} else {
|
||||
$order = 'r.name, a.name ASC';
|
||||
}
|
||||
|
||||
return $this->makeQuery()
|
||||
->join($region->getTable() . ' as r', 'region_id = r.id')
|
||||
->select('a.id, region_id as regionId, r.name as regionName, a.name as antenneName,
|
||||
r.slug as regionSlug, a.slug as antenneSlug, edito1, edito2, edito3, edito4, gmarcheAt')
|
||||
->order($order);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,6 +52,10 @@ class ProductIndexAction
|
|||
$requete = $this->antenneTable->findBy('slug', $antenne_slug);
|
||||
$antenne_name = $requete->name;
|
||||
$antenne_id = $requete->id;
|
||||
$edito1 = $requete->edito1;
|
||||
$edito2 = $requete->edito2;
|
||||
$edito3 = $requete->edito3;
|
||||
$edito4 = $requete->edito4;
|
||||
$requete_region = $this->regionTable->findBy('slug', $region_slug);
|
||||
$region_name = $requete_region->name;
|
||||
$page = $params['p'] ?? 1;
|
||||
|
@ -72,6 +76,6 @@ class ProductIndexAction
|
|||
$sess = $_SESSION;
|
||||
return $this->renderer->render($viewPath.'/index', compact('sess','nom_user','user_id',
|
||||
'antenne_slug','gmarchePrefix','region_name','region_slug','antenne_id','antenne_name','viewPath',
|
||||
'items', 'suiviantenne' ));
|
||||
'items', 'suiviantenne','edito1', 'edito2','edito3','edito4' ));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,14 +57,11 @@
|
|||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="container" style="font-size:18px; color:white;line-height:1.4rem;">
|
||||
<div>Tous les mois, la Toile Francilienne organise des rencontres entre utilisateurs de la Monnaie Libre.</div>
|
||||
C'est l'occasion rêvée d'échanger avec d'autres membres !
|
||||
{{ annonce_ligne1 }}
|
||||
{{ annonce_ligne2 }}
|
||||
{{ annonce_ligne3 }}
|
||||
<p></p>
|
||||
<div>Consultez, rajoutez, modifiez vos propositions dans la liste du mois.</div>
|
||||
Mettez bien le pseudo, la clé publique, le bien ou service, et le prix en june.
|
||||
<div>
|
||||
{{ edito1 }}
|
||||
<p>{{ edito2 }}</p>
|
||||
{{ edito3 }}
|
||||
<p>{{ edito4 }}</p>
|
||||
</div>
|
||||
<p>
|
||||
{% if affiche_username() != '' or (sess.connecte != '' and sess.connecte != '---') %}
|
||||
|
|
Loading…
Reference in New Issue