172 lines
10 KiB
PHP
172 lines
10 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* Script affichant un formulaire permettant de modifier / supprimer une annonce promotionnelle
|
||
|
* 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_annonces.php");
|
||
|
}
|
||
|
if($_SESSION["statut"]!="administrateur")
|
||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||
|
else
|
||
|
{
|
||
|
$id_annonce=intval(trim($_GET["id_annonce"]));
|
||
|
if(empty($Bd))
|
||
|
require("../modele/connexion-bd.php");
|
||
|
$annonce=FclFlux_annonce::recherche($id_annonce,"*");
|
||
|
if(!empty($annonce))
|
||
|
{
|
||
|
$form_html[0]["nom"]="Informations de l'annonce n°$id_annonce.";
|
||
|
$form_html[0]["champs"]="<form method='post' id='maj_annonce' name='maj_annonce' action='".PAGE_MAJ_ANNONCES."?id_annonce=$id_annonce' role='form'>";
|
||
|
//stats affichages / clics de l'annonce
|
||
|
$annonce_stats=new FclFlux_annonce();
|
||
|
$annonce_stats->id_annonce=$annonce["id_annonce"];
|
||
|
$stats=$annonce_stats->get_stats();
|
||
|
if(!empty($stats))
|
||
|
{
|
||
|
$form_html[0]["champs"].="<div class='col-sm-12'><p class='help-block'><strong>Cette annonce a été diffusée ".$stats["nb_envois"]." fois à ".$stats["nb_envois_uniques"]." abonnés différents et a été cliquée ".$stats["nb_clics"]." fois par ".$stats["nb_clics_uniques"]." abonnés différents.";
|
||
|
if(($stats["nb_envois_uniques"]!=0)&&($stats["nb_clics_uniques"]!=0))
|
||
|
$form_html[0]["champs"].="<br>".round(($stats["nb_clics_uniques"]/($stats["nb_envois_uniques"]*0.01)))." % des abonnés ciblés ont cliqué au moins une fois sur l'annonce.";
|
||
|
$form_html[0]["champs"].="</strong></p></div>";
|
||
|
}
|
||
|
unset($annonce_stats);
|
||
|
//si date fin diffusion dépassée, on ne peut plus rien changer !
|
||
|
$aujourdhui=time();
|
||
|
$etat="";
|
||
|
if($annonce["time_fin"]<=$aujourdhui)
|
||
|
$etat="readonly";
|
||
|
$emplacements=explode("|",ANNONCE_EMPLACEMENTS);
|
||
|
$form_html[0]["champs"].="<div class='form-group'><label for='emplacement' class='col-sm-3 control-label'>Emplacement de l'annonce :</label>";
|
||
|
foreach ($emplacements as $emplacement)
|
||
|
{
|
||
|
if($emplacement==$annonce["emplacement"])
|
||
|
$form_html[0]["champs"].="<label class='checkbox-inline'><input type='radio' name='emplacement' value='$emplacement' checked='checked' $etat> ".$emplacement."</label>";
|
||
|
else
|
||
|
$form_html[0]["champs"].="<label class='checkbox-inline'><input type='radio' name='emplacement' value='$emplacement' $etat> ".$emplacement."</label>";
|
||
|
}
|
||
|
$form_html[0]["champs"].="<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire</b>. Où l'annonce doit-elle apparaître dans les mailings ?</p></div>
|
||
|
</div>
|
||
|
<div class='form-group'>
|
||
|
<label for='titre' class='col-sm-3 control-label'>Titre.</label>
|
||
|
<div class='col-sm-9'><input class='form-control' type='text' maxlength='".ANNONCE_MAX_TITRE."' name='titre' id='titre' value=\"".htmlspecialchars($annonce["titre"])."\" required $etat></div>
|
||
|
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire</b>. Désignation interne de l'annonce (non publiée).</p></div>
|
||
|
</div>
|
||
|
<div class='form-group'>
|
||
|
<label for='annonce' class='col-sm-3 control-label'>Annonce.</label>
|
||
|
<div class='col-sm-9'><input class='form-control' type='text' maxlength='".ANNONCE_MAX_TEXTE."' name='annonce' id='annonce' value=\"".htmlspecialchars($annonce["annonce"])."\" required $etat></div>
|
||
|
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire</b>. Le texte de l'annonce.</p></div>
|
||
|
</div>
|
||
|
<div class='form-group'>
|
||
|
<label for='url' class='col-sm-3 control-label'>Adresse du lien.</label>
|
||
|
<div class='col-sm-9'><input class='form-control' type='url' maxlength='".ANNONCE_MAX_URL."' name='url' id='url' value=\"".$annonce["lien_url"]."\" required $etat></div>
|
||
|
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire</b>. L'adresse de la page dont le lien accompagne l'annonce.</p></div>
|
||
|
</div>
|
||
|
<div class='form-group'>
|
||
|
<label for='designation' class='col-sm-3 control-label'>Ancre du lien.</label>
|
||
|
<div class='col-sm-9'><input class='form-control' type='text' maxlength='".ANNONCE_MAX_ANCRE."' name='designation' id='designation' value=\"".htmlspecialchars($annonce["lien_ancre"])."\" required $etat></div>
|
||
|
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire</b>. Le texte servant d'ancre au lien.</p></div>
|
||
|
</div>";
|
||
|
if($annonce["time_debut"]<=$aujourdhui)
|
||
|
{
|
||
|
$form_html[0]["champs"].="<div class='form-group'><div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Date de début de la diffusion :</b> ".date("d/m/Y",$annonce["time_debut"]).".</p></div><input type='hidden' id='time_debut' name='time_debut' value=\"".date("d/m/Y",$annonce["time_debut"])."\"></div>";
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$form_html[0]["champs"].="<div class='form-group'>
|
||
|
<label for='time_debut' class='col-sm-3 control-label'>Date de début :</label>
|
||
|
<div class='col-sm-9'><input class='form-control' type='text' name='time_debut' id='time_debut' value=\"".date("d/m/Y",$annonce["time_debut"])."\" required></div>
|
||
|
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire</b>. Le jour de début de diffusion de l'annonce. Format ".DATE_FORMAT."</p></div>
|
||
|
</div>";
|
||
|
}
|
||
|
if($annonce["time_fin"]<=$aujourdhui)
|
||
|
$form_html[0]["champs"].="<div class='form-group'><div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Date de fin de la diffusion :</b> ".date("d/m/Y",$annonce["time_fin"]).".</p></div><input type='hidden' id='time_fin' name='time_fin' value=\"".date("d/m/Y",$annonce["time_fin"])."\"></div>";
|
||
|
else
|
||
|
$form_html[0]["champs"].="<div class='form-group'>
|
||
|
<label for='time_fin' class='col-sm-3 control-label'>Date de fin :</label>
|
||
|
<div class='col-sm-9'><input class='form-control' type='text' name='time_fin' id='time_fin' value=\"".date("d/m/Y",$annonce["time_fin"])."\" required></div>
|
||
|
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire</b>.</p></div>
|
||
|
</div>";
|
||
|
$form_html[0]["champs"].="<div class='form-group'>
|
||
|
<label for='commentaires' class='col-sm-3 control-label'>Mémo.</label>
|
||
|
<div class='col-sm-9'><input class='form-control' type='text' maxlength='".ANNONCE_MAX_COMMENTAIRES."' name='commentaires' id='commentaires' value=\"".htmlspecialchars($annonce["commentaires"])."\" $etat></div>
|
||
|
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Facultatif</b>. Mémo interne non publié.</p></div>
|
||
|
</div>
|
||
|
<div class='form-group'>
|
||
|
<div class='col-sm-offset-3 col-sm-9'>
|
||
|
<div class='checkbox'>
|
||
|
<label class='text-danger' for='suppr_ok'><input type='checkbox' name='suppr_ok' id='suppr_ok' value='1' $etat> Je souhaite supprimer cette annonce.</label>
|
||
|
</div></div></div>
|
||
|
<div id='msg_annonces'></div>
|
||
|
<input type='hidden' name='id_annonce' id='id_annonce' value='$id_annonce'>";
|
||
|
if($annonce["time_fin"]>$aujourdhui)//je ne peux plus modifier une annonce dont la diffusion est achevée.
|
||
|
{
|
||
|
$form_html[0]["champs"].="<div class='form-group'><div class='col-sm-offset-3 col-sm-9'><button type='submit' class='btn btn-success btn-lg'>Enregistrer.</button></div></div>";
|
||
|
}
|
||
|
$form_html[0]["champs"].="<p><br><br><a href='".PAGE_MAJ_ANNONCES."' title='Nouvelle saisie' class='btn btn-info btn-sm'>+ Nouvelle annonce.</a></p>
|
||
|
</form>";
|
||
|
//--rubriques de hubs dont les abonnés sont ciblés par cette annonce.
|
||
|
$Annonce=new FclFlux_annonce();
|
||
|
$Annonce->id_annonce=$id_annonce;
|
||
|
$rubriques=$Annonce->get_rubriques_infos();
|
||
|
unset($Annonce);
|
||
|
$txt_stats="";
|
||
|
$suppr_rubrique="";
|
||
|
if(!empty($rubriques))
|
||
|
{
|
||
|
foreach ($rubriques as $rubrique_info)
|
||
|
{
|
||
|
$rubrique_stats=new FclFlux_rubrique();
|
||
|
$rubrique_stats->id_rubrique=$rubrique_info["id_rubrique"];
|
||
|
$stats=$rubrique_stats->get_stats();
|
||
|
if(!empty($stats))
|
||
|
$txt_stats=" (".$stats["nb_abo_actifs_indirects"]." abonnés)";
|
||
|
unset($rubrique_stats);
|
||
|
$suppr_rubrique.="<div class='form-group'><p><b><a href='".PAGE_MAJ_RUBRIQUES."?id_rubrique=".$rubrique_info["id_rubrique"]."' title=\"+ d'infos sur la rubrique\" target='_blank'>".$rubrique_info["nom"]."</a></b>$txt_stats <label class='checkbox-inline' for='suppr_rubrique[]'><input name='suppr_rubrique[]' type='checkbox' id='suppr_rubrique_".$rubrique_info["id_rubrique"]."' value='".$rubrique_info["id_rubrique"]."' $etat>Supprimer cette rubrique cible.</label></p></div>\n";
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
require_once("../modele/FclFlux_abonnement.php");
|
||
|
$stats_abonnes=FclFlux_abonnement::get_stats_globales();
|
||
|
if(!empty($stats_abonnes))
|
||
|
$txt_stats="<div class='col-sm-12'><p class='help-block'><strong>Sans ciblage, l'annonce sera diffusée à ".$stats_abonnes["nb_abonnes_email"]." abonnés différents.</strong></p></div>";
|
||
|
}
|
||
|
$form_html[1]["nom"]="Rubriques cibles de l'annonce.";
|
||
|
$form_html[1]["champs"]="<div id='msg_annonces_classement'></div>
|
||
|
<form method='post' id='rubriques_annonce' name='rubriques_annonce' action='".PAGE_MAJ_RUBRIQUES."' role='form'>";
|
||
|
if($annonce["time_debut"]>$aujourdhui)//je ne peux plus modifier le ciblage d'une annonce dont la diffusion a débuté.
|
||
|
{
|
||
|
$form_html[1]["champs"].="<div class='form-group'>
|
||
|
<label for='recherche_rubrique'>Nouvelle rubrique cible.</label>
|
||
|
<input class='form-control' type='text' maxlength='20' name='recherche_rubrique' id='recherche_rubrique' $etat>
|
||
|
</div>
|
||
|
<div id='select_rubriques'></div>";
|
||
|
}
|
||
|
//rubriques déjà ciblées par cette annonce
|
||
|
if(!empty($suppr_rubrique))
|
||
|
$form_html[1]["champs"].="<p><strong>Rubriques enregistrées :</strong></p>$suppr_rubrique";
|
||
|
else
|
||
|
$form_html[1]["champs"].=$txt_stats;
|
||
|
if($annonce["time_fin"]>$aujourdhui)//je ne peux plus modifier une annonce dont la diffusion est achevée.
|
||
|
$form_html[1]["champs"].="<input type='hidden' name='id_annonce' id='id_annonce' value='$id_annonce'>
|
||
|
<button type='submit' class='btn btn-success btn-lg' $etat>Enregistrer.</button>";
|
||
|
else
|
||
|
$form_html[1]["champs"].="<br>";
|
||
|
$form_html[1]["champs"].="</form>";
|
||
|
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);
|