hellofacteurV1/ctrl/admin_posts_affiche.php

240 lines
12 KiB
PHP
Raw Permalink Normal View History

2021-11-02 11:23:49 +01:00
<?php
/**
* Script affichant un formulaire permettant de modifier / supprimer un post dont l'id a été passé en paramètre
* et sinon d'en saisir un nouveau en sélectionnant son hub.
* 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_post.php");
}
if($_SESSION["statut"]!="administrateur")
{
$msg_form[]=ERREUR_IMPREVUE;
echo get_html_alerte_msg($msg_form);
exit();
}
$ancre="";
$url="";
$annonce="";
$date_diffusion="";
$date_expiration="";
if(!empty($_GET["id_post"]))
{
$id_post=intval(trim($_GET["id_post"]));
if(empty($Bd))
require("../modele/connexion-bd.php");
$post=FclFlux_post::recherche($id_post,"ancre,url,annonce,hub_id,flux_id,auteur_id,time_diffusion,time_expiration,illustration,time_crea,time_validation");
if(!empty($post))
{
$form_html[0]["nom"]="Informations actuelles de ce post ($id_post).";
$form_html[0]["champs"]="<form method='post' id='maj_post' name='maj_post' action='".PAGE_MAJ_POSTS."?id_post=$id_post' role='form' class='form-horizontal'>
<fieldset>
<input type='hidden' name='hub_id' id='hub_id' value='".$post["hub_id"]."'>
<input type='hidden' name='flux_id' id='flux_id' value='".$post["flux_id"]."'>
<input type='hidden' name='auteur_id' id='auteur_id' value='".$post["auteur_id"]."'>
<div class='col-sm-12'><p>Post enregistré le ".date("d/m/Y",$post["time_crea"]);
if(!empty($post["time_crea"]))
{
if(!empty($post["time_validation"]))
$form_html[0]["champs"].=" et validé le ".date("d/m/Y",$post["time_validation"]).".<br>";
else
$form_html[0]["champs"].=" et <b>non encore validé</b>.<br>";
}
if(!empty($post["hub_id"]))
$hub_infos=FclFlux_hub::recherche($post["hub_id"],"id_hub","nom");
if(!empty($post["auteur_id"]))
$auteur_infos=FclFlux_utilisateur::recherche($post["auteur_id"],"id_utilisateur","pseudo,email");
elseif(!empty($post["flux_id"]))
$flux_infos=FclFlux_flux::recherche($post["flux_id"],"id_flux","nom");
if(!empty($hub_infos["nom"]))
{
$form_html[0]["champs"].="Post publié dans le hub : <a href='".PAGE_REPERTOIRE_HUB_INFO.$post["hub_id"]."' target='_blank' title=\"Page du hub\" >".$hub_infos["nom"]."</a>";
if(!empty($auteur_infos["pseudo"]))
$form_html[0]["champs"].=" par : <a href='".PAGE_MAJ_COMPTES."?id_utilisateur=".$post["auteur_id"]."#posts' target='_blank' title=\"Derniers posts de l'utilisateur\">".$auteur_infos["pseudo"]."</a></p>";
elseif(!empty($flux_infos["nom"]))
$form_html[0]["champs"].=" en provenance du flux : <a href='".PAGE_MAJ_FLUX."?id_flux=".$post["flux_id"]."' target='_blank' title=\"Informations du flux\">".$flux_infos["nom"]."</a></p>";
}
else
$form_html[0]["champs"].="</p>".get_html_alerte_msg((array) "Attention, ce post n'a pas de hub !");
$form_html[0]["champs"].="</div>";
$ancre=htmlspecialchars($post["ancre"]);
$url=$post["url"];
// le texte de l'annonce peut déjà contenir du html ou pas...
if(empty($post["annonce"]))
$annonce="";
else
{
$annonce=htmlspecialchars($post["annonce"]);
if(strpos($post["annonce"],"<a ")===false)
$annonce=crea_liens_texte($annonce);
if(strpos($post["annonce"],"<br")===false)
$annonce=nl2br($annonce);
if(strpos($post["annonce"],"</p>")===false)
$annonce="<p>$annonce</p>";
}
// des dates peuvent avoir été fournies ou non pour le début de la diffusion et l'expiration
if(!empty($post["time_diffusion"]))
$date_diffusion=date("d/m/Y",$post["time_diffusion"]);
if(!empty($post["time_expiration"]))
$date_expiration=date("d/m/Y",$post["time_expiration"]);
}
else
{
$msg_form[]=ERREUR_SQL_ENREG_ABSENT;
echo get_html_alerte_msg($msg_form);
exit();
}
}
else
{//saisie d'une nouvelle annonce
$form_html[0]["nom"]="Saisie d'un nouveau post.";
$form_html[0]["champs"]="<form method='post' id='maj_post' name='maj_post' action='".PAGE_MAJ_POSTS."' role='form' class='form-horizontal'>
<fieldset>
<input type='hidden' name='auteur_id' id='auteur_id' value='".$user->id_utilisateur."'>";
}
$form_html[0]["champs"].="
<div class='form-group'>
<label for='ancre' class='col-sm-3 control-label'>Titre :</label>
<div class='col-sm-9'><input class='form-control' type='text' maxlength='".POST_MAX_ANCRE."' name='ancre' id='ancre' value=\"$ancre\" required></div>
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire</b>.</p></div>
</div>
<div class='form-group'>
<label for='url' class='col-sm-3 control-label'>Adresse (url) :</label>
<div class='col-sm-9'><input class='form-control' type='url' maxlength='".POST_MAX_URL."' name='url' id='url' value=\"$url\"></div>
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire si pas de texte pour l'annonce</b>.";
if(!empty($url))
$form_html[0]["champs"].=" <a href='".$post["url"]."' target='_blank' class='btn btn-success bt-sm'>Visitez la page.</a>";
$form_html[0]["champs"].="</p></div>
<div class='form-group'>
<label for='time_diffusion' class='col-sm-3 control-label'>Date de diffusion :</label>
<div class='col-sm-9'><input class='form-control' type='text' name='time_diffusion' id='time_diffusion' value=\"".$date_diffusion."\"></div>
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Facultatif</b>. Le jour de début de diffusion du post si différent de la date de validation. Format ".DATE_FORMAT."</p></div>
</div>";
if(empty($id_post))
{
$form_html[0]["champs"].="<div class='form-group'>
<label for='recherche_hub' class='col-sm-3 control-label'>Cherchez le hub :</label>
<div class='col-sm-9'><input class='form-control' name='recherche_hub' id='recherche_hub' placeholder=\"Hub à rechercher\" required></div>
</div>
<div id='selection_hubs'>";
if(!empty($select_hubs))
$form_html[0]["champs"].=$select_hubs;
$form_html[0]["champs"].="</div>";
}
$form_html[0]["champs"].="<div class='form-group'>
<label for='time_expiration' class='col-sm-3 control-label'>Date d'expiration :</label>
<div class='col-sm-9'><input class='form-control' type='text' name='time_expiration' id='time_expiration' value=\"".$date_expiration."\"></div>
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Facultatif</b>. Date le post doit être supprimé. Par défaut, il sera supprimé ".POSTS_MAX_JOURS." jours après le début de sa diffusion.</p></div>
</div>
<div class='form-group'>
<label for='annonce' class='col-sm-3 control-label'>Texte de l'annonce :</label>
<div class='col-sm-9'><textarea class='form-control' rows='10' name='annonce' id='annonce'>$annonce</textarea></div>
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire si pas d'adresse fournie</b>.</p></div>";
if((!empty($annonce))&&((isset($post["time_validation"]))&&(!empty($post["time_validation"]))))
$form_html[0]["champs"].="<div class='col-sm-offset-3 col-sm-9'><p><a href='".PAGE_REPERTOIRE_POST_INFO."".$id_post."' target='_blank' class='btn btn-success bt-sm'>Voir l'annonce.</a></p></div>";
$form_html[0]["champs"].="</div>";
if(!empty($id_post))
{
$form_html[0]["champs"].="<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'> Je souhaite supprimer cette post.</label>
</div></div></div>
<input type='hidden' name='id_post' id='id_post' value='$id_post'>";
}
$form_html[0]["champs"].="<div id='msg_posts' class='col-sm-offset-3 col-sm-9'></div>
<div class='form-group'>
<div class='col-sm-12'>
<div class='col-sm-offset-3 col-sm-3'><button type='submit' class='btn btn-success btn-lg'>Enregistrer.</button></div>
<div class='col-sm-offset-1 col-sm-2'><a href='".PAGE_MAJ_POSTS."' class='btn btn-success btn-lg'>Nouveau post.</a></div>
</div>
</div>
</fieldset></form>";
if(!empty($id_post))
{
if(!empty($post["illustration"]))
{
$fichier=$post["illustration"];
$adresse_illustration=POST_ILLUS_REP."/".$fichier[0]."/".$fichier;
}
$form_html[1]["nom"]="Illustration.";
$form_html[1]["champs"]="
<form method='post' id='maj_illustration' action='".PAGE_MAJ_ILLUSTRATION_POST."' enctype='multipart/form-data' role='form' class='form-horizontal' target='uploadFrame'>
<input type='hidden' name='id_post_illustration' id='id_post_illustration' value='$id_post'>
<input type='hidden' name='ancre_illustration' id='ancre_illustration' value=\"$ancre\">";
if((!empty($adresse_illustration))&&(file_exists($adresse_illustration)))
{
$form_html[1]["champs"].="
<p><strong>Illustration actuelle.</strong><br>
<img src='".SITE_URL."/".$adresse_illustration."' alt='Illustration actuelle' class='img-responsive'>
</p>
<div class='form-group'>
<label for='illustration' class='col-sm-3 control-label'>Téléchargez une nouvelle image :</label>
<div class='col-sm-9'><input type='file' name='illustration' id='illustration'></div>
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Facultatif</b>. Vous pouvez télécharger une nouvelle image pour remplacer celle actuelle. Formats autorisés : ".str_replace("|",", ",POST_ILLUS_EXTENSIONS).".</p></div>
</div>
<div class='form-group'>
<div class='col-sm-offset-3 col-sm-9'>
<div class='checkbox'>
<label for='suppr_illustration'>
<input name='suppr_illustration' type='checkbox' id='suppr_illustration' value='1'> Je souhaite supprimer l'illustration actuelle sans en télécharger une nouvelle.
</label>
</div></div></div>";
}
else
{
$form_html[1]["champs"].="
<div class='form-group'>
<label for='illustration' class='col-sm-3 control-label'>Téléchargez une illustration :</label>
<div class='col-sm-9'><input type='file' name='illustration' id='illustration'></div>
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Facultatif</b>. Vous pouvez télécharger une image pour illustrer ce post. Formats autorisés : ".str_replace("|",", ",POST_ILLUS_EXTENSIONS).".</p></div>
</div>";
}
$form_html[1]["champs"].="<iframe id='uploadFrame' name='uploadFrame' src='#' style='width:90%;height:100px;border:0 solid;'></iframe>
<div id='msg_illustration'></div>
<div class='form-group'>
<div class='col-sm-offset-3 col-sm-12'><button type='submit' class='btn btn-success btn-lg'>Enregistrer.</button></div>
</div>
</form>\n";
$form_html[2]["nom"]="Changer le hub où est classé ce post.";
$form_html[2]["champs"]="<form method='post' id='change_hub_post' name='change_hub_post' action='".PAGE_MAJ_POSTS."' class='form-horizontal' role='form'>
<fieldset>
<div class='form-group'>
<label class='sr-only' for='recherche_hub' class='col-sm-3 control-label'>Rechercher le nouvel hub :</label>
<div class='col-sm-7'><input type='text' class='form-control' name='recherche_hub' id='recherche_hub' placeholder=\"Hub à rechercher\" required></div>
<div class='col-sm-2'><button type='submit' class='btn btn-default'>Rechercher le nouvel hub.</button></div>
</div>
<input type='hidden' name='id_post_hub' id='id_post_hub' value='$id_post'>
<div id='selection_hubs'>";
if(!empty($select_hubs))
$form_html[2]["champs"].=$select_hubs;
$form_html[2]["champs"].="</div>
</fieldset></form>";
$form_html[3]["nom"]="Changer l'auteur de ce post.";
$form_html[3]["champs"]="<form method='post' id='change_auteur_post' name='change_auteur_post' action='".PAGE_MAJ_POSTS."' class='form-horizontal' role='form'>
<fieldset>
<div class='form-group'>
<label class='sr-only' for='recherche_auteur' class='col-sm-3 control-label'>Rechercher le nouvel auteur :</label>
<div class='col-sm-7'><input type='text' class='form-control' name='recherche_compte' id='recherche_compte' placeholder=\"Auteur à rechercher\" required></div>
<div class='col-sm-2'><button type='submit' class='btn btn-default'>Rechercher le nouvel auteur.</button></div>
</div>
<input type='hidden' name='id_post_auteur' id='id_post_auteur' value='$id_post'>
<div id='selection_auteurs'>";
if(!empty($select))
$form_html[3]["champs"].=$select;
$form_html[3]["champs"].="</div>
</fieldset></form>";
}
if($ajax_on)
echo get_html_form($form_html,false);