192 lines
9.4 KiB
PHP
192 lines
9.4 KiB
PHP
|
<?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);
|