hellofacteurV1/ctrl/admin_comptes_affiche.php

192 lines
9.4 KiB
PHP
Executable File

<?php
/**
* Script affichant un formulaire permettant de modifier / supprimer les données d'un utilisateur
* dont l'id a été passé en paramètre
* Peut être appelé en ajax ou directement en php si JS désactivé
**/
$ajax_on=false;
if(!empty($_GET["ajax"]))
{
$ajax_on=true;
session_save_path(SESSIONS_REP);
ini_set("session.use_only_cookies",1);
session_start();
header('Content-Type: text/html; charset=utf-8');
require_once("../modele/FclFlux_source.php");
}
if($_SESSION["statut"]!="administrateur")
$msg_form[]=ERREUR_IMPREVUE;
else
{
$id_utilisateur=intval(trim($_GET["id_utilisateur"]));
require_once("../modele/connexion-bd.php");
$compte=FclFlux_utilisateur::recherche($id_utilisateur,"id_utilisateur","pseudo,email,statut,presentation,illustration,ip_crea,time_crea,time_validation,origine,fuseau_horaire,nb_clics");
if(!empty($compte))
{
//un peu de blabla suivant ce que j'ai sous la dent.
$infos_utilisateur="Ce compte utilisateur ($id_utilisateur) a été créé le ".date("d/m/Y",$compte["time_crea"])." et validé le ".date("d/m/Y",$compte["time_validation"]).".";
if(!empty($compte["nb_clics"]))
$infos_utilisateur.=" Ses annonces ont reçu ".$compte["nb_clics"]." clics.";
if(!empty($compte["origine"]))
$infos_utilisateur.=" Origine du compte : ".$compte["origine"].".";
$form_html["nom"]="Informations de l'utilisateur.";
$form_html["champs"]="<form method='post' id='maj_comptes' name='maj_comptes' action='".PAGE_MAJ_COMPTES."?id_utilisateur=$id_utilisateur' role='form'>
<p class='help-block'><b>$infos_utilisateur</b></p>
<div class='form-group'>
<label for='pseudo'>Pseudo.</label>
<input class='form-control' type='text' maxlength='".UTILISATEUR_MAX_PSEUDO."' name='pseudo' id='pseudo' value=\"".htmlspecialchars($compte["pseudo"])."\" required>
<p class='help-block'><b>Obligatoire</b>.</p>
</div>
<div class='form-group'>
<label for='email'>Email.</label>
<input class='form-control' type='email' maxlength='".UTILISATEUR_MAX_EMAIL."' name='email' id='email' value=\"".$compte["email"]."\" required>
<p class='help-block'><b>Obligatoire</b>. <a href=\"mailto:".$compte["email"]."\" title='Contact' class='btn btn-info btn-sm'>Contactez cet utilisateur.</a></p>
</div>
<div class='form-group'>
<label for='nouveau_passe'>Nouveau mot de passe.</label>
<input class='form-control' type='password' maxlength='".UTILISATEUR_MAX_PASSE."' name='passe' id='passe'>
<p class='help-block'>Facultatif</b>. Si vous souhaitez changer de mot de passe, le nouveau doit compter entre <b>".UTILISATEUR_MIN_PASSE." et ".UTILISATEUR_MAX_PASSE." caractères</b>. <b>Laisser ce champ vide dans le cas contraire</b>.</p>
</div>
<div class='form-group'>
<label for='presentation'>Texte de présentation.</label>
<textarea class='form-control' rows='4' name='presentation' id='presentation' maxlength='".UTILISATEUR_MAX_PRESENTATION."'>".htmlspecialchars($compte["presentation"])."</textarea>
<p class='help-block'><b>Facultatif</b>. ".UTILISATEUR_MAX_PRESENTATION." caractères maximum.</p>
</div>";
$fuseau_defaut=date_default_timezone_get();
$tz=new DateTimeZone($fuseau_defaut);
$zones=$tz->listIdentifiers();
$form_html["champs"].="<div id='fuseau_horaire'>
<div class='form-group'>
<label for='fuseau_horaire'>Fuseau horaire.</label>
<select name='fuseau_horaire' class='form-control'>";
foreach ($zones as $fuseau)
{
if($fuseau==$compte["fuseau_horaire"])
$form_html["champs"].="<option value='".$fuseau."' selected=selected>".htmlentities(affiche_utf8($fuseau,UTF8_OK))."</option>";
else
$form_html["champs"].="<option value='".$fuseau."'>".htmlentities(affiche_utf8($fuseau,UTF8_OK))."</option>";
}
$form_html["champs"].="</select><p class='help-block'>Fuseau horaise utilisé par déterminer l'heure d'envoi des alertes email.</p>
</div></div>";
//image ?
if(!empty($compte["illustration"]))
{
$fichier=$compte["illustration"];
$adresse_illustration=UTILISATEUR_ILLUS_REP."/".$fichier[0]."/".$fichier;
$form_html["champs"].="<p><strong>Photo actuelle.</strong><br><img src='".SITE_URL."/".$adresse_illustration."' alt='Illustration actuelle' class='img-responsive'></p>
<div class='form-group'>
<label class='checkbox-inline' for='suppr_illustration'></label><input name='suppr_illustration' type='checkbox' id='suppr_illustration' value='1'> Supprimer l'image.</label>
</div>";
}
if($compte["statut"]!="administrateur")
{
$statuts=explode("|",UTILISATEUR_STATUTS);
$form_html["champs"].="<div class='form-group'><label for='statut'>Statut.</label>
<select name='statut' id='statut' autofocus class='form-control'>";
foreach ($statuts as $statut)
{
if($statut==$compte["statut"])
$form_html["champs"].="<option value='".$compte["statut"]."' selected='selected'>".$compte["statut"]."</option>\n";
else
$form_html["champs"].="<option value='".$compte["statut"]."'>".$compte["statut"]."</option>\n";
}
$form_html["champs"].="</select></div>
<div class='form-group'><label class='checkbox-inline text-danger' for='suppr_ok'><input type='checkbox' id='suppr_ok' name='suppr_ok' value='1'> Je souhaite supprimer ce compte utilisateur.</label></div>";
}
else
$form_html["champs"].="<input type='hidden' name='statut' id='statut' value='administrateur'>";
$form_html["champs"].="<input type='hidden' name='id_utilisateur' id='id_utilisateur' value='$id_utilisateur'>
<div id='msg_utilisateurs'></div>
<button type='submit' class='btn btn-success btn-lg'>Enregistrer.</button>
<p><br><a href='".PAGE_MAJ_COMPTES."' title='Saisir un nouvel utilisateur' class='btn btn-info btn-sm'>+ Nouvel utilisateur.</a></p>
</fieldset></form>";
//quelques infos sur mon gus
$user=new FclFlux_utilisateur();
$user->id_utilisateur=$id_utilisateur;
$infos=$user->get_infos_admin();
//ses abonnements
if(!empty($infos["abos"]))
{
$nb_abo=count($infos["abos"]);
$form_html["champs"].="<p>Cet utilisateur a $nb_abo abonnement(s).<ul>";
foreach ($infos["abos"] as $abo)
{
//dernier envoi réussi ?
if(!empty($abo["time_dernier_envoi"]))
$time_envoi=date("d/m/Y à H:i:s",$abo["time_dernier_envoi"]);
else
$time_envoi="jamais";
if(!empty($abo["ville_insee"]))
{
$ville_infos=get_villes($abo["ville_insee"],"insee");
$infos_ville=" Abonnement local pour la ville de : ".$ville_infos[0]["nom"]." (".$ville_infos[0]["cp"].").";
unset($ville_infos);
}
else
$infos_ville="";
$form_html["champs"].="<li><b>".$abo["designation"]." (n°".$abo["id_abonnement"].")</b> - jours d'envoi : ".$abo["jours_alerte"].", heure d'envoi : ".$abo["heure_alerte"].", dernier envoi : $time_envoi, dernier traitement : ".date("d/m/Y à H:i:s",$abo["time_envoi"]).".".$infos_ville;
//liste des hubs concernés par cet abonnement
if(!empty($abo["hubs"]))
{
$nb_hub=count($abo["hubs"]);
$form_html["champs"].="<br>Cet abonnement concerne le(s) bureaux de poste :";
foreach ($abo["hubs"] as $hub_infos)
$form_html["champs"].=" <b>".$hub_infos["nom"]."</b> (<a href='".PAGE_MAJ_HUB."?id_hub=".$hub_infos["id_hub"]."' target='_blank'>Infos</a>) |";
}
$form_html["champs"].="</li>";
}
$form_html["champs"].="</ul></p>";
}
//les dernières sessions enregistrées
if(!empty($infos["sessions"]))
{
$nb_sessions=count($infos["sessions"]);
$form_html["champs"].="<p>$nb_sessions connexions comptabilisées les 7 derniers jours, dont voici les dernières :<ul>";
foreach ($infos["sessions"] as $session)
$form_html["champs"].="<li><b>Le ".date("d/m/Y à H:i:s",$session["time_session"])."</b> (ip : ".$session["ip_session"].", configuration : ".$session["config"].", provenance : ".$session["referer"].")</li>";
$form_html["champs"].="</ul></p>";
}
else
$form_html["champs"].="<p>Aucune connexion enregistrée ces 7 derniers jours.</p>";
//les pages où il est passé
if(!empty($infos["pages"]))
{
$nb_pages=count($infos["pages"]);
$form_html["champs"].="<p>$nb_pages affichages comptabilisés les 7 derniers jours, dont les suivants les dernières 24H :<ul>";
$hier=time()-3600*24;
foreach ($infos["pages"] as $page)
{
if($page["time_affichage"]>$hier)
$form_html["champs"].="<li><b>".$page["page"]."</b> (contexte : ".$page["contexte"].", le ".date("d/m/Y à H:i:s",$page["time_affichage"]).")</li>";
else
break;
}
$form_html["champs"].="</ul></p>";
}
else
$form_html["champs"].="<p>Aucun affichage enregistré ces 7 derniers jours.</p>";
//ses annonces
$auteur=new FclFlux_utilisateur();
$auteur->id_utilisateur=$id_utilisateur;
$annonces=FclFlux_post::get_liste_posts_auteur_cache($auteur,true);
unset($auteur);
if(!empty($annonces))
{
$nb_annonces=count($annonces);
$form_html["champs"].="<p id='posts'>$nb_annonces annonces ont été postées par cet utilisateur :<ul>";
$hier=time()-3600*24;
foreach ($annonces as $annonce_infos)
$form_html["champs"].="<li><b>".stripslashes($annonce_infos["ancre"])."</b> (<a href='".PAGE_MAJ_POSTS."?id_post=".intval($annonce_infos["id_post"])."' target='_blank'>Infos de l'annonce)</a></li>";
$form_html["champs"].="</ul></p>";
}
else
$form_html["champs"].="<p id='posts'>Aucune annonce postée par cet utilisateur.</p>";
if($ajax_on)
echo get_html_form($form_html,false);
}
else
$msg_form[]=ERREUR_SQL_ENREG_ABSENT;
}
if((!empty($msg_form))&&($ajax_on))
echo get_html_alerte_msg($msg_form);