226 lines
9.5 KiB
PHP
Executable File
226 lines
9.5 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Vue affichant le formulaire permettant de modifier les infos d'un abonnement
|
|
* + scripts ajax testant la saisie
|
|
*
|
|
**/
|
|
$header_title=SITE_NOM." >> Modifier mon abonnement.";
|
|
$header_robots="noindex,nofollow";
|
|
$body_title="Modifier mon abonnement.";
|
|
|
|
$ariane_items[0]["txt"]="<li><a href='".PAGE_ABO_LISTE."'>Mes abonnements.</a></li>";
|
|
$ariane_items[0]["form"]=false;
|
|
$ariane_items[0]["actif"]=false;
|
|
$ariane_items[1]["txt"]="<li>Modifier mon abonnement.</li>";
|
|
$ariane_items[1]["form"]=true;
|
|
$ariane_items[1]["actif"]=true;
|
|
|
|
if(!empty($_SESSION["message"]))
|
|
{
|
|
$msg_infos[0]="<strong>".$_SESSION["message"]."</strong>";
|
|
$_SESSION["message"]="";
|
|
}
|
|
else
|
|
$msg_infos[0]="Cette page vous permet de modifier les informations de votre abonnement, notamment les jours & heures où vous recevez ses actualités par email.";
|
|
|
|
$access_rapides="<p class='liste_liens_btn'><b>Autres actions possibles :</b> <a href='".PAGE_ABSENCES_LISTE."' class='btn btn-success' title=\"Gérer mes périodes d'absence.\" target='_blank'>Stopper les envois temporairement.</a> <a href='".PAGE_ABO_AFFICHE.$page[2]."/' class='btn btn-success' title=\"Voir les actus.\" target='_blank'>Voir cet abonnement.</a> <a href='".PAGE_REPERTOIRE_ACCUEIL."' class='btn btn-info' title='Créer un nouvel abonnement' target='_blank'>+ Nouvel abonnement.</a></p>";
|
|
|
|
$form["nom"]="Mon abonnement.";
|
|
$form["champs"]="<form method='post' id='maj_abo' action='".PAGE_ABO_MAJ.$page[2]."' role='form' class='form-horizontal'>
|
|
<div class='form-group'>
|
|
<label for='designation' class='col-sm-3 control-label'>Désignation :</label>
|
|
<div class='col-sm-9'><input class='form-control' type='text' maxlength='".ABO_MAX_DESIGNATION."' name='designation' id='designation' value=\"".htmlspecialchars($form["designation"])."\" required></div>
|
|
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire</b>.</p></div>
|
|
</div>";
|
|
|
|
$jours=explode(",",$form["jours_alerte"]);
|
|
$form["champs"].="<div class='form-group'><label for='jours_alerte[]' class='col-sm-3 control-label'>Jours de réception : </label><div class='col-sm-9'>";
|
|
$i=0;
|
|
while(isset($Jours_semaine[$i]))
|
|
{
|
|
if(strpos($form["jours_alerte"],"[$i]")!==false)
|
|
$form["champs"].="<label class='checkbox-inline'><input type='checkbox' name='jours_alerte[]' value='$i' checked='checked'> ".$Jours_semaine[$i]."</label>";
|
|
else
|
|
$form["champs"].="<label class='checkbox-inline'><input type='checkbox' name='jours_alerte[]' value='$i'> ".$Jours_semaine[$i]."</label>";
|
|
$i++;
|
|
}
|
|
$form["champs"].="</div><div class='col-sm-offset-3 col-sm-9'><p class='help-block'>Si vous souhaitez recevoir aucun email pour cet abonnement, ne laissez coché aucun jour de la semaine.<br>Vous pourrez continuer à consulter votre abonnement en vous connectant au site.</p></div>
|
|
</div>";
|
|
|
|
$heures_ok=explode("|","00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23");
|
|
$form["champs"].="<div id='heure_alerte'>
|
|
<div class='form-group'>
|
|
<label for='heure_alerte' class='col-sm-3 control-label'>Heure d'envoi :</label>
|
|
<div class='col-sm-9'><select name='heure_alerte' id='heure_alerte' class='form-control' style='width:100px'>";
|
|
foreach ($heures_ok as $heure)
|
|
{
|
|
if($heure==$form["heure_alerte"])
|
|
$form["champs"].="<option value='".$heure."' selected=selected>".htmlentities(affiche_utf8($heure,UTF8_OK))." H</option>";
|
|
else
|
|
$form["champs"].="<option value='".$heure."'>".htmlentities(affiche_utf8($heure,UTF8_OK))." H</option>";
|
|
}
|
|
$form["champs"].="</select></div>
|
|
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'>Heure durant laquelle votre abonnement vous sera envoyé par email.<br> Il peut y a voir un délai de 24H avant que le changement d'heure de départ soit pris en compte.</p>
|
|
</div></div>
|
|
<div class='form-group'>
|
|
<label for='max_liens' class='col-sm-3 control-label'>Nombre maximum d'actualités par envoi ?</label>
|
|
<div class='col-sm-9'><input class='form-control' type='text' maxlength='3' name='max_liens' id='max_liens' value=\"".intval($form["max_liens"])."\" required></div>
|
|
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'>Choisissez le nombre <b><u>maximum d'actualités</u></b> (il peut y en avoir moins !) que pourront contenir les messages envoyés par Hello facteur pour cet abonnement. Ce nombre doit être compris entre ".$Abo_max_liens["min"]." et ".$Abo_max_liens["max"].".</p></div>
|
|
</div>";
|
|
// si actus locales, on peut ici modifier la ville centrale.
|
|
if(!empty($ville_infos))
|
|
{
|
|
$form["champs"].="<div id='sup_villes'><div class='col-sm-12'><p><b>Cet abonnement a été créé pour la ville de : ".htmlentities(affiche_utf8($ville_infos[0]["nom"],UTF8_OK))." (".$ville_infos[0]["cp"].")</b>.<br>Si ce n'est plus la bonne ville, saisissez ci-dessous le bon code postal (ou au moins 3 lettres du nom la nouvelle ville). Ceci se répercutera sur les actualités locales que vous recevez.</p></div>
|
|
<input type='hidden' name='insee' id='insee' value=\"".$ville_infos[0]["insee"]."\" ></div>
|
|
<div class='form-group'>
|
|
<label for='cp_ville' class='col-sm-3 control-label'>Votre nouvelle ville :</label>
|
|
<div class='col-sm-9'><input class='form-control' type='text' maxlength='35' name='cp_ville' id='cp_ville'></div>
|
|
</div>
|
|
<input type='hidden' name='a_insee' id='a_insee' value=\"".$ville_infos[0]["insee"]."\" >";
|
|
}
|
|
$form["champs"].="<div class='form-group'>
|
|
<div class='col-sm-offset-3 col-sm-9'>
|
|
<div class='checkbox'>
|
|
<label class='text-danger' for='abo_suppr'><input type='checkbox' name='abo_suppr' id='abo_suppr' value='1'> Je souhaite supprimer mon abonnement.</label>
|
|
</div></div></div>
|
|
|
|
<div id='msg_abo'></div>
|
|
<div class='form-group'><div class='col-sm-offset-3 col-sm-9'><button type='submit' class='btn btn-success btn-lg' id='btn_submit1'>Enregistrer.</button></div></div>
|
|
<br>
|
|
$access_rapides";
|
|
|
|
if(!empty($hubs_actuels))
|
|
{
|
|
$form["champs"].="<div class='form-group list_overflow'><div class='col-sm-offset-1 col-sm-11'><label for='hubs_suppr[]'>Cet abonnement concerne actuellement :</label><ul>";
|
|
foreach($hubs_actuels as $hub_infos)
|
|
{
|
|
$form["champs"].="<li><b>".$hub_infos["nom"]."</b> <input type='checkbox' name='hubs_suppr[]' value='".$hub_infos["id_hub"]."'> Enlever de mon abonnement.";
|
|
if(!empty($hub_infos["description"]))
|
|
$form["champs"].="<br><i>".$hub_infos["description"]."</i>";
|
|
$form["champs"].="</li>";
|
|
}
|
|
$form["champs"].="</ul></div></div>
|
|
<div class='form-group'><div class='col-sm-offset-3 col-sm-9'><button type='submit' class='btn btn-success btn-lg' id='btn_submit2'>Enregistrer.</button></div></div>";
|
|
if(!empty($hubs_nouveaux))
|
|
{
|
|
$form["champs"].="<div class='form-group list_overflow'><div class='col-sm-offset-1 col-sm-11'><label for='hubs_ajout[]'>Autres suggestions pour cet abonnement :</label><ul>";
|
|
foreach($hubs_nouveaux as $hub_infos)
|
|
{
|
|
$form["champs"].="<li><b>".$hub_infos["nom"]."</b> <input type='checkbox' name='hubs_ajout[]' value='".$hub_infos["id_hub"]."'> Ajouter à mon abonnement.";
|
|
if(!empty($hub_infos["description"]))
|
|
$form["champs"].="<br><i>".$hub_infos["description"]."</i>";
|
|
$form["champs"].="</li>";
|
|
}
|
|
$form["champs"].="</ul></div></div>
|
|
<div class='form-group'><div class='col-sm-offset-3 col-sm-9'><button type='submit' class='btn btn-success btn-lg' id='btn_submit3'>Enregistrer.</button></div></div>";
|
|
}
|
|
}
|
|
$form["champs"].="<input type='hidden' name='id_abonnement' id='id_abonnement' value='".$form["id_abonnement"]."'>
|
|
</form>";
|
|
//le code pour ajax
|
|
ob_start();
|
|
?>
|
|
<script>
|
|
function is_int(value)
|
|
{//source : http://www.inventpartners.com/javascript_is_int
|
|
if((parseFloat(value)==parseInt(value))&&!isNaN(value))
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
function abo_affiche(id_abo)
|
|
{
|
|
if(id_abo!==0)
|
|
{
|
|
$.ajax(
|
|
{
|
|
url:'<?=SITE_URL;?>/JS/compte_abo_affiche',
|
|
type:'GET',
|
|
data:'id_abonnement='+id_abo+'&ajax=1',
|
|
success:function(code)
|
|
{
|
|
if(code!=="")
|
|
{
|
|
$('#form').html(code);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
$(document).ready(function()
|
|
{
|
|
$('#form').on('blur','#cp_ville', function()
|
|
{
|
|
var $this=$(this);
|
|
var cp=$this.val();
|
|
var ln=cp.length;
|
|
if((ln!==0)&&(ln<3))
|
|
{
|
|
$('#sup_villes').html('<?php echo str_replace("'","\"",get_html_alerte_msg((array) ERREUR_UTILISA_CP_LONG));?>');
|
|
}
|
|
else
|
|
{
|
|
$.ajax(
|
|
{
|
|
url:'<?=SITE_URL;?>/JS/get_ville_cp',
|
|
type:'POST',
|
|
data:'cp_ville='+cp+'&ajax=1',
|
|
success:function(code)
|
|
{
|
|
$('#sup_villes').html(code);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
$('#form').on('submit','#maj_abo', function(e)
|
|
{
|
|
e.preventDefault();
|
|
var $this=$(this);
|
|
var designation=$('#designation').val();
|
|
var max_liens=$('#max_liens').val();
|
|
if((designation==='')||(max_liens===''))
|
|
{
|
|
$('#msg_abo').html('<?php echo str_replace("'","\"",get_html_alerte_msg((array) ERREUR_UTILISA_CHAMPS_ABSENTS));?>');
|
|
}
|
|
else
|
|
{
|
|
$.ajax(
|
|
{
|
|
url:'<?=SITE_URL;?>/JS/compte_abo_maj_tests',
|
|
type:'POST',
|
|
data:$this.serialize()+'&ajax=1',
|
|
success:function(code)
|
|
{
|
|
if(code!=="")
|
|
{
|
|
if(is_int(code))
|
|
{
|
|
abo_affiche(code);
|
|
var x = setTimeout(function() { $('#msg_abo').html('<?php echo str_replace("'","\"",get_html_alerte_msg((array) MSG_UTILISA_MAJ_INFOS_VALID,"alert-success"));?>'); },500);
|
|
window.location="#max_liens";
|
|
}
|
|
else if(code=="<?php echo str_replace("\"","'",MSG_UTILISA_MAJ_SUPPR_VALID);?>")
|
|
{
|
|
window.location="<?=PAGE_ABO_LISTE;?>";
|
|
}
|
|
else
|
|
{
|
|
$('#msg_abo').html(code);
|
|
window.location="#max_liens";
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
<?php
|
|
$footer_JS=ob_get_contents();
|
|
ob_end_clean();
|
|
require(TEMPLATE_REP."/page.php");
|