hellofacteurV1/ctrl/admin_hub_affiche.php

233 lines
15 KiB
PHP
Executable File

<?php
/**
* Script affichant un formulaire permettant de modifier / supprimer un hub
* 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_hub.php");
}
if($_SESSION["statut"]!="administrateur")
$msg_form[]=ERREUR_IMPREVUE;
else
{
$id_hub=intval(trim($_GET["id_hub"]));
if(empty($Bd))
require("../modele/connexion-bd.php");
$hub_infos=FclFlux_hub::recherche($id_hub,"id_hub","nom,publication_ok,index_ok,description,illustration,langue,mots_cles,memo");
if(!empty($hub_infos))
{
$access_rapides="<p class='liste_liens_btn'>Accès rapide : <a href='".PAGE_REPERTOIRE_HUB_INFO."$id_hub' title='Voir la page du hub' class='btn btn-info btn-xs' target='_blank'>Voir le hub.</a> <a href='#maj_hub' class='btn btn-info btn-xs' title='Infos du hub'>Informations générales.</a> <a href='#maj_hub_illustration' class='btn btn-info btn-xs' title='Illustration du hub'>Illustrations.</a> <a href='#post_hub' class='btn btn-info btn-xs' title='Ajouter un post dans ce hub'>+ Nouveau post.</a> <a href='#rubriques_hub' class='btn btn-info btn-xs' title='Classement du hub'>Le classement.</a> <a href='#flux_hub' class='btn btn-info btn-xs' title='Les flux à importer dans ce hub'>Flux à importer.</a> <a href='#admin_hub' class='btn btn-info btn-xs' title='Désigner les administrateurs du hub'>Administrateurs.</a> </p>";
$stats_txt="";
$hub_stats=new FclFlux_hub();
$hub_stats->id_hub=$id_hub;
$stats=$hub_stats->get_liste_abonnes();
$stats["nb_clics"]=$hub_stats->get_nb_clics();
if(!empty($stats))
$stats_txt="<div class='col-sm-12'><p class='help-block'><strong>Ce bureau de poste compte ".count($stats["actifs"])." abonnés actifs, ".count($stats["inactifs"])." abonnements désactivés et ".count($stats["en_pause"])." abonnés en pause. Depuis le début ses flux ont reçu ".$stats["nb_clics"]." clics.</strong></p></div>";
unset($hub_stats);unset($stats);
$form_html[0]["nom"]="Informations actuelles sur ce hub ($id_hub).";
$form_html[0]["champs"]="$stats_txt$access_rapides<form method='post' id='maj_hub' name='maj_hub' action='".PAGE_MAJ_HUB."?id_hub=$id_hub' role='form'>
<div class='form-group'>
<label for='nom'>Désignation.</label>
<input class='form-control' type='text' maxlength='".HUB_MAX_NOM."' name='nom' id='nom' value=\"".htmlspecialchars($hub_infos["nom"])."\" required>
<p class='help-block'><b>Obligatoire</b>.</p>
</div>
<div class='form-group'>
<label for='description'>Description.</label>
<input class='form-control' type='text' maxlength='".HUB_MAX_DESCRIPTION."' name='description' id='description' value=\"".htmlspecialchars($hub_infos["description"])."\">
<p class='help-block'><b>Facultatif</b>.</p>
</div>
<div class='form-group'>
<label for='mots_cles'>Mots-clés.</label>
<textarea class='form-control' rows='4' name='mots_cles' id='mots_cles'>".htmlspecialchars($hub_infos["mots_cles"])."</textarea>
<p class='help-block'><b>Facultatif</b>. Utile pour les recherches des utilisateurs. À séparer par des virgules.</p>
</div>";
$langues=explode("|",HUB_LANGUES);
$form_html[0]["champs"].="<div class='form-group'><label for='langue'>Langue principale du hub :".$hub_infos["langue"]."</label>";
foreach ($langues as $langue)
{
if($langue==$hub_infos["langue"])
$form_html[0]["champs"].="<label class='checkbox-inline'><input type='radio' name='langue' value='$langue' checked='checked'> ".$langue."</label>";
else
$form_html[0]["champs"].="<label class='checkbox-inline'><input type='radio' name='langue' value='$langue'> ".$langue."</label>";
}
$form_html[0]["champs"].="<p class='help-block'><b>Obligatoire</b>.</p></div>";
if($hub_infos["publication_ok"]==1)
$form_html[0]["champs"].="<div class='form-group'><label class='checkbox-inline'><input type='checkbox' id='publication_ok' name='publication_ok' value='1' checked='checked'> Publication autorisée.</label></div>";
else
$form_html[0]["champs"].="<div class='form-group'><label class='checkbox-inline'><input type='checkbox' id='publication_ok' name='publication_ok' value='1'> Publication autorisée.</label></div>";
if($hub_infos["index_ok"]==1)
$form_html[0]["champs"].="<div class='form-group'><label class='checkbox-inline'><input type='checkbox' id='index_ok' name='index_ok' value='1' checked='checked'> Indexation autorisée.</label></div>";
else
$form_html[0]["champs"].="<div class='form-group'><label class='checkbox-inline'><input type='checkbox' id='index_ok' name='index_ok' value='1'> Indexation autorisée.</label></div>";
$form_html[0]["champs"].="
<div class='form-group'>
<label for='memo'>Mémo.</label>
<input class='form-control' type='text' maxlength='".HUB_MAX_MEMO."' name='memo' id='memo' value=\"".htmlspecialchars($hub_infos["memo"])."\">
<p class='help-block'><b>Facultatif</b>. Mémo interne non publié.</p>
</div>
<div class='form-group'><label class='checkbox-inline' for='suppr_ok'><input type='checkbox' id='suppr_ok' name='suppr_ok' value='1'> Je souhaite supprimer ce hub si il n'a pas de dépendances.</label></div>
<div class='form-group'><label class='checkbox-inline text-danger' for='suppr_ok_tot'><input type='checkbox' id='suppr_ok_tot' name='suppr_ok_tot' value='1'> Je souhaite supprimer ce hub, <u>y compris si il a des dépendances (abonnements...)</u>.</label></div>
<input type='hidden' name='id_hub' id='id_hub' value='$id_hub'>
<button type='submit' class='btn btn-success btn-lg'>Enregistrer.</button>
<p><br><br><a href='".PAGE_MAJ_HUB."' title='Saisir un nouveau hub' class='btn btn-info btn-sm'>+ Nouveau hub.</a></p>
</form>";
// les divers éléments annexes au hub
$hub=new FclFlux_hub();
$hub->id_hub=$id_hub;
// éventuelle illustration
if(!empty($hub_infos["illustration"]))
{
$fichier=$hub_infos["illustration"];
$adresse_illustration=HUB_ILLUS_REP."/".$fichier[0]."/".$fichier;
}
$form_html[1]["nom"]="Illustration du hub.";
$form_html[1]["champs"]="$access_rapides<form method='post' id='maj_hub_illustration' action='".PAGE_MAJ_HUB_ILLUSTRATION_ADMIN."' enctype='multipart/form-data' role='form' class='form-horizontal' target='uploadFrame'>";
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("|",", ",HUB_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 hub. Formats autorisés : ".str_replace("|",", ",HUB_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>
<input type='hidden' name='nom' id='nom' value='".htmlspecialchars($hub_infos["nom"])."'>
<input type='hidden' name='id_hub' id='id_hub' value='$id_hub'>
<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>\n";
//ajout d'une annonce dans ce hub.
$form_html[2]["nom"]="Saisir une nouvelle annonce dans ce hub.";
$form_html[2]["champs"]="$access_rapides<div id='msg_form_post'></div><form method='post' id='post_hub' name='post_hub' action='".PAGE_MAJ_HUB."' role='form'>
<div class='form-group'>
<label for='ancre'>Ancre.</label>
<input class='form-control' type='text' maxlength='".POST_MAX_ANCRE."' name='ancre' id='ancre' required>
<p class='help-block'><b>Obligatoire</b>.</p>
</div>
<div class='form-group'>
<label for='url'>Adresse (url).</label>
<input class='form-control' type='url' maxlength='".POST_MAX_URL."' name='url' id='url'>
<p class='help-block'><b>Obligatoire si pas de texte d'annonce</b>.</p>
</div>
<div class='form-group'>
<label for='annonce'>Annonce.</label>
<textarea class='form-control' rows='4' name='annonce' id='annonce'></textarea>
<p class='help-block'><b>Obligatoire si pas d'adresse pour l'article</b>.</p>
</div>
<input type='hidden' name='id_hub' id='id_hub' value='$id_hub'>
<button type='submit' class='btn btn-success btn-lg'>Enregistrer.</button></form>";
//classement du hub en rubriques
$rubriques=$hub->get_rubriques_infos();
$suppr_rubrique="";
if(!empty($rubriques))
{
foreach ($rubriques as $rubrique_info)
{
$suppr_rubrique.="<div class='form-group'><ul><a href='".PAGE_MAJ_RUBRIQUES."?id_rubrique=".$rubrique_info["id_rubrique"]."' title=\"+ d'infos sur la rubrique\" target='_blank'>".$rubrique_info["nom"]."</a><li><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"]."'>Supprimer ce classement.</label></li>";
if($rubrique_info["reference_ok"]==1)
$suppr_rubrique.="<li><label class='checkbox-inline' for='suppr_reference_ok[]'><input name='suppr_reference_ok[]' type='checkbox' id='suppr_reference_ok_".$rubrique_info["id_rubrique"]."' value='".$rubrique_info["id_rubrique"]."'> Ne plus être un des hubs de référence de cette rubrique.</label></li>";
else
$suppr_rubrique.="<li><label class='checkbox-inline' for='ajout_reference_ok[]'><input name='ajout_reference_ok[]' type='checkbox' id='ajout_reference_ok_".$rubrique_info["id_rubrique"]."' value='".$rubrique_info["id_rubrique"]."'> Désigné comme hub de référence de cette rubrique.</label></li>";
$suppr_rubrique.="</ul></div>\n";
}
}
$form_html[3]["nom"]="Classement du hub.";
$form_html[3]["champs"]=" $access_rapides<div id='msg_form_classement'></div><form method='post' id='rubriques_hub' name='rubriques_hub' action='".PAGE_MAJ_HUB."' role='form'>
<div class='form-group'>
<label for='recherche_rubrique'>Nouvelle rubrique où classer le hub.</label>
<input class='form-control' type='text' maxlength='20' name='recherche_rubrique' id='recherche_rubrique'>
</div>
<div id='select_rubriques'></div>
<div class='form-group'><label class='checkbox-inline' for='reference_ok'><input type='checkbox' id='reference_ok' name='reference_ok' value='1'> Désigné comme hub de référence dans cette rubrique.</label></div>";
if(!empty($suppr_rubrique))
$form_html[3]["champs"].="<p><strong>Classement actuel.</strong></p>$suppr_rubrique";
$form_html[3]["champs"].="<input type='hidden' name='id_hub' id='id_hub' value='$id_hub'>
<button type='submit' class='btn btn-success btn-lg'>Enregistrer le nouveau classement.</button></form>";
//désignation des flux importés dans ce hub.
$flux=$hub->get_flux();
$suppr_flux="";
if(!empty($flux))
{
foreach ($flux as $flux_id)
{
$flux_infos=FclFlux_flux::recherche($flux_id["id_flux"],"id_flux","nom");
if(!empty($flux_infos))
$suppr_flux.="<div class='form-group'><label class='checkbox-inline' for='suppr_flux[]'><input name='suppr_flux[]' type='checkbox' id='suppr_flux_".$flux_id["id_flux"]."' value='".$flux_id["id_flux"]."'><a href='".PAGE_MAJ_FLUX."?id_flux=".$flux_id["id_flux"]."' title=\"+ d'infos sur ce flux\" target='_blank'>".$flux_infos["nom"]."</a>.</label></div>\n";
}
}
$form_html[4]["nom"]="Flux importés dans ce hub.";
$form_html[4]["champs"]="$access_rapides<div id='msg_form_flux'></div><form method='post' id='flux_hub' name='flux_hub' action='".PAGE_MAJ_HUB."' role='form'>
<div class='form-group'>
<label for='recherche_flux'>Nouveau flux à importer dans ce hub.</label>
<input class='form-control' type='text' maxlength='20' name='recherche_flux' id='recherche_flux'>
</div>
<div id='select_flux'></div>";
if(!empty($suppr_flux))
$form_html[4]["champs"].="<p><strong>Flux déjà importés (cocher ceux à supprimer) :</strong></p>$suppr_flux";
$form_html[4]["champs"].="<input type='hidden' name='id_hub' id='id_hub' value='$id_hub'>
<button type='submit' class='btn btn-success btn-lg'>Enregistrer.</button></form>";
//désignation des administrateurs du hub
$admins=$hub->get_admins();
$suppr_admins="";
if(!empty($admins))
{
foreach ($admins as $admin_id)
{
$admin_infos=FclFlux_utilisateur::recherche($admin_id["id_utilisateur"],"id_utilisateur","pseudo,email");
if(!empty($admin_infos))
$suppr_admins.="<div class='form-group'><label class='checkbox-inline' for='suppr_admin[]'><input name='suppr_admin[]' type='checkbox' id='suppr_admin_".$admin_id["id_utilisateur"]."' value='".$admin_id["id_utilisateur"]."'><a href='".PAGE_MAJ_COMPTES."?id_utilisateur=".$admin_id["id_utilisateur"]."' title=\"+ d'infos sur cet utilisateur\" target='_blank'>".$admin_infos["pseudo"]." (".$admin_infos["email"].")</a>.</label></div>\n";
}
}
$form_html[5]["nom"]="Administrateurs du hub.";
$form_html[5]["champs"]="$access_rapides<div id='msg_form_admin'></div><form method='post' id='admin_hub' name='admin_hub' action='".PAGE_MAJ_HUB."' role='form'>
<div class='form-group'>
<label for='recherche_admin'>Nouvel administrateur pour ce hub.</label>
<input class='form-control' type='text' maxlength='20' name='recherche_admin' id='recherche_admin'>
</div>
<div id='select_admins'></div>";
if(!empty($suppr_admins))
$form_html[5]["champs"].="<p><strong>Administrateurs actuels (cocher ceux à supprimer) :</strong></p>$suppr_admins";
$form_html[5]["champs"].="<input type='hidden' name='id_hub' id='id_hub' value='$id_hub'>
<button type='submit' class='btn btn-success btn-lg'>Enregistrer.</button></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);