hellofacteurV1/ctrl/admin_annonces_affiche.php

172 lines
10 KiB
PHP
Raw Normal View History

2021-11-02 11:23:49 +01:00
<?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);