Code de la version actuelle
This commit is contained in:
parent
70133e8356
commit
ae08f8ddcf
140
config/config.example.php
Executable file
140
config/config.example.php
Executable file
@ -0,0 +1,140 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Configurations générales de l'application
|
||||||
|
* à ne modifier qu'en connaissance de cause...
|
||||||
|
**/
|
||||||
|
|
||||||
|
// +++ Dimensions max/min et valeurs autorisées pour les champs
|
||||||
|
// Les données des utilisateurs.
|
||||||
|
const UTILISATEUR_MIN_PSEUDO=2;
|
||||||
|
const UTILISATEUR_MAX_PSEUDO=50;
|
||||||
|
const UTILISATEUR_MIN_PASSE=6;
|
||||||
|
const UTILISATEUR_MAX_PASSE=100;
|
||||||
|
const UTILISATEUR_MAX_EMAIL=70;
|
||||||
|
const UTILISATEUR_MAX_PRESENTATION=2000;
|
||||||
|
const UTILISATEUR_STATUTS="utilisateur|administrateur";
|
||||||
|
const UTILISATEUR_ILLUS_EXTENSIONS=".jpg|.jpeg|.png|.gif";
|
||||||
|
const UTILISATEUR_ILLUS_MAX_TAILLE="3000000";// ~ 3 Mo
|
||||||
|
const UTILISATEUR_ILLUS_MAX_LARGEUR=250;
|
||||||
|
const UTILISATEUR_MAX_ORIGINE=50;
|
||||||
|
// Données agenda périodes d'absence des utilisateurs.
|
||||||
|
const AGENDA_MIN_DESIGNATION=1;
|
||||||
|
const AGENDA_MAX_DESIGNATION=50;
|
||||||
|
// Données concernant les hubs
|
||||||
|
const HUB_MIN_NOM=5;
|
||||||
|
const HUB_MAX_NOM=150;
|
||||||
|
const HUB_MAX_DESCRIPTION=255;
|
||||||
|
const HUB_ILLUS_EXTENSIONS=".jpg|.jpeg|.png|.gif";
|
||||||
|
const HUB_ILLUS_MAX_TAILLE="3000000";// ~ 3 Mo
|
||||||
|
const HUB_ILLUS_MAX_LARGEUR=250;
|
||||||
|
const HUB_MAX_MEMO=255;
|
||||||
|
const HUB_LANGUES="fr|en|es|de|pt";
|
||||||
|
const HUB_RECHERCHE_MIN=3;
|
||||||
|
const HUB_RECHERCHE_MAX=150;
|
||||||
|
const HUB_RECHERCHE_MAX_RESULTATS=500;
|
||||||
|
// Données des sites sources des flux.
|
||||||
|
const SOURCE_MIN_NOM=2;
|
||||||
|
const SOURCE_MAX_NOM=50;
|
||||||
|
const SOURCE_MAX_URL=100;
|
||||||
|
const SOURCE_MAX_DESCRIPTION=255;
|
||||||
|
// Données des rubriques classant les flux.
|
||||||
|
const RUBRIQUE_MIN_NOM=5;
|
||||||
|
const RUBRIQUE_MAX_NOM=50;
|
||||||
|
const RUBRIQUE_MAX_DESCRIPTION=255;
|
||||||
|
// Données concernant les liens & posts
|
||||||
|
const POST_MIN_ANCRE=5;
|
||||||
|
const POST_MAX_ANCRE=255;
|
||||||
|
const POST_MAX_URL=500;//url à rallonge de gg news...
|
||||||
|
const POST_MIN_ANNONCE=300;
|
||||||
|
const POST_MAX_ANNONCE=10000;
|
||||||
|
const POST_ILLUS_EXTENSIONS=".jpg|.jpeg|.png|.gif";
|
||||||
|
const POST_ILLUS_MAX_TAILLE="3000000";// ~ 3 Mo
|
||||||
|
const POST_ILLUS_MAX_LARGEUR=250;
|
||||||
|
// Données concernant les flux
|
||||||
|
const FLUX_MIN_NOM=5;
|
||||||
|
const FLUX_MAX_NOM=150;
|
||||||
|
const FLUX_MAX_URL=150;
|
||||||
|
const FLUX_MAX_DESCRIPTION=255;
|
||||||
|
const FLUX_MAX_MEMO=255;
|
||||||
|
const FLUX_FREQUENCES="H|J";
|
||||||
|
const FLUX_LANGUES="fr|en|es|de|pt";
|
||||||
|
const FLUX_RECHERCHE_MIN=3;
|
||||||
|
const FLUX_RECHERCHE_MAX=150;
|
||||||
|
const FLUX_RECHERCHE_MAX_RESULTATS=500;
|
||||||
|
// Données concernant les annonces promotionnelles
|
||||||
|
const ANNONCE_EMPLACEMENTS="header|footer";
|
||||||
|
const ANNONCE_MAX_TITRE=50;
|
||||||
|
const ANNONCE_MAX_TEXTE=255;
|
||||||
|
const ANNONCE_MAX_URL=255;
|
||||||
|
const ANNONCE_MAX_ANCRE=255;
|
||||||
|
const ANNONCE_MAX_COMMENTAIRES=255;
|
||||||
|
// Données concernant les marque-pages des utilisateurs
|
||||||
|
const MP_MIN_ANCRE=3;
|
||||||
|
const MP_MAX_ANCRE=255;
|
||||||
|
const MP_MAX_URL=255;
|
||||||
|
const MP_MAX_DESCRIPTION=255;
|
||||||
|
const MP_MAX_MOTSCLES=255;
|
||||||
|
const MP_MIN_RECHERCHE=3;
|
||||||
|
const MP_MAX_RECHERCHE=50;
|
||||||
|
// Données concernant les abonnements
|
||||||
|
const ABO_MIN_DESIGNATION=2;
|
||||||
|
const ABO_MAX_DESIGNATION=50;
|
||||||
|
const ABO_JOURS="0|1|2|3|4|5|6";
|
||||||
|
const ABO_HORAIRES="matin|midi|soir";
|
||||||
|
const ABO_AFFICHAGES_CONTEXTE="email|site";
|
||||||
|
|
||||||
|
// +++ Les répertoires de stockage des fichiers et leurs droits.
|
||||||
|
define("BASE_REP",__DIR__."/");
|
||||||
|
// Le journal d'erreurs / administrateurs
|
||||||
|
define("JOURNAL_REP",BASE_REP."../journal");
|
||||||
|
const JOURNAL_REP_CHMOD=0705;
|
||||||
|
// Illustrations profils utilisateurs
|
||||||
|
const UTILISATEUR_ILLUS_REP="images/utilisateurs";
|
||||||
|
const UTILISATEUR_ILLUS_REP_CHMOD=0755;
|
||||||
|
// Illustrations hubs
|
||||||
|
const HUB_ILLUS_REP="images/hubs";
|
||||||
|
const HUB_ILLUS_REP_CHMOD=0755;
|
||||||
|
// Illustrations annonces
|
||||||
|
const POST_ILLUS_REP="images/posts";
|
||||||
|
const POST_ILLUS_REP_CHMOD=0755;
|
||||||
|
// Tickets divers
|
||||||
|
define("TICKET_VALID_REP",BASE_REP."../ticket/v");
|
||||||
|
define("TICKET_CONNECT_REP",BASE_REP."../ticket/c");
|
||||||
|
define("TICKET_SUPPR_REP",BASE_REP."../ticket/s");
|
||||||
|
const TICKET_REP_CHMOD=0705;
|
||||||
|
|
||||||
|
// Les caches fichiers
|
||||||
|
define("CACHE_REP",BASE_REP."../cache");
|
||||||
|
const CACHE_REP_CHMOD=0705;
|
||||||
|
const CACHE_REP_UTILISATEURS="u";
|
||||||
|
const CACHE_REP_SOURCES="s";
|
||||||
|
const CACHE_REP_RUBRIQUES="r";
|
||||||
|
const CACHE_REP_POSTS="p";
|
||||||
|
const CACHE_REP_LIENS="l";
|
||||||
|
const CACHE_REP_FLUX="f";
|
||||||
|
const CACHE_REP_HUB="h";
|
||||||
|
const CACHE_REP_ABO="ab";
|
||||||
|
const CACHE_REP_ANNONCES="a";
|
||||||
|
//Les sessions & cookies
|
||||||
|
define("SESSIONS_REP",BASE_REP."../ses");
|
||||||
|
define("SESSIONS_TEMP_REP",BASE_REP."../ses/tmp");
|
||||||
|
define("COOKIES_REP",BASE_REP."../ses/cookies");
|
||||||
|
|
||||||
|
// +++ Déclations et réglages divers...
|
||||||
|
// Format des dates transmises aux méthodes + masque pour expressions régulières.
|
||||||
|
const DATE_FORMAT="JJ/MM/AAAA";
|
||||||
|
const DATE_FORMAT_EREG="#^((0[1-9])|(1\d)|(2\d)|(3[0-1]))\/((0[1-9])|(1[0-2]))\/(\d{4})$#";
|
||||||
|
|
||||||
|
// Durée des sauvegardes des données utilisateurs après suppression de leur compte (à adapter suivant contraintes légales).
|
||||||
|
const DUREE_SVG_DONNEES=365;
|
||||||
|
|
||||||
|
// Fuseaux horaires des dom&tom
|
||||||
|
$DT_fuseau["971"]="America/Guadeloupe";
|
||||||
|
$DT_fuseau["972"]="America/Martinique";
|
||||||
|
$DT_fuseau["973"]="America/Cayenne";
|
||||||
|
$DT_fuseau["974"]="Indian/Reunion";
|
||||||
|
$DT_fuseau["975"]="America/Miquelon";
|
||||||
|
$DT_fuseau["976"]="Indian/Mayotte";
|
||||||
|
$DT_fuseau["986"]="Pacific/Wallis";
|
||||||
|
$DT_fuseau["987"]="Pacific/Tahiti";
|
||||||
|
$DT_fuseau["988"]="Pacific/Noumea";
|
82
config/config.perso.example.php
Executable file
82
config/config.perso.example.php
Executable file
@ -0,0 +1,82 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Configurations personnalisables de l'application
|
||||||
|
* à adapter donc !
|
||||||
|
**/
|
||||||
|
// Infos du site
|
||||||
|
const SITE_NOM="Hello facteur";
|
||||||
|
const SITE_URL="https://www.hellofacteur.com";
|
||||||
|
const SITE_SLOGAN="Votre actualité, comme une lettre à la poste.";
|
||||||
|
const SITE_LANG="fr-fr";
|
||||||
|
const SITE_COOKIES_DOMAINE="hellofacteur.com";
|
||||||
|
const UTF8_OK=true;
|
||||||
|
|
||||||
|
// Si on souhaite rendre automatique l'abonnement au hub des nouvelles du site
|
||||||
|
$hub_site["id"]=20451;
|
||||||
|
$hub_site["nom"]="Les nouvelles du facteur.";
|
||||||
|
$hub_site["duree_max"]=180; //nbre de jours après lequel l'abonnement par défaut est supprimé si aucun clic n'a été enregistré sur cette période.
|
||||||
|
|
||||||
|
// Fuseau horaire par défaut
|
||||||
|
date_default_timezone_set("Europe/Paris");
|
||||||
|
|
||||||
|
// Email & SMTP
|
||||||
|
const EMAIL_ADMIN="toto@example.com";//pour recevoir des notifications en cas de catastrophes :-)
|
||||||
|
const EMAIL_CONTACT="toto@example.com";//formulaire de contact
|
||||||
|
const EMAIL_TRANSACTIONNEL_DE="toto@example.com";//email utilisé lors des messages durant l'inscription, etc
|
||||||
|
const EMAIL_MAILINGS="toto@example.com";//email utilisé pour envoyer les mailings
|
||||||
|
// mailjet
|
||||||
|
const SMTP_SERVEUR="";//laisser à vide si utilisation fonction mail
|
||||||
|
const SMTP_NAME="";//laisser à vide si serveur ne demandant pas de s'identifier
|
||||||
|
const SMTP_PASSE="";//idem
|
||||||
|
const SMTP_PORT=587;//si différent de 25 sinon laisser vide
|
||||||
|
const SMTP_SECURE="";//si connexion sécurisée ("ssl" / "tls"), sinon laisser vide */
|
||||||
|
const PHPMAIL_LANG="fr";//langue des messages d'erreur de PHPMailer, vide pour anglais
|
||||||
|
|
||||||
|
// Base de données (mysql/mariaDB)
|
||||||
|
const BD_SERVEUR="";
|
||||||
|
const BD_NOM="";
|
||||||
|
const BD_LOGIN="";
|
||||||
|
const BD_PASSE="";
|
||||||
|
const BD_PORT="";
|
||||||
|
|
||||||
|
// Origines possibles des utilisateurs
|
||||||
|
const UTILISATEUR_ORIGINES="example1|example2|example3";
|
||||||
|
// Nbre de liens max par abonnements envoyés suivant choix
|
||||||
|
$Abo_max_liens["min"]=5;
|
||||||
|
$Abo_max_liens["medium"]=20;
|
||||||
|
$Abo_max_liens["max"]=150;
|
||||||
|
|
||||||
|
// Durées maximales en jours autorisées pour certaines procédures
|
||||||
|
const COMPTE_VALIDATION_MAX_DUREE="5";
|
||||||
|
const NOUVEL_EMAIL_MAX_DUREE_VALIDATION="3";
|
||||||
|
const COMPTE_LIEN_CONNEXION_MAX_DUREE="60";//minutes
|
||||||
|
const COMPTE_LIEN_SUPPRESSION_MAX_DUREE="8";//heures
|
||||||
|
|
||||||
|
// divers
|
||||||
|
const AUTORISE_CRON="*************";
|
||||||
|
const CREA_CACHE=false;//les fichiers cache appelés mais non trouvés doivent-ils être créés ?
|
||||||
|
const LIEN_IMPORT_MAX_JOURS=10;//nombre de jours en dessous desquels un nouveau lien n'est pas importé d'un flux (sert aussi à supprimer anciens liens dans bd)
|
||||||
|
const POSTS_MAX_JOURS=30;//nombre de jours maximum ou les messages des hubs sont gardés dans la base de données
|
||||||
|
const ABO_MAX_ENVOIS_PASSIFS=30;//nombre maximum d'envoi d'un abonnement sans clic, pour désactiver un abonnement.
|
||||||
|
const NB_JOURS_LOGS_AFFICHAGES=5;//nombre de jours durant lesquels les stats d'affichage des utilisateurs connectés sur le site sont gardés. Les stats d'affichages des affichages /email sont traités tous les débuts de mois.
|
||||||
|
|
||||||
|
// blocage du site...
|
||||||
|
const MSG_MAINTENANCE="";
|
||||||
|
|
||||||
|
// Google Actualités
|
||||||
|
const SOURCE_GG_NEWS_ID=34;
|
||||||
|
|
||||||
|
// Protections formulaires
|
||||||
|
const FORM_MIN_DUREE=3;//nombre de secondes minimum avant validation du formulaire
|
||||||
|
const FORM_CONNEXION_MAX_TENTATIVES=10;//nombre de tentatives de connexion avant d'être bloqué
|
||||||
|
|
||||||
|
// Template
|
||||||
|
const TEMPLATE_REP="themes/zz";
|
||||||
|
const FORMULAIRE_FILTRES_SPAM="example1|example2|example3";//liste de mots proposés aléatoirement pour limiter le spam
|
||||||
|
|
||||||
|
$header_flux[0]["url"]=SITE_URL."/blog/feed/rss";
|
||||||
|
$header_flux[0]["titre"]="Le blog du facteur (derniers articles).";
|
||||||
|
$header_flux[0]["type"]="rss";
|
||||||
|
|
||||||
|
// Gestion des erreurs (mettre 0 quand le site est en production -1 pour tout voir en cours de test/ développement)
|
||||||
|
error_reporting(0);
|
212
config/fr-fr.php
Executable file
212
config/fr-fr.php
Executable file
@ -0,0 +1,212 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Toutes les textes pouvant s'afficher sur le site
|
||||||
|
* attention à ne pas modifier les __TEXTES_DEVANT_ÊTRE_REMPLACÉS__
|
||||||
|
* ou encore les urls des pages
|
||||||
|
*
|
||||||
|
* @author Fabrice PENHOËT
|
||||||
|
**/
|
||||||
|
|
||||||
|
// +++ Les messages envoyés à l'utilisateur.
|
||||||
|
// Validation création compte
|
||||||
|
define("COMPTE_VALIDATION_OBJET", "[".SITE_NOM."] Merci de valider votre inscription.");
|
||||||
|
define("COMPTE_VALIDATION_CORPS","Hello __NOM_UTILISATEUR__,\n\nMerci de valider votre inscription au site ".SITE_NOM.".\n\nPour ce faire, vous devez vous rendre sur la page suivante :\n".PAGE_VALIDATION_COMPTE."__ID__\n\nAttention vous n'avez que ".COMPTE_VALIDATION_MAX_DUREE." jours pour valider.\n\n".SITE_NOM);
|
||||||
|
define("COMPTE_VALIDATION_CORPS_HTML","<p>Hello __NOM_UTILISATEUR__,<br/><br/>Merci de valider votre inscription au site ".SITE_NOM." en utilisant le lien ci-dessous.<br/><br/>Ne tardez pas car vous n'avez <strong>que ".COMPTE_VALIDATION_MAX_DUREE." jours</strong> pour valider.</p>");
|
||||||
|
// Envoi mot de passe et autres infos suite validation du compte
|
||||||
|
define("ENVOI_MOT_PASSE_OBJET","[".SITE_NOM."] Bienvenue !");
|
||||||
|
define("ENVOI_MOT_PASSE_CORPS","Hello __NOM_UTILISATEUR__,\n\nVous venez de finaliser votre inscription au site ".SITE_NOM." et nous vous en remerçions :-)\n\nUn mot de passe vient de vous être attribué : __PASSE__\n\nIl vous sera nécessaire dès votre prochaine connexion.\n\nUne fois connecté vous pourrez le modifier en vous rendant sur la page suivante :\n".PAGE_MAJ_IDENTIFIANT."\n\nPour modifier/compléter vos autres informations :\n".PAGE_MAJ_INFOS_PERSO."\n\n".SITE_NOM."\n".SITE_URL);
|
||||||
|
define("ENVOI_MOT_PASSE_CORPS_HTML","<p>Hello __NOM_UTILISATEUR__,<br/><br/>Bienvenue ! vous venez de finaliser votre inscription à <strong>".SITE_NOM."</strong> :-)<br/><br/>Un mot de passe vient de vous être attribué : <strong>__PASSE__</strong><br/><br/>Notez-le bien car il vous sera nécessaire dès votre prochaine connexion.<br/><br/>Par ailleurs, voici quelques liens qui pourront vous être utiles sur ".SITE_NOM." :</p>");
|
||||||
|
// Envoi d'un nouveau mot de passe
|
||||||
|
define("ENVOI_NOUVEAU_MOT_PASSE_OBJET","[".SITE_NOM."] Votre nouveau mot de passe.");
|
||||||
|
define("ENVOI_NOUVEAU_MOT_PASSE_CORPS","Hello __NOM_UTILISATEUR__,\n\nSuite à votre demande, voici votre nouveau mot de passe pour le site ".SITE_NOM." : __PASSE__\n\nVous pouvez sans plus attendre vous en servir pour vous connecter au site :\n".PAGE_CONNEXION."\n\nUne fois connecté vous pourrez le modifier en vous rendant sur la page suivante :\n".PAGE_MAJ_IDENTIFIANT."\n\n".SITE_NOM."\n".SITE_URL);
|
||||||
|
define("ENVOI_NOUVEAU_MOT_PASSE_CORPS_HTML","<p>Hello __NOM_UTILISATEUR__,<br/><br/>Suite à votre demande, voici le nouveau mot de passe qui vient de vous être attribué : <strong>__PASSE__</strong><br/><br/>Vous pouvez sans plus attendre vous en servir pour vous connecter à ".SITE_NOM."<br/><br/><u>Une fois connecté</u>, vous pourrez modifier ce mot de passe selon votre préférence.</p>");
|
||||||
|
// Validation changement d'email
|
||||||
|
define("NOUVEL_EMAIL_VALIDATION_OBJET","[".SITE_NOM."] Valider votre nouvelle adresse.");
|
||||||
|
define("NOUVEL_EMAIL_VALIDATION_CORPS","Hello __NOM_UTILISATEUR__,\n\nVous venez de demander la modification de votre adresse email sur le site : ".SITE_NOM.".\n\nPour valider, merci de vous rendre sur la page suivante :\n".PAGE_VALIDATION_EMAIL."__ID__\n\nNe tardez pas car vous n'avez que ".NOUVEL_EMAIL_MAX_DUREE_VALIDATION." jours pour valider.\n\n".SITE_NOM);
|
||||||
|
define("NOUVEL_EMAIL_VALIDATION_CORPS_HTML","Hello __NOM_UTILISATEUR__,<br/><br/>Vous venez de demander la modification de votre adresse email sur <strong>".SITE_NOM."</strong>.<br/><br/>Pour valider, merci de cliquer sur le lien ci-dessous.<br/><br/>Ne tardez pas car vous n'avez que ".NOUVEL_EMAIL_MAX_DUREE_VALIDATION." jours pour le faire.");
|
||||||
|
// Connexion compte via un ticket
|
||||||
|
define("COMPTE_LIEN_CONNEXION_OBJET", "[".SITE_NOM."] Votre lien de connexion.");
|
||||||
|
define("COMPTE_LIEN_CONNEXION_CORPS","Hello __NOM_UTILISATEUR__,\n\nVous venez de demandez un lien de connexion au site ".SITE_NOM.".\n\nPour vous connectez, cliquez simplement sur le lien suivant :\n".PAGE_LIEN_CONNEXION_COMPTE."__ID__\n\n**Attention, pour des raisons de sécurité ce lien n'est valable que pendant ".COMPTE_LIEN_CONNEXION_MAX_DUREE." minutes après l'envoi de ce message**.\n\n".SITE_NOM);
|
||||||
|
define("COMPTE_LIEN_CONNEXION_CORPS_HTML","<p>Hello __NOM_UTILISATEUR__,<br/><br/>Suite à votre demande vous trouverez ci-dessous un lien vous permettant de vous connecter au site ".SITE_NOM.".<br/><br/><b>Ne tardez pas à l'utiliser</b>, car ce lien n'est valable que pendant ".COMPTE_LIEN_CONNEXION_MAX_DUREE." minutes après l'envoi de ce message.</p>");
|
||||||
|
// Procédure supppression compte
|
||||||
|
define("COMPTE_LIEN_SUPPRESSION_OBJET", "[".SITE_NOM."] Confirmer la suppression de votre compte.");
|
||||||
|
define("COMPTE_LIEN_SUPPRESSION_CORPS","Hello __NOM_UTILISATEUR__,\n\nVous venez de demander la suppression de votre compte sur ".SITE_NOM.".\n\nPour finaliser la procédure, merci de cliquer sur le lien suivant :\n".PAGE_LIEN_SUPPRESSION_COMPTE."__ID__\n\n**Attention, pour des raisons de sécurité ce lien n'est valable que pendant ".COMPTE_LIEN_SUPPRESSION_MAX_DUREE." heures après l'envoi de ce message**.\n\n".SITE_NOM);
|
||||||
|
define("COMPTE_LIEN_SUPPRESSION_CORPS_HTML","<p>Hello __NOM_UTILISATEUR__,<br/><br/>Suite à votre demande vous trouverez ci-dessous un lien vous permettant de confirmer la suppression de votre compte sur ".SITE_NOM.".<br/><br/><b>Ne tardez pas à l'utiliser</b>, car ce lien n'est valable que pendant ".COMPTE_LIEN_SUPPRESSION_MAX_DUREE." heures après l'envoi de ce message.</p>");
|
||||||
|
// Désactivation abonnement
|
||||||
|
define("DESACTIVATION_OBJET","[".SITE_NOM."] Désactivation d'un de vos abonnements.");
|
||||||
|
define("DESACTIVATION_CORPS","Hello __NOM_UTILISATEUR__,\n\nIl semble que votre abonnement \"__NOM_ABO__\" ne vous intéresse plus.\n\nAussi cet abonnement vient d'être désactivé, c'est-à-dire que vous ne recevrez plus d'email le concernant.\n\nÀ tout moment vous pouvez le réactiver en vous connectant à votre compte et en allant sur la page vous permettant de gérer vos abonnements :\n".PAGE_ABO_LISTE);
|
||||||
|
define("DESACTIVATION_CORPS_HTML","<p>Hello __NOM_UTILISATEUR__,<br/><br/>Il semble que votre abonnement <strong>__NOM_ABO__</strong> ne vous intéresse plus.<br/><br/>Aussi cet abonnement vient d'être désactivé, c'est-à-dire que vous ne recevrez plus d'email le concernant.<br/><br/>À tout moment vous pouvez le réactiver en vous connectant à votre compte et en allant sur la page vous permettant de gérer votre abonnement (lien ci-dessous).</p>");
|
||||||
|
// Nouvelle annonce à valider.
|
||||||
|
define("NOUVEAU_POST_OBJET","[".SITE_NOM."] Nouvelle annonce.");
|
||||||
|
define("NOUVEAU_POST_CORPS","Hello __NOM_UTILISATEUR__,\n\nUne nouvelle annonce vient d'être postée dans le bureau de poste : \"__NOM_HUB__\".\n\nVous devez maintenant la valider pour permettre sa diffusion :\n".PAGE_MAJ_POSTS."?id_post=__ID__");
|
||||||
|
define("NOUVEAU_POST_CORPS_HTML","<p>Hello __NOM_UTILISATEUR__,<br/><br/>Une nouvelle annonce vient d'être postée dans le bureau de poste : <strong>__NOM_HUB__</strong>.</p>");
|
||||||
|
// Validation publication de son annonce
|
||||||
|
define("NOUVEAU_POST_VALIDATION_OBJET","[".SITE_NOM."] Merci de valider votre annonce.");
|
||||||
|
define("NOUVEAU_POST_VALIDATION_CORPS","Hello __NOM_UTILISATEUR__,\n\nMerci de valider l'annonce que vous venez de publier sur le site ".SITE_NOM.".\n\nPour ce faire, vous devez vous rendre sur la page suivante :\n".PAGE_VALIDATION_POST."__ID__\n\nAttention vous n'avez que ".COMPTE_VALIDATION_MAX_DUREE." jours pour valider.\n\n".SITE_NOM);
|
||||||
|
define("NOUVEAU_POST_VALIDATION_CORPS_HTML","<p>Hello __NOM_UTILISATEUR__,<br/><br/>Merci de valider l'annonce que vous venez de publier sur le site ".SITE_NOM.".<br/><br/>Ne tardez pas car vous n'avez <strong>que ".COMPTE_VALIDATION_MAX_DUREE." jours</strong> pour la valider.</p>");
|
||||||
|
// Prévenir qu'une a été validée.
|
||||||
|
define("POST_VALIDE_OK_OBJET","[".SITE_NOM."] Votre annonce a été validée.");
|
||||||
|
define("POST_VALIDE_OK_CORPS_SANS_LIEN","Hello __NOM_UTILISATEUR__,\n\nCe message vous informe que votre annonce a été validée et va donc commencer à être diffusée aux abonnés du site ".SITE_NOM.".");
|
||||||
|
define("POST_VALIDE_OK_CORPS","Hello __NOM_UTILISATEUR__,\n\nCe message vous informe que votre annonce a été validée et sera don diffusée aux abonnés du site ".SITE_NOM.".\n\nVous pouvez la voir sur la page suivante :\n".PAGE_REPERTOIRE_POST_INFO."__ID__/");
|
||||||
|
define("POST_VALIDE_OK_CORPS_HTML","<p>Hello __NOM_UTILISATEUR__,<br/><br/>Ce message vous informe que votre annonce vient d'être validée et sera donc diffusée aux abonnés du site ".SITE_NOM.".</p>");
|
||||||
|
|
||||||
|
// +++ Les messages d'erreur
|
||||||
|
// Général
|
||||||
|
define("ERREUR_PARAM_MANQUANT","Paramètres manquants.");
|
||||||
|
define("ERREUR_PARAM_FORMAT","Paramètres n'ayant pas le bon format.");
|
||||||
|
define("ERREUR_PARAM_AUTORISES","Paramètres ayant un contenu non autorisé.");
|
||||||
|
define("ERREUR_IP","Une adresse IP non valide a été détectée.");
|
||||||
|
define("ERREUR_CHIFFREMENT","Erreur chiffrement d'un mot de passe.");
|
||||||
|
define("ERREUR_ACTION_NON_AUTORISEE","Une action a été lancée par un utilisateur non autorisé.");
|
||||||
|
|
||||||
|
// Fichiers, répertoires, images
|
||||||
|
define("ERREUR_FICHIER_EXISTE","Aucun fichier trouvé à l'adresse fournie.");
|
||||||
|
define("ERREUR_FICHIER_ECRITURE","Impossible d'écrire dans le fichier.");
|
||||||
|
define("ERREUR_FICHIER_CREA","Impossible de créer le fichier.");
|
||||||
|
define("ERREUR_FICHIER_SUPPR","Impossible de supprimer le fichier.");
|
||||||
|
define("ERREUR_FICHIER_POIDS","Le fichier téléchargé est trop lourd.");
|
||||||
|
define("ERREUR_REP_EXISTE","Aucun répertoire trouvé à l'adresse fournie.");
|
||||||
|
define("ERREUR_REP_CREA","Impossible de créer le répertoire.");
|
||||||
|
define("ERREUR_REP_DROIT","Vous n'avez pas les droits nécessaires sur ce répertoire.");
|
||||||
|
define("ERREUR_REP_VALIDE","Il ne s'agit pas d'un répertoire.");
|
||||||
|
define("ERREUR_IMAGE_VALIDE","Le fichier image ne semble pas valide.");
|
||||||
|
define("ERREUR_IMAGE_CREATION","Le fichier image n'a pu être créé.");
|
||||||
|
define("ERREUR_IMAGE_FORMAT","Le fichier image à un format non accepté.");
|
||||||
|
|
||||||
|
// Dates
|
||||||
|
define("ERREUR_DATE_FORMAT","La date n'a pas le format souhaité : ".DATE_FORMAT);
|
||||||
|
define("ERREUR_DATE_VALIDE","La date n'est pas valide.");
|
||||||
|
define("ERREUR_DATE_INTERVAL","L'intervalle entre les dates n'est pas correct.");
|
||||||
|
|
||||||
|
// Connexion base de données
|
||||||
|
define("ERREUR_CONNEXION_ABSENTE","Absence de connexion à la base de données.");
|
||||||
|
define("ERREUR_SQL_CHAMP_RECHERCHE","Le champs de la recherche n'est pas correct.");
|
||||||
|
define("ERREUR_SQL_ENREG_ABSENT","Enregistrement non trouvé.");
|
||||||
|
define("ERREUR_SQL_AJOUT","L'enregistrement a échoué.");
|
||||||
|
define("ERREUR_SQL_MAJ","La mise à jour a échoué.");
|
||||||
|
define("ERREUR_SQL_SUPPR","La suppression a échoué.");
|
||||||
|
define("ERREUR_SQL_DOUBLON","Un enregistrement similaire existe déjà.");
|
||||||
|
define("ERREUR_SQL_RECHERCHE","Aucun résultat pour votre recherche.");
|
||||||
|
|
||||||
|
// Cache
|
||||||
|
define("ERREUR_CACHE_REP","La constante fournissant le chemin du répertoire du cache n'a pas été définie.");
|
||||||
|
define("ERREUR_CACHE_ECRITURE","Erreur d'écriture du cache.");
|
||||||
|
define("ERREUR_CACHE_CONTENU_ABSENT","Aucun contenu trouvé à écrire dans le fichier.");
|
||||||
|
|
||||||
|
// email
|
||||||
|
define("ERREUR_EMAIL_ENVOI","Erreur envoi email.");
|
||||||
|
define("ERREUR_EMAIL_ADRESSE_FORMAT","Le format de l'adresse email fournie n'est pas correct.");
|
||||||
|
|
||||||
|
// Journal
|
||||||
|
define("ERREUR_JOURNAL_REP","La constante fournissant le chemin du répertoire du journal n'a pas été définie.");
|
||||||
|
define("ERREUR_JOURNAL_ECRITURE","Erreur d'écriture dans le journal.");
|
||||||
|
define("ERREUR_JOURNAL_LECTURE","Erreur de lecture du journal.");
|
||||||
|
define("ERREUR_JOURNAL_SUPPR","Erreur durant la suppression du journal.");
|
||||||
|
define("ERREUR_JOURNAL_LIGNE","Le numéro de ligne n'est pas valide.");
|
||||||
|
|
||||||
|
// Infos utilisateurs
|
||||||
|
//-- contrôle données saisies
|
||||||
|
define("ERREUR_UTILISA_CHAMPS_ABSENTS","Merci de compléter tous les champs obligatoires.");
|
||||||
|
define("ERREUR_IMPREVUE","Une erreur imprévue est survenue. Si ce problème persiste, n'hésitez pas à nous contacter en nous expliquant ce que vouliez faire.");
|
||||||
|
|
||||||
|
define("ERREUR_UTILISA_PSEUDO_LONG","Merci de fournir un pseudo comptant entre ".UTILISATEUR_MIN_PSEUDO." et ".UTILISATEUR_MAX_PSEUDO." caractères.");
|
||||||
|
define("ERREUR_UTILISA_PSEUDO_LIBRE","Le pseudo saisi est déjà utilisé par un autre utilisateur.");
|
||||||
|
define("ERREUR_UTILISA_PASSE_LONG","Le mot de passe doit compter entre ".UTILISATEUR_MIN_PASSE." et ".UTILISATEUR_MAX_PASSE." caractères.");
|
||||||
|
define("ERREUR_UTILISA_PASSE_CORRECT","Le mot de passe saisi ne semble pas correct.");
|
||||||
|
define("ERREUR_UTILISA_EMAIL_LONG","Merci de fournir un email comptant au maximum ".UTILISATEUR_MAX_EMAIL." caractères.");
|
||||||
|
define("ERREUR_UTILISA_EMAIL_LIBRE","L'adresse email saisie est déjà utilisée pour un autre compte utilisateur.<br/>La même adresse ne peut être utilisée par plusieurs comptes.");
|
||||||
|
define("ERREUR_UTILISA_CONNEXION","Les identifiants saisis ne sont pas corrects. Si vous avez oublié votre mot de passe, vous pouvez <a href='".PAGE_GET_PASSE."'>demander à en recevoir un nouveau par email</a>.");
|
||||||
|
define("ERREUR_UTILISA_EMAIL_CONNEXION","Aucun compte n'a été trouvé pour l'adresse email fournie. Si ce n'est déjà fait, vous pouvez <a href='".PAGE_INSCRIPTION."'>créer votre compte ici</a>.");
|
||||||
|
define("ERREUR_UTILISA_PRESENTATION_LONG","Votre texte de présentation dépasse les ".UTILISATEUR_MAX_PRESENTATION." caractères possibles.");
|
||||||
|
define("ERREUR_UTILISA_CP_LONG","Vous devez saisir au moins 3 caractères du nom de la ville ou encore son code postal.");
|
||||||
|
define("ERREUR_UTILISA_CP_VILLE_ABSENTE","Aucune ville n'a été trouvée pour votre saisie.");
|
||||||
|
define("ERREUR_UTILISA_CP_PLUSIEURS_VILLES","Merci de sélectionnez votre ville parmi les __NB__ trouvées pour votre saisie : ");
|
||||||
|
define("ERREUR_UTILISA_ANTISPAM","Vous n'avez pas saisi la bonne lettre dans le champ antispam. La lettre demandée est : ");
|
||||||
|
define("ERREUR_UTILISA_CGU","Merci de valider les CGU du site.");
|
||||||
|
define("ERREUR_UTILISA_ENVOI_MESSAGE","Une erreur est survenue durant l'envoi de votre message. Vous pouvez nous écrire directement sur l'adresse suivante :".EMAIL_CONTACT);
|
||||||
|
define("ERREUR_UTILISA_ENVOI_MESSAGE_PERSO","Une erreur imprévue est survenue durant l'envoi de votre message.");
|
||||||
|
|
||||||
|
define("MSG_UTILISA_CREATION_COMPTE_VALID","Votre demande d'inscription vient d'être enregistrée.<br>Vous devez cliquer sur le lien qui vient de vous être envoyé par email pour finaliser votre inscription.<br>En attendant vous pouvez déjà créer votre 1er abonnement en sélectionnant une thématique ci-dessous.");
|
||||||
|
define("MSG_UTILISA_GET_PASSE_OK","Votre mot de passe vient de vous être envoyé sur votre adresse email.<br>Si vous ne l'avez pas reçu, attendez quelques minutes et vérifier le dossier spam de votre messagerie internet.<br>Si le problème persiste, <a href=\"".PAGE_CONTACT."\">contactez-nous</a> pour obtenir de l'aide.");
|
||||||
|
define("MSG_UTILISA_GET_LIEN_CONNEXION_OK","Suite à votre demande, <b>un lien de connexion au site vient de vous être envoyé sur votre adresse email</b>.<br>Si vous ne l'avez pas reçu, attendez quelques minutes et vérifier le dossier spam de votre messagerie internet.<br>Si le problème persiste, <a href=\"".PAGE_CONTACT."\">contactez-nous</a> pour obtenir de l'aide.");
|
||||||
|
define("MSG_UTILISA_GET_LIEN_SUPPRESSION_OK","Suite à votre demande, <b>un lien vous permettant de finaliser la suppression de votre compte vient de vous être envoyé sur votre adresse email</b>.<br>Si vous ne l'avez pas reçu, attendez quelques minutes et vérifier le dossier spam de votre messagerie internet.<br>Si le problème persiste, <a href=\"".PAGE_CONTACT."\">contactez-nous</a> pour obtenir de l'aide.");
|
||||||
|
define("MSG_UTILISA_MAJ_IDENTIFIANTS_VALID","La mise à jour a bien été enregistrée.<br>Si vous avez modifié votre adresse email, vous devez cliquer sur le lien qui vous a été envoyé sur la nouvelle adresse pour qu'elle soit prise en compte.");
|
||||||
|
define("MSG_UTILISA_MAJ_INFOS_VALID","Votre mise à jour a bien été enregistrée.");
|
||||||
|
define("MSG_UTILISA_TELECHARGE_VALID","Votre fichier a bien été téléchargé.");
|
||||||
|
define("MSG_UTILISA_MAJ_SUPPR_VALID","Votre demande de suppression a bien été prise en compte.");
|
||||||
|
define("MSG_UTILISA_ENVOI_MESSAGE_VALID","Votre message a bien été envoyé.");
|
||||||
|
define("MSG_UTILISA_ENVOI_POST_VALID_CREA_COMPTE","Votre actualité a bien été enregistrée.<br><u>Vous devez maintenant cliquer sur le lien qui vient d'être envoyé sur votre adresse email</u> pour que votre demande soit traitée.");
|
||||||
|
define("MSG_UTILISA_ENVOI_POST_VALID","Votre actualité a bien été enregistrée. Merci de votre suggestion.<br>Si votre proposition est acceptée, un email vous informera du début de sa diffusion.<br>En attendant et si ce n'est déjà fait, vous pouvez <u><a href='".PAGE_MAJ_INFOS_PERSO."' title='votre présentation'>modifier les informations de votre profil (présentation, photo...)</a></u> qui sont visibles par les autres abonnés ".SITE_NOM." consultant votre annonce.");
|
||||||
|
define("MSG_ADMIN_VALID","Ok !");
|
||||||
|
define("ERREUR_UTILISA_STATUTS_EXISTE","La constante fournissant les statuts possibles pour un utilisateur n'a pas été définie.");
|
||||||
|
define("ERREUR_UTILISA_STATUT_VALIDE","Un statut non prévu a été détecté.");
|
||||||
|
define("ERREUR_UTILISA_PSEUDO_ABSENT","Le pseudo n'a pas été attribué au préalable.");
|
||||||
|
define("ERREUR_UTILISA_ILLUS_ABSENT","Le nom du fichier illustration n'a pas été attribué au préalable.");
|
||||||
|
define("ERREUR_UTILISA_ORIGINES_EXISTE","La constante fournissant les différentes origines possibles pour un utilisateur n'a pas été définie.");
|
||||||
|
define("ERREUR_UTILISA_ORIGINE_VALIDE","Une origine de compte non prévue a été détectée.");
|
||||||
|
|
||||||
|
//-- procédures
|
||||||
|
define("ERREUR_UTILISA_PASSE_ENVOI","Aucun compte utilisateur n'a été trouvé pour l'adresse saisie. Pour créer un compte, <a href='".PAGE_INSCRIPTION."'>cliquez-ici</a>.");
|
||||||
|
define("ERREUR_UTILISA_PASSE_CREA","Une erreur est survenue durant la génération du mot de passe de l'utilisateur.");
|
||||||
|
define("ERREUR_UTILISA_VALIDATION_MESSAGE","Une erreur est survenue durant l'envoi du message vous permettant de valider votre compte.");
|
||||||
|
define("ERREUR_UTILISA_VALIDATION_LIEN","Votre lien de validation ne semble plus valide.<br>Peut-être avez-vous déjà validé votre compte ou encore avez-vous dépassé la durée limite de validation ?<br>Dans le premier cas, un message vous a été envoyé sur votre adresse email avec votre mot de passe.<br>Dans ce deuxième cas, vous pouvez <a href='".PAGE_INSCRIPTION."' title='Formulaire inscription'>renouveler votre inscription</a>.");
|
||||||
|
define("ERREUR_UTILISA_VALIDATION_EXPIRE","Il semble que votre compte utilisateur n'existe plus.<br>Peut-être avez-vous dépassé la durée d'expiration ?<br>Si c'est le cas vous pouvez <a href='".PAGE_INSCRIPTION."' title='Formulaire inscription'>renouveler votre inscription</a>.");
|
||||||
|
define("ERREUR_UTILISA_VALIDATION_DOUBLE","Vous avez déjà validé votre compte. Vous pouvez maintenant <a href='".PAGE_CONNEXION."' title='Formulaire connexion'>vous connecter</a> avec le mot de passe qui vous a été envoyé.");
|
||||||
|
define("ERREUR_UTILISA_VALIDATION_EMAIL_LIEN","Le lien de validation ne semble pas correct.<br>Soit vous avez déjà validé votre nouvelle adresse, soit vous avez dépassé la durée d'expiration.<br>Dans ce 2ième cas vous pouvez <a href='".PAGE_MAJ_IDENTIFIANT."'>renouveler votre demande</a>.");
|
||||||
|
define("MSG_UTILISA_VALIDATION_EMAIL_LIEN","Votre nouvelle adresse email a bien été enregistrée.");
|
||||||
|
define("ERREUR_UTILISA_CREA_LIEN_CONNEXION","Une erreur imprévue est survenue durant l'envoi du lien vous permettant de vous connecter à votre compte.");
|
||||||
|
define("ERREUR_UTILISA_LIEN_CONNEXION","Votre lien de connexion ne semble plus valide. Vous pouvez en demander un nouveau <a href='".PAGE_CONNEXION."'>en cliquant ici</a>.");
|
||||||
|
define("ERREUR_UTILISA_CREA_LIEN_SUPPRESSION","Une erreur imprévue est survenue durant l'envoi du lien vous permettant de vous supprimer votre compte.");
|
||||||
|
define("ERREUR_UTILISA_LIEN_SUPPRESSION","Votre lien de suppression ne semble plus valide. Vous pouvez relancer la suppression de votre compte en <a href='".PAGE_MAJ_INFOS_PERSO."'>en cliquant ici</a>.");
|
||||||
|
define("ERREUR_UTILISA_VALIDATION_POST_LIEN","Le lien de validation ne semble pas correct.<br>Soit vous avez déjà validé votre annonce, soit vous avez dépassé la durée d'expiration.<br>Dans ce 2ième cas vous pouvez <a href='".PAGE_AJOUT_POST."'>renouveler votre demande</a>.");
|
||||||
|
//-- agenda
|
||||||
|
define("ERREUR_AGENDA_DESIGNATION_LONG","Merci de fournir un intitulé comptant entre ".AGENDA_MIN_DESIGNATION." et ".AGENDA_MAX_DESIGNATION." caractères.");
|
||||||
|
define("ERREUR_AGENDA_DATE_DEBUT_FORMAT","Veillez saisir une date de début au format : ".DATE_FORMAT);
|
||||||
|
define("ERREUR_AGENDA_DATE_FIN_FORMAT","Veillez saisir une date de fin au format : ".DATE_FORMAT);
|
||||||
|
define("ERREUR_AGENDA_DATE_FIN_DEBUT_ABSENT","Vous devez saisir la date de début avant la date de fin.");
|
||||||
|
define("ERREUR_AGENDA_DATE_FIN_PASSE","La date de fin ne doit pas être antérieure à celle d'aujourd'hui.");
|
||||||
|
define("ERREUR_AGENDA_DATE_FIN_AVANT_DEBUT","Vous ne pouvez enregistrer une date de fin précédent celle de début.");
|
||||||
|
//-- liens, posts, urls, flux...
|
||||||
|
define("ERREUR_POST_ANCRE_LONG","Merci de fournir un intitulé comptant entre __MIN__ et __MAX__ caractères.");
|
||||||
|
define("ERREUR_POST_DATE_DIFFUSION_FORMAT","Veillez saisir une date de début de diffusion au format : ".DATE_FORMAT);
|
||||||
|
define("ERREUR_POST_DATE_EXPIRATION_FORMAT","Veillez saisir une date d'expiration au format : ".DATE_FORMAT);
|
||||||
|
define("ERREUR_POST_DATE_DIFFUSION","La date de début de diffusion doit être postérieure à celle d'aujourd'hui.");
|
||||||
|
define("ERREUR_POST_DATE_EXPIRATION","La date d'expiration doit être postérieure d'au moins 7 jours à celle de début de diffusion.");
|
||||||
|
define("ERREUR_POST_ANCRE_ABSENT","Le titre de l'annonce doit être attribué au préalable.");
|
||||||
|
define("ERREUR_LIEN_URL_LONG","Merci de fournir une adresse internet (url) comptant entre __MIN__ et __MAX__ caractères.");
|
||||||
|
define("ERREUR_LIEN_URL_FORMAT","Le format de l'adresse internet (url) fournie ne semble pas correct.");
|
||||||
|
define("ERREUR_POST_ANNONCE_LONG","Merci de saisir une annonce comptant entre __MIN__ et __MAX__ caractères (actuellement __NB__ caractères).");
|
||||||
|
define("ERREUR_FLUX_MEMO_LONG","Merci de fournir un mémo ne comptant pas plus de __MAX__ caractères.");
|
||||||
|
define("ERREUR_LIEN_CONTENU_EXISTE","Aucun contenu trouvé à l'adresse fournie.");
|
||||||
|
define("ERREUR_FLUX_INFOS","Pas de flux à l'adresse fournie ou son format n'est pas correct.");
|
||||||
|
define("ERREUR_SOURCE_SUPPR_FLUX","Impossible de supprimer cette source, au moins un flux lui étant associé.");
|
||||||
|
define("ERREUR_RUBRIQUE_NOM_LONG","Merci de fournir un intitulé comptant entre __MIN__ et __MAX__ caractères.");
|
||||||
|
define("ERREUR_RUBRIQUE_DESCRIPTION_LONG","Merci de fournir une description comptant entre __MIN__ et __MAX__ caractères.");
|
||||||
|
define("ERREUR_RUBRIQUE_SUPPR_HUB","Impossible de supprimer cette rubrique qui sert à classer au moins un bureau de poste.");
|
||||||
|
define("ERREUR_RUBRIQUE_MERE","Impossible de classer une rubrique dans une de ses sous-rubriques (ou elle-même).");
|
||||||
|
define("ERREUR_RUBRIQUE_SUPPR_SUB","Impossible de supprimer cette rubrique qui sert à classer au moins une autre rubrique.");
|
||||||
|
define("ERREUR_FLUX_LECTURE","Erreur de lecture d'un flux.");
|
||||||
|
define("ERREUR_FLUX_VIDE","Flux vide.");
|
||||||
|
define("ERREUR_FLUX_DOUBLON","Le flux d'actualité existe déjà dans le répertoire.");
|
||||||
|
define("ERREUR_RECHERCHE_LONG","Votre recherche doit compter entre ".FLUX_RECHERCHE_MIN." et ".FLUX_RECHERCHE_MAX." caractères.");
|
||||||
|
define("ERREUR_RECHERCHE_MAX_RESULTATS","+ de ".FLUX_RECHERCHE_MAX_RESULTATS." résultats pour votre recherche. Merci de lancer une recherche plus précise.");
|
||||||
|
define("ERREUR_FLUX_SUPPR_ABO","Impossible de supprimer ce flux qui a au moins un abonné.");
|
||||||
|
define("ERREUR_ABO_DESIGNATION_LONG","Merci de fournir un intitulé comptant entre __MIN__ et __MAX__ caractères.");
|
||||||
|
define("ERREUR_ABO_NB_MAX_LIENS_ENTIER","Vous devez saisir un nombre entier pour le nombre maximum de liens par envoi.");
|
||||||
|
define("ERREUR_ABO_NB_MAX_LIENS_VALEUR","Merci de fournir un nombre maximum d'actualités par envoi compris entre __MIN__ et __MAX__.");
|
||||||
|
|
||||||
|
//-- hubs
|
||||||
|
define("ERREUR_HUB_NOM_LONG","Merci de fournir un nom pour le hub comptant entre __MIN__ et __MAX__ caractères.");
|
||||||
|
define("ERREUR_HUB_MEMO_LONG","Merci de fournir un mémo ne comptant pas plus de __MAX__ caractères.");
|
||||||
|
define("ERREUR_HUB_DOUBLON","Un hub différent portant le même nom existe déjà.");
|
||||||
|
define("ERREUR_HUB_SUPPR_ABO","Impossible de supprimer ce hub qui a au moins un abonné.");
|
||||||
|
define("MSG_HUB_AJOUT","Un nouveau hub vient d'être créé par un utilisateur : ");
|
||||||
|
|
||||||
|
//-- annonces promotionnelles
|
||||||
|
define("ERREUR_ANNONCE_TITRE_LONG","Merci de saisir un titre ne comptant pas plus de __MAX__ caractères.");
|
||||||
|
define("ERREUR_ANNONCE_TEXTE_LONG","Merci de saisir une annonce ne comptant pas plus de __MAX__ caractères.");
|
||||||
|
define("ERREUR_ANNONCE_LIEN_URL_LONG","Merci de saisir une url ne comptant pas plus de __MAX__ caractères.");
|
||||||
|
define("ERREUR_ANNONCE_LIEN_ANCRE_LONG","Merci de saisir une ancre pour le lien de l'annonce ne comptant pas plus de __MAX__ caractères.");
|
||||||
|
define("ERREUR_ANNONCE_COMMENTAIRE_LONG","Merci de saisir un commentaire ne comptant pas plus de __MAX__ caractères.");
|
||||||
|
|
||||||
|
$Jours_semaine=array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
|
55
config/url.page.php
Executable file
55
config/url.page.php
Executable file
@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
/* Les diverses pages de l'application
|
||||||
|
* toute modification doit être répercutée dans le index.php
|
||||||
|
* */
|
||||||
|
define("PAGE_INSCRIPTION",SITE_URL."/compte/inscription.html");
|
||||||
|
define("PAGE_VALIDATION_COMPTE",SITE_URL."/compte/v/");
|
||||||
|
define("PAGE_CONNEXION",SITE_URL."/compte/connexion.html");
|
||||||
|
define("PAGE_LIEN_CONNEXION_COMPTE",SITE_URL."/compte/l/");
|
||||||
|
define("PAGE_LIEN_SUPPRESSION_COMPTE",SITE_URL."/compte/s/");
|
||||||
|
define("PAGE_GET_PASSE",SITE_URL."/compte/nouveau_passe.html");
|
||||||
|
define("PAGE_DECONNEXION",SITE_URL."/compte/deconnexion.html");
|
||||||
|
define("PAGE_ACCUEIL",SITE_URL."/accueil.html");
|
||||||
|
define("PAGE_CONTACT",SITE_URL."/contact.html");
|
||||||
|
define("PAGE_PLAN",SITE_URL."/plan.html");
|
||||||
|
define("PAGE_404",SITE_URL."/404.html");
|
||||||
|
define("PAGE_MAJ_IDENTIFIANT",SITE_URL."/compte/identifiant_maj.html");
|
||||||
|
define("PAGE_VALIDATION_EMAIL",SITE_URL."/compte/ve/");
|
||||||
|
define("PAGE_MAJ_INFOS_PERSO",SITE_URL."/compte/infos_maj.html");
|
||||||
|
define("PAGE_MAJ_ILLUSTRATION",SITE_URL."/compte/illustration_maj.html");
|
||||||
|
define("PAGE_MAJ_ABONNEMENTS",SITE_URL."/compte/abonnements_maj.html");
|
||||||
|
define("PAGE_REPERTOIRE_ACCUEIL",SITE_URL."/rubriques/index.html");
|
||||||
|
define("PAGE_REPERTOIRE_RUBRIQUE_INFO",SITE_URL."/rubrique/");
|
||||||
|
define("PAGE_REPERTOIRE_FLUX_INFO",SITE_URL."/flux/");
|
||||||
|
define("PAGE_REPERTOIRE_HUB_INFO",SITE_URL."/BP/");
|
||||||
|
define("PAGE_AJOUT_POST",SITE_URL."/annonce/a/");
|
||||||
|
define("PAGE_AJOUT_POST_ILLUSTRATION",SITE_URL."/annonce/a/illustration/");
|
||||||
|
define("PAGE_AJOUT_POST_CONSIGNES",SITE_URL."/annonce/consignes/");
|
||||||
|
define("PAGE_VALIDATION_POST",SITE_URL."/annonce/v/");
|
||||||
|
define("PAGE_REPERTOIRE_POST_INFO",SITE_URL."/annonce/");
|
||||||
|
define("PAGE_UTILISATEUR_INFO",SITE_URL."/auteur/");
|
||||||
|
define("PAGE_UTILISATEUR_CONTACT",SITE_URL."/ecrire/");
|
||||||
|
define("PAGE_ABO_CREA_RUBRIQUE",SITE_URL."/rubriques/abo/");
|
||||||
|
define("PAGE_ABO_CREA_VILLE",SITE_URL."/rubriques/local/abo/");
|
||||||
|
define("PAGE_ABO_CREA_HUB",SITE_URL."/BP/abo/");
|
||||||
|
define("PAGE_ABO_NOUVEAU_FLUX",SITE_URL."/flux/abo/n/");
|
||||||
|
define("PAGE_ABO_MAJ",SITE_URL."/abo/maj/");
|
||||||
|
define("PAGE_ABO_AFFICHE",SITE_URL."/abo/voir/");
|
||||||
|
define("PAGE_ABO_LISTE",SITE_URL."/abo/");
|
||||||
|
define("PAGE_ABSENCE_MAJ",SITE_URL."/absences/maj/");
|
||||||
|
define("PAGE_ABSENCES_LISTE",SITE_URL."/absences/");
|
||||||
|
define("PAGE_MAJ_SOURCE",SITE_URL."/sources/maj.html");
|
||||||
|
define("PAGE_MAJ_RUBRIQUES",SITE_URL."/rubriques/maj.html");
|
||||||
|
define("PAGE_MAJ_FLUX",SITE_URL."/flux/maj.html");
|
||||||
|
define("PAGE_MAJ_HUB",SITE_URL."/hub/maj.html");
|
||||||
|
define("PAGE_MAJ_HUB_ILLUSTRATION_ADMIN",SITE_URL."/hub/admin_illustration_maj.html");
|
||||||
|
define("PAGE_MAJ_POSTS",SITE_URL."/posts/maj.html");
|
||||||
|
define("PAGE_MAJ_ILLUSTRATION_POST",SITE_URL."/posts/illustration_maj.html");
|
||||||
|
define("PAGE_MAJ_ANNONCES",SITE_URL."/annonces/maj.html");
|
||||||
|
define("PAGE_MAJ_COMPTES",SITE_URL."/comptes/maj.html");
|
||||||
|
define("PAGE_STATS",SITE_URL."/stats/");
|
||||||
|
define("PAGE_STATS_EMAIL",SITE_URL."/stats/email/");
|
||||||
|
define("PAGE_CLIC_LIEN",SITE_URL."/go/");
|
||||||
|
define("PAGE_AFFICHE_LOGO",SITE_URL."/img/");
|
||||||
|
define("PAGE_CGU",SITE_URL."/cgu.html");
|
||||||
|
define("PAGE_INFOS_LEGALES",SITE_URL."/infos-legales.html");
|
41
cron/cron-index-bis.php
Normal file
41
cron/cron-index-bis.php
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script activé toutes les minutes lançant différentes tâches planifiées.
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
if(!isset($DT_fuseau))
|
||||||
|
{
|
||||||
|
set_time_limit(6000);
|
||||||
|
require_once(__DIR__."/../config/config.php");
|
||||||
|
require_once(__DIR__."/../config/config.perso.php");
|
||||||
|
require_once(__DIR__."/../config/url.page.php");
|
||||||
|
require_once(__DIR__."/../config/".SITE_LANG.".php");
|
||||||
|
require_once(__DIR__."/../divers/utilitaires.php");
|
||||||
|
}
|
||||||
|
if(!empty(MSG_MAINTENANCE))
|
||||||
|
exit();
|
||||||
|
|
||||||
|
ini_set("display_errors",-1);
|
||||||
|
|
||||||
|
$heure=date("H");
|
||||||
|
$minute=date("i");
|
||||||
|
|
||||||
|
if(empty($Bd))
|
||||||
|
require(__DIR__."/../modele/connexion-bd.php");
|
||||||
|
if((isset_connexion(__FILE__,__LINE__)===false)) exit();
|
||||||
|
require_once(__DIR__."/../modele/FclFlux_utilisateur.php");
|
||||||
|
|
||||||
|
$import=FclFlux_utilisateur::sauve_journal_affichages();
|
||||||
|
//envoi des mailings
|
||||||
|
require_once(__DIR__."/../modele/FclFlux_abonnement.php");
|
||||||
|
$time_debut=microtime(true);
|
||||||
|
$envoi=FclFlux_abonnement::envoi_mailing(20);
|
||||||
|
$time_fin=microtime(true);
|
||||||
|
$duree=round($time_fin-$time_debut,2);
|
||||||
|
if(!empty($envoi))
|
||||||
|
echo "$envoi emails viennent d'être envoyés en $duree secondes.";
|
||||||
|
else
|
||||||
|
echo "Aucun envoi.";
|
||||||
|
|
||||||
|
$Bd=null;
|
||||||
|
exit();
|
133
cron/cron-index.php
Executable file
133
cron/cron-index.php
Executable file
@ -0,0 +1,133 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script activé toutes les minutes lançant différentes tâches planifiées.
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
if(!isset($DT_fuseau))
|
||||||
|
{
|
||||||
|
set_time_limit(6000);
|
||||||
|
require_once(__DIR__."/../config/config.php");
|
||||||
|
require_once(__DIR__."/../config/config.perso.php");
|
||||||
|
require_once(__DIR__."/../config/url.page.php");
|
||||||
|
require_once(__DIR__."/../config/".SITE_LANG.".php");
|
||||||
|
require_once(__DIR__."/../divers/utilitaires.php");
|
||||||
|
}
|
||||||
|
if(!empty(MSG_MAINTENANCE))
|
||||||
|
exit();
|
||||||
|
|
||||||
|
ini_set("display_errors",1);
|
||||||
|
|
||||||
|
$heure=date("H");
|
||||||
|
$minute=date("i");
|
||||||
|
// lancé toutes les 24H (ici à 3h24')
|
||||||
|
if(($heure==3)&&($minute==24))
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require(__DIR__."/../modele/connexion-bd.php");
|
||||||
|
if((isset_connexion(__FILE__,__LINE__)===false)) exit();
|
||||||
|
require_once(__DIR__."/../modele/FclFlux_post.php");
|
||||||
|
$nettoye2=FclFlux_post::supprime_anciens_posts();
|
||||||
|
require_once(__DIR__."/../modele/FclFlux_utilisateur.php");
|
||||||
|
$nettoye_u=FclFlux_utilisateur::supprime_anciens_utilisateurs();
|
||||||
|
$nettoye_stats=FclFlux_utilisateur::nettoye_logs_affichages();
|
||||||
|
require_once(__DIR__."/../modele/FclFlux_annonces.php");
|
||||||
|
$import_stats=FclFlux_annonce::sauve_stats_annonces();
|
||||||
|
require_once(__DIR__."/../modele/FclFlux_hub.php");
|
||||||
|
$nb_hubs_actualises=FclFlux_hub::actualise_liste_posts_date_diffusion();
|
||||||
|
$time_limite=time()-3600*24*30;
|
||||||
|
$date_limite=date("d/m/Y",$time_limite);
|
||||||
|
$nettoye_journal=journal_erreurs::vide_journal($date_limite);
|
||||||
|
}
|
||||||
|
// le journal de l'admin tous les matins avec les croissants :-)
|
||||||
|
if(($heure==6)&&($minute==49))
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require(__DIR__."/../modele/connexion-bd.php");
|
||||||
|
require_once(__DIR__."/../modele/FclFlux_utilisateur.php");//inclut également la classe journal_erreurs
|
||||||
|
journal_erreurs::get_stats_journal_admin();
|
||||||
|
}
|
||||||
|
// lancé toutes les heures
|
||||||
|
if($minute==31)
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require(__DIR__."/../modele/connexion-bd.php");
|
||||||
|
if((isset_connexion(__FILE__,__LINE__)===false)) exit();
|
||||||
|
require_once(__DIR__."/../modele/FclFlux_utilisateur.php");
|
||||||
|
$nettoye_fichiers=FclFlux_utilisateur::supprime_fichiers_temp();
|
||||||
|
$nettoye_sessions=FclFlux_utilisateur::sauve_sessions();
|
||||||
|
}
|
||||||
|
// lancé 4 fois / jour
|
||||||
|
if((strpos("[09][13][15][19]","[$heure]")!==false)&&($minute=="35"))
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require(__DIR__."/../modele/connexion-bd.php");
|
||||||
|
if((isset_connexion(__FILE__,__LINE__)===false)) exit();
|
||||||
|
require_once(__DIR__."/../modele/FclFlux_abonnement.php");
|
||||||
|
// Les décalages horaires.
|
||||||
|
$maj_decalages=FclFlux_abonnement::actualise_decalages_horaires();
|
||||||
|
// Les périodes d'absence.
|
||||||
|
$maj_absences=FclFlux_abonnement::actualise_absences();
|
||||||
|
// Les abonnements n'ayant plus de flux...
|
||||||
|
$suppr_abos=FclFlux_abonnement::nettoye_abonnements_sans_hub();
|
||||||
|
// Désactivation des abonnements fantômes + suppression des anciens envois
|
||||||
|
$desactive_abos=FclFlux_abonnement::desactivation();
|
||||||
|
if(!empty($desactive_abos))
|
||||||
|
$ajout_journal=new journal_erreurs(array(__FILE__,__LINE__,"$desactive_abos abonnements viennent d'être désactivés.","cron"));
|
||||||
|
}
|
||||||
|
// 6 fois / heure
|
||||||
|
if(strpos("[07][17][27][37][47][57]","[$minute]")!==false)
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require(__DIR__."/../modele/connexion-bd.php");
|
||||||
|
if((isset_connexion(__FILE__,__LINE__)===false)) exit();
|
||||||
|
require_once(__DIR__."/../modele/FclFlux_post.php");
|
||||||
|
$import=FclFlux_post::sauve_journal_clics();
|
||||||
|
require_once(__DIR__."/../modele/FclFlux_annonces.php");
|
||||||
|
$import_a=FclFlux_annonce::sauve_journal_clics();
|
||||||
|
//import flux maj quotidienne
|
||||||
|
require_once(__DIR__."/../modele/FclFlux_flux.php");
|
||||||
|
$time_debut=microtime(true);
|
||||||
|
$import=FclFlux_flux::importation(10,"J");
|
||||||
|
$time_fin=microtime(true);
|
||||||
|
$duree=round($time_fin-$time_debut,2);
|
||||||
|
//if(!empty($import))
|
||||||
|
// $ajout_journal=new journal_erreurs(array(__FILE__,__LINE__,"$import flux (J) viennent d'être actualisés en $duree secondes."));
|
||||||
|
}
|
||||||
|
// 6 fois / heure
|
||||||
|
if(strpos("[03][13][23][33][43][53]","[$minute]")!==false)
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require(__DIR__."/../modele/connexion-bd.php");
|
||||||
|
if((isset_connexion(__FILE__,__LINE__)===false)) exit();
|
||||||
|
//import flux maj toutes les heures
|
||||||
|
require_once(__DIR__."/../modele/FclFlux_flux.php");
|
||||||
|
$time_debut=microtime(true);
|
||||||
|
$import=FclFlux_flux::importation(10,"H");//mise à jour des derniers posts des hubs ?
|
||||||
|
$time_fin=microtime(true);
|
||||||
|
$duree=round($time_fin-$time_debut,2);
|
||||||
|
//if(!empty($import))
|
||||||
|
//$ajout_journal=new journal_erreurs(array(__FILE__,__LINE__,"$import flux (H) viennent d'être actualisés en $duree secondes."));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 12 fois / heure
|
||||||
|
if(strpos("[00][05][10][15][20][25][30][35][40][45][50][55]","[$minute]")!==false)
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require(__DIR__."/../modele/connexion-bd.php");
|
||||||
|
if((isset_connexion(__FILE__,__LINE__)===false)) exit();
|
||||||
|
require_once(__DIR__."/../modele/FclFlux_utilisateur.php");
|
||||||
|
$import=FclFlux_utilisateur::sauve_journal_affichages();
|
||||||
|
//envoi des mailings
|
||||||
|
require_once(__DIR__."/../modele/FclFlux_abonnement.php");
|
||||||
|
//$time_debut=microtime(true);
|
||||||
|
$envoi=FclFlux_abonnement::envoi_mailing(10);
|
||||||
|
//$time_fin=microtime(true);
|
||||||
|
///echo $time_fin;
|
||||||
|
//$duree=round($time_fin-$time_debut,2);
|
||||||
|
//if(!empty($envoi))
|
||||||
|
// $ajout_journal=new journal_erreurs(array(__FILE__,__LINE__,"$envoi emails viennent d'être envoyés en $duree secondes.","cron"));
|
||||||
|
//else
|
||||||
|
// echo "Aucun envoi.";
|
||||||
|
}
|
||||||
|
$Bd=null;
|
||||||
|
exit();
|
14
cron/cron-index2-bis.php
Normal file
14
cron/cron-index2-bis.php
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script lancé toutes les minutes lançant différentes tâches planifiées.
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
ini_set("display_errors",-1);
|
||||||
|
set_time_limit(6000);
|
||||||
|
|
||||||
|
require_once(__DIR__."/../config/config.php");
|
||||||
|
require_once(BASE_REP."../config/config.perso.php");
|
||||||
|
require_once(BASE_REP."../config/url.page.php");
|
||||||
|
require_once(BASE_REP."../config/".SITE_LANG.".php");
|
||||||
|
require_once(BASE_REP."../divers/utilitaires.php");
|
||||||
|
require_once("cron-index-bis.php");
|
22
cron/cron-index2.php
Executable file
22
cron/cron-index2.php
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script lancé toutes les minutes lançant différentes tâches planifiées.
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
ini_set("display_errors",1);
|
||||||
|
|
||||||
|
set_time_limit(6000);
|
||||||
|
require_once(__DIR__."/../config/config.php");
|
||||||
|
require_once(BASE_REP."../config/config.perso.php");
|
||||||
|
require_once(BASE_REP."../config/url.page.php");
|
||||||
|
require_once(BASE_REP."../config/".SITE_LANG.".php");
|
||||||
|
require_once(BASE_REP."../divers/utilitaires.php");
|
||||||
|
|
||||||
|
if($page[2]!=AUTORISE_CRON)
|
||||||
|
{
|
||||||
|
$ip=getIp();
|
||||||
|
if((envoi_message(EMAIL_ADMIN,EMAIL_ADMIN,"[".SITE_NOM."] Alerte","Appel non autorisé aux tâches planifiées : ".$ip." ".AUTORISE_CRON))===false)
|
||||||
|
$ajout_journal=new journal_erreurs(array(__FILE__,__LINE__,ERREUR_EMAIL_ENVOI));
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
require_once("cron-index.php");
|
41
ctrl/abo_mail_affichage.php
Executable file
41
ctrl/abo_mail_affichage.php
Executable file
@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script enregistrant dans un fichier les affichages d'un email via l'appel du logo
|
||||||
|
* qu'il faut donc afficher...
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
if(empty($page[1]))
|
||||||
|
exit();
|
||||||
|
$param=explode("_",$page[1]);
|
||||||
|
if((empty($param[0]))||(empty($param[1])))
|
||||||
|
exit();
|
||||||
|
$id_abonnement=intval($param[0]);
|
||||||
|
$time_affiche=intval(str_replace(".jpg","",$param[1]));
|
||||||
|
$now=time();
|
||||||
|
if(($time_affiche<($now-365*3600*24))||($time_affiche>$now))
|
||||||
|
exit();
|
||||||
|
//je cherche les infos de l'abonnement.
|
||||||
|
require_once("../modele/FclFlux_abonnement.php");
|
||||||
|
$abo=new FclFlux_abonnement();
|
||||||
|
$abo->id_abonnement=$id_abonnement;
|
||||||
|
$infos_abo=$abo->get_infos_cache(false);//je ne force pas la création du cache pour éviter sql
|
||||||
|
if(empty($infos_abo))
|
||||||
|
exit();
|
||||||
|
if(empty($infos_abo["auteur_id"]))
|
||||||
|
exit();
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
$user->id_utilisateur=intval($infos_abo["auteur_id"]);
|
||||||
|
$page="http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
|
||||||
|
$user->ajout_journal_affichage($page,"email");
|
||||||
|
unset($user);
|
||||||
|
unset($abo);
|
||||||
|
//après tous ces tests, le logo bien mérité !
|
||||||
|
header('Content-Type: image/jpg');
|
||||||
|
$Mail_html_url_logo=SITE_URL."/".TEMPLATE_REP."/mail/logo-header.jpg";
|
||||||
|
$mois=date('m');
|
||||||
|
$jour=intval(date('d'));
|
||||||
|
if(($mois=="12")&&($jour>10)||($mois=="01")&&($jour<7))
|
||||||
|
$code=file_get_contents(SITE_URL."/".TEMPLATE_REP."/mail/logo-header-noel.jpg");
|
||||||
|
else
|
||||||
|
$code=file_get_contents(SITE_URL."/".TEMPLATE_REP."/mail/logo-header.jpg");
|
||||||
|
echo $code;
|
14
ctrl/accueil.php
Executable file
14
ctrl/accueil.php
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
//home sweet home...
|
||||||
|
require("../modele/FclFlux_utilisateur.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if($user->test_session())
|
||||||
|
{//si connecté l'utilisateur est envoyé vers sa page d'accueil personnalisée
|
||||||
|
header("Location:".PAGE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
unset($user);
|
||||||
|
include("../vues/accueil.php");
|
||||||
|
}
|
96
ctrl/accueil_compte.php
Executable file
96
ctrl/accueil_compte.php
Executable file
@ -0,0 +1,96 @@
|
|||||||
|
<?php
|
||||||
|
/* Page d'accueil de l'utilisateur connecté
|
||||||
|
* Différente suivant si administrateur ou simple utilisateur...
|
||||||
|
* Dans ce deuxième cas, on liste quelques liens pour chacun des abonnements du gus
|
||||||
|
*/
|
||||||
|
require_once("../modele/FclFlux_utilisateur.php");
|
||||||
|
// utilisateur connecté ?
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(false))
|
||||||
|
{
|
||||||
|
unset($user);
|
||||||
|
$redirige=PAGE_ACCUEIL;
|
||||||
|
FclFlux_utilisateur::crea_cookie_redirection($redirige,1);
|
||||||
|
header("Location:".PAGE_CONNEXION);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
if($_SESSION["statut"]=="utilisateur")
|
||||||
|
{
|
||||||
|
// liste des abonnements + derniers liens importés
|
||||||
|
require_once("../modele/FclFlux_abonnement.php");
|
||||||
|
$abos=FclFlux_abonnement::get_liste_abo_cache($user,CREA_CACHE);
|
||||||
|
if(empty($abos))
|
||||||
|
{
|
||||||
|
$_SESSION["message"]="Vous n'avez aucun abonnement pour l'instant. Vous pouvez créer le 1er en quelques instants ci-dessous.";
|
||||||
|
header("location:".PAGE_REPERTOIRE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$mes_abos=array();$i=0;
|
||||||
|
$abo=new FclFlux_abonnement();
|
||||||
|
foreach($abos as $abo_infos)
|
||||||
|
{
|
||||||
|
$mes_abos[$i]["designation"]=$abo_infos["designation"];
|
||||||
|
$mes_abos[$i]["id_abonnement"]=$abo_infos["id_abonnement"];
|
||||||
|
$abo->id_abonnement=$abo_infos["id_abonnement"];
|
||||||
|
$liens_abo=$abo->get_liste_posts_cache(true);//liens des dernières 24H. La création du cache est forcée.
|
||||||
|
if(!empty($liens_abo))
|
||||||
|
$mes_abos[$i]["liens"]=$liens_abo;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
unset($abo);
|
||||||
|
}
|
||||||
|
include("../vues/accueil_compte_utilisateur.php");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{//page d'accueil de l'administrateur
|
||||||
|
// +++++++++++++++++++++++++++++++++++++++++ STATS DES DERNIÈRES 24 H +++++++++++++++++++++++++++++++++++++++ //
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$present=time();
|
||||||
|
$blabla="";
|
||||||
|
$debut=time()-24*3600;
|
||||||
|
$stats_jour=FclFlux_utilisateur::get_stats_utilisateurs($debut);
|
||||||
|
if(!empty($stats_jour))
|
||||||
|
{
|
||||||
|
$blabla_stats_jour="<p>Sur cette période, <b>".$stats_jour["nb_comptes"]." compte(s)</b> et <b>".$stats_jour["nb_abo"]." abonnements</b> ont été créé(s) pour <b>".$stats_jour["nb_comptes_suppr"]." comptes supprimé(s)</b>.<br>
|
||||||
|
<b>".$stats_jour["nb_mail_envoyes"]." mails envoyés à ".$stats_jour["nb_mail_uniques_envoyes"]." utilisateurs</b> différents, ce qui a généré <b>".$stats_jour["nb_clics_email"]." clics de ".$stats_jour["nb_clics_uniques_email"]." utilisateurs</b> différents.<br>
|
||||||
|
Sur le partie web, <b>".$stats_jour["nb_clics_site"]." clics de ".$stats_jour["nb_clics_uniques_site"]." utilisateurs</b> différents, soit en tout : <b>".$stats_jour["nb_clics"]." clics de ".$stats_jour["nb_clics_uniques"]." utilisateurs</b> différents.</p>";
|
||||||
|
}
|
||||||
|
//total
|
||||||
|
$stats_totales=FclFlux_utilisateur::get_stats_utilisateurs(0);
|
||||||
|
$blabla_stats_tot="<p>En tout, <b>".$stats_totales["nb_comptes"]." comptes</b> utilisateur enregistrés dont ".$stats_totales["nb_comptes_valide"]." validés dont <b>".$stats_totales["nb_abonnes_email"]." abonnés (".round($stats_totales["nb_abonnes_email"]/($stats_totales["nb_comptes"]*0.01))." %) toujours actifs</b>.<br>
|
||||||
|
<b>".$stats_totales["nb_abo"]." abonnements</b> dont <b>".$stats_totales["nb_abo_email"]." par email</b> pour <b>".$stats_totales["nb_abonnes"]." abonnés</b> différents.<br>
|
||||||
|
Il y a actuellement <b>".$stats_totales["nb_fantomes"]." utilisateurs sans abonnement</b> parmi ceux validés, soit <b>".round($stats_totales["nb_fantomes"]/($stats_totales["nb_comptes"]*0.01))." %</b>.<br>
|
||||||
|
Et <b>".$stats_totales["nb_abonnes_desactives"]." abonnés qui ont été désactivés</b> soit <b>".round($stats_totales["nb_abonnes_desactives"]/($stats_totales["nb_comptes"]*0.01))." %</b> de tous les utilisateurs.</p>";
|
||||||
|
|
||||||
|
// +++++++++++++++++++++++++++++++++++++++++ LES BUGS DE LA DERNIÈRE HEURE! +++++++++++++++++++++++++++++++++++++++ //
|
||||||
|
$bug=new journal_erreurs;
|
||||||
|
$t_limite=time()-3600*24;
|
||||||
|
$date_debut=date("d/m/Y",$t_limite);
|
||||||
|
$date_fin=date("d/m/Y");
|
||||||
|
$erreurs_admin=$bug->get_journal_sansdoublon($date_debut,$date_fin);
|
||||||
|
$journal_erreurs="";
|
||||||
|
if(is_array($erreurs_admin))
|
||||||
|
{
|
||||||
|
$journal_erreurs="<ul>";
|
||||||
|
foreach($erreurs_admin as $infos)
|
||||||
|
{
|
||||||
|
if($infos["times_dernier"]>$t_limite)
|
||||||
|
{
|
||||||
|
$journal_erreurs.="<li><strong>".$infos["msg"]."</strong><br> >> ".$infos["script"].", ligne(s) : ".implode("|",$infos["lignes"])."<br>";
|
||||||
|
$journal_erreurs.=" >> Page(s) d'appel : ".implode("|",$infos["pages"])."<br><i> >> <b><u>".$infos["cpt"]." fois</u></b>";
|
||||||
|
if($infos["times_premier"]!=$infos["times_dernier"])
|
||||||
|
$journal_erreurs.=", du ".date("d/m/Y H:i:s",$infos["times_premier"])." au ".date("d/m/Y H:i:s",$infos["times_dernier"])."</i>.</li>";
|
||||||
|
else
|
||||||
|
$journal_erreurs.=" le ".date("d/m/Y H:i:s",$infos["times_premier"])."</i>.</li>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$journal_erreurs.="</ul>";
|
||||||
|
}
|
||||||
|
//les bugs dans les bugs !
|
||||||
|
if(!empty($bug->erreurs))
|
||||||
|
$journal_erreurs.=affiche_tableau($bug->erreurs);
|
||||||
|
include("../vues/accueil_compte_admin.php");
|
||||||
|
}
|
172
ctrl/admin_annonces_affiche.php
Executable file
172
ctrl/admin_annonces_affiche.php
Executable file
@ -0,0 +1,172 @@
|
|||||||
|
<?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);
|
79
ctrl/admin_annonces_classement_tests.php
Executable file
79
ctrl/admin_annonces_classement_tests.php
Executable file
@ -0,0 +1,79 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors des demandes de ciblage d'une rubrique de hub pour une annonce promotionnelle.
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
if(!empty($_POST["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(!empty($_POST["id_annonce"]))
|
||||||
|
$id_annonce=intval(trim($_POST["id_annonce"]));
|
||||||
|
if(!empty($_POST["liste_rubriques"]))
|
||||||
|
$nouvelle_rubrique=intval(trim($_POST["liste_rubriques"]));
|
||||||
|
$suppr_rubriques=array();
|
||||||
|
if(!empty($_POST["suppr_rubrique"]))
|
||||||
|
{
|
||||||
|
foreach($_POST['suppr_rubrique'] as $id)
|
||||||
|
$suppr_rubriques[]=intval($id);
|
||||||
|
}
|
||||||
|
$msg_form_classement=array();
|
||||||
|
if(((empty($nouvelle_rubrique))&&(empty($suppr_rubriques)))||(empty($id_annonce)))
|
||||||
|
$msg_form_classement[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form_classement[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$annonce=new FclFlux_annonce();
|
||||||
|
$annonce->id_annonce=$id_annonce;
|
||||||
|
if(!empty($nouvelle_rubrique))
|
||||||
|
{
|
||||||
|
$rubrique=new FclFlux_rubrique();
|
||||||
|
$rubrique->id_rubrique=$nouvelle_rubrique;
|
||||||
|
$action=$annonce->ajout_rubrique_cible($rubrique);
|
||||||
|
unset($rubrique);
|
||||||
|
if(!empty($annonce->erreurs))
|
||||||
|
$msg_form_classement=$annonce->erreurs;
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form_classement[]=ERREUR_IMPREVUE;
|
||||||
|
}
|
||||||
|
if(!empty($suppr_rubriques))
|
||||||
|
{
|
||||||
|
foreach($suppr_rubriques as $rub_id)
|
||||||
|
{
|
||||||
|
$rubrique=new FclFlux_rubrique();
|
||||||
|
$rubrique->id_rubrique=$rub_id;
|
||||||
|
$action=$annonce->suppr_rubrique_cible($rubrique);
|
||||||
|
unset($rubrique);
|
||||||
|
if($action===false)
|
||||||
|
{
|
||||||
|
$msg_form_classement[]=ERREUR_IMPREVUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(empty($msg_form_classement))
|
||||||
|
$msg_form_classement[]=MSG_ADMIN_VALID;
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form_classement))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if(($msg_form_classement[0]==MSG_ADMIN_VALID)&&(!empty($annonce->id_annonce)))
|
||||||
|
echo $annonce->id_annonce;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach($msg_form_classement as $message)
|
||||||
|
echo "<h4>$message</h4>";
|
||||||
|
}
|
||||||
|
}
|
77
ctrl/admin_annonces_infos_tests.php
Executable file
77
ctrl/admin_annonces_infos_tests.php
Executable file
@ -0,0 +1,77 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors de l'enregistrement des données saisies pour une annonce promotionnelle
|
||||||
|
* lors de sa création ou de sa mise à jour
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["emplacement"]=trim($_POST["emplacement"]);
|
||||||
|
$form["titre"]=trim($_POST["titre"]);
|
||||||
|
$form["annonce"]=trim($_POST["annonce"]);
|
||||||
|
$form["url"]=trim($_POST["url"]);
|
||||||
|
$form["designation"]=trim($_POST["designation"]);
|
||||||
|
$form["commentaires"]=trim($_POST["commentaires"]);
|
||||||
|
$form["time_debut"]=trim($_POST["time_debut"]);
|
||||||
|
$form["time_fin"]=trim($_POST["time_fin"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if((empty($form["emplacement"]))||(empty($form["titre"]))||(empty($form["annonce"]))||(empty($form["url"]))||(empty($form["designation"]))||(empty($form["time_debut"]))||(empty($form["time_fin"])))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$auteur=new FclFlux_utilisateur();
|
||||||
|
$auteur->id_utilisateur=$_SESSION["id_utilisateur"];
|
||||||
|
$form["auteur"]=$auteur;
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$form["limites"]["annonce_max_titre"]=ANNONCE_MAX_TITRE;
|
||||||
|
$form["limites"]["annonce_max_texte"]=ANNONCE_MAX_TEXTE;
|
||||||
|
$form["limites"]["url_long_max"]=ANNONCE_MAX_URL;
|
||||||
|
$form["limites"]["designation_long_max"]=ANNONCE_MAX_ANCRE;
|
||||||
|
$form["limites"]["annonce_max_commentaires"]=ANNONCE_MAX_COMMENTAIRES;
|
||||||
|
$annonce=new FclFlux_annonce($form);
|
||||||
|
if(!empty($annonce->erreurs))
|
||||||
|
$msg_form=array_merge($annonce->erreurs,$msg_form);
|
||||||
|
if(empty($msg_form))
|
||||||
|
{
|
||||||
|
if(!empty($_POST["id_annonce"]))
|
||||||
|
{
|
||||||
|
$form["id_annonce"]=$_POST["id_annonce"];//utile pour réaffichage si pas en ajax
|
||||||
|
$annonce->id_annonce=intval(trim($_POST["id_annonce"]));
|
||||||
|
$action=$annonce->actualise();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$action=$annonce->ajout();
|
||||||
|
if(!empty($annonce->erreurs))
|
||||||
|
$msg_form=array_merge($annonce->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
}
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if(($msg_form[0]==MSG_ADMIN_VALID)&&(!empty($annonce->id_annonce)))
|
||||||
|
echo $annonce->id_annonce;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach($msg_form as $message)
|
||||||
|
echo "<h4>$message</h4>";
|
||||||
|
}
|
||||||
|
}
|
59
ctrl/admin_annonces_maj.php
Executable file
59
ctrl/admin_annonces_maj.php
Executable file
@ -0,0 +1,59 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script permettant à un administrateur
|
||||||
|
* de saisir ou modifier les annonces promotionnelles à inclure dans les mailings
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_annonces.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(true,true))
|
||||||
|
{
|
||||||
|
header("Location:".SITE_URL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(isset($_POST["titre"]))
|
||||||
|
{
|
||||||
|
if(empty($_POST["suppr_ok"]))
|
||||||
|
include("../ctrl/admin_annonces_infos_tests.php");
|
||||||
|
else
|
||||||
|
include("../ctrl/admin_annonces_suppr_tests.php");
|
||||||
|
}
|
||||||
|
elseif(isset($_POST["recherche"]))
|
||||||
|
include("../ctrl/admin_annonces_recherche.php");
|
||||||
|
elseif(!empty($_GET["id_annonce"]))
|
||||||
|
{
|
||||||
|
include("../ctrl/admin_annonces_affiche.php");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{// saisie d'une nouvelle annonce
|
||||||
|
$form["emplacement"]="header";
|
||||||
|
$form["titre"]="";
|
||||||
|
$form["annonce"]="";
|
||||||
|
$form["url"]="http://";
|
||||||
|
$form["designation"]="";
|
||||||
|
$form["commentaires"]="";
|
||||||
|
$form["time_debut"]="";
|
||||||
|
$form["time_fin"]="";
|
||||||
|
//les éventuelles annonces en cours de diffusion
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$encours=FclFlux_annonce::get_liste_annonces_encours(false);
|
||||||
|
if(!empty($encours))
|
||||||
|
{
|
||||||
|
$i=0;
|
||||||
|
foreach($encours as $annonce_infos)
|
||||||
|
{
|
||||||
|
$annonce_stats=new FclFlux_annonce();
|
||||||
|
$annonce_stats->id_annonce=$annonce_infos["id_annonce"];
|
||||||
|
$stats=$annonce_stats->get_stats();
|
||||||
|
if(!empty($stats))
|
||||||
|
$encours[$i]["stats"]=$stats;
|
||||||
|
unset($annonce_stats);unset($stats);
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
include("../vues/admin_annonces_maj.php");
|
||||||
|
}
|
46
ctrl/admin_annonces_recherche.php
Executable file
46
ctrl/admin_annonces_recherche.php
Executable file
@ -0,0 +1,46 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script cherchant les annonces promotionnelles pour une recherche lancée par un administrateur
|
||||||
|
* Les éventuels résultats sont listés pour sélection
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["recherche"]=trim($_POST["recherche"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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(empty($form["recherche"]))
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_UTILISA_CHAMPS_ABSENTS);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_IMPREVUE);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$annonces=FclFlux_annonce::recherche_globale($form["recherche"],"id_annonce,titre");
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($annonces))
|
||||||
|
{
|
||||||
|
$select="<div class='form-group'>
|
||||||
|
<label for='liste_annonces'>".count($annonces)." résultat(s) correspondant</label>
|
||||||
|
<select name='liste_annonces' id='liste_annonces' autofocus class='form-control'>
|
||||||
|
<option value='0'></option>";
|
||||||
|
foreach ($annonces as $annonce_info)
|
||||||
|
$select.="<option value='".$annonce_info["id_annonce"]."'>".htmlentities(affiche_utf8($annonce_info["titre"],UTF8_OK))."</option>\n";
|
||||||
|
$select.="</select></div>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_SQL_RECHERCHE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($select))&&($ajax_on))
|
||||||
|
echo $select;
|
49
ctrl/admin_annonces_suppr_tests.php
Executable file
49
ctrl/admin_annonces_suppr_tests.php
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors d'une demande de suppression d'une annonce promotionnelle
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if((empty($_POST["id_annonce"]))||(empty($_POST["suppr_ok"])))
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$annonce=new FclFlux_annonce();
|
||||||
|
$form["id_annonce"]=$_POST["id_annonce"];//utile pour réaffichage si pas en ajax
|
||||||
|
$annonce->id_annonce=intval(trim($_POST["id_annonce"]));
|
||||||
|
$action=$annonce->supprime();
|
||||||
|
if(!empty($annonce->erreurs))
|
||||||
|
$msg_form=array_merge($annonce->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if($msg_form[0]==MSG_ADMIN_VALID)
|
||||||
|
echo str_replace("'","\"",get_html_alerte_msg($msg_form,"alert-success"));//pour comparaison en JS
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
||||||
|
}
|
192
ctrl/admin_comptes_affiche.php
Executable file
192
ctrl/admin_comptes_affiche.php
Executable file
@ -0,0 +1,192 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script affichant un formulaire permettant de modifier / supprimer les données d'un utilisateur
|
||||||
|
* 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_source.php");
|
||||||
|
}
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$id_utilisateur=intval(trim($_GET["id_utilisateur"]));
|
||||||
|
require_once("../modele/connexion-bd.php");
|
||||||
|
$compte=FclFlux_utilisateur::recherche($id_utilisateur,"id_utilisateur","pseudo,email,statut,presentation,illustration,ip_crea,time_crea,time_validation,origine,fuseau_horaire,nb_clics");
|
||||||
|
if(!empty($compte))
|
||||||
|
{
|
||||||
|
//un peu de blabla suivant ce que j'ai sous la dent.
|
||||||
|
$infos_utilisateur="Ce compte utilisateur ($id_utilisateur) a été créé le ".date("d/m/Y",$compte["time_crea"])." et validé le ".date("d/m/Y",$compte["time_validation"]).".";
|
||||||
|
if(!empty($compte["nb_clics"]))
|
||||||
|
$infos_utilisateur.=" Ses annonces ont reçu ".$compte["nb_clics"]." clics.";
|
||||||
|
if(!empty($compte["origine"]))
|
||||||
|
$infos_utilisateur.=" Origine du compte : ".$compte["origine"].".";
|
||||||
|
$form_html["nom"]="Informations de l'utilisateur.";
|
||||||
|
$form_html["champs"]="<form method='post' id='maj_comptes' name='maj_comptes' action='".PAGE_MAJ_COMPTES."?id_utilisateur=$id_utilisateur' role='form'>
|
||||||
|
<p class='help-block'><b>$infos_utilisateur</b></p>
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='pseudo'>Pseudo.</label>
|
||||||
|
<input class='form-control' type='text' maxlength='".UTILISATEUR_MAX_PSEUDO."' name='pseudo' id='pseudo' value=\"".htmlspecialchars($compte["pseudo"])."\" required>
|
||||||
|
<p class='help-block'><b>Obligatoire</b>.</p>
|
||||||
|
</div>
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='email'>Email.</label>
|
||||||
|
<input class='form-control' type='email' maxlength='".UTILISATEUR_MAX_EMAIL."' name='email' id='email' value=\"".$compte["email"]."\" required>
|
||||||
|
<p class='help-block'><b>Obligatoire</b>. <a href=\"mailto:".$compte["email"]."\" title='Contact' class='btn btn-info btn-sm'>Contactez cet utilisateur.</a></p>
|
||||||
|
</div>
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='nouveau_passe'>Nouveau mot de passe.</label>
|
||||||
|
<input class='form-control' type='password' maxlength='".UTILISATEUR_MAX_PASSE."' name='passe' id='passe'>
|
||||||
|
<p class='help-block'>Facultatif</b>. Si vous souhaitez changer de mot de passe, le nouveau doit compter entre <b>".UTILISATEUR_MIN_PASSE." et ".UTILISATEUR_MAX_PASSE." caractères</b>. <b>Laisser ce champ vide dans le cas contraire</b>.</p>
|
||||||
|
</div>
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='presentation'>Texte de présentation.</label>
|
||||||
|
<textarea class='form-control' rows='4' name='presentation' id='presentation' maxlength='".UTILISATEUR_MAX_PRESENTATION."'>".htmlspecialchars($compte["presentation"])."</textarea>
|
||||||
|
<p class='help-block'><b>Facultatif</b>. ".UTILISATEUR_MAX_PRESENTATION." caractères maximum.</p>
|
||||||
|
</div>";
|
||||||
|
$fuseau_defaut=date_default_timezone_get();
|
||||||
|
$tz=new DateTimeZone($fuseau_defaut);
|
||||||
|
$zones=$tz->listIdentifiers();
|
||||||
|
$form_html["champs"].="<div id='fuseau_horaire'>
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='fuseau_horaire'>Fuseau horaire.</label>
|
||||||
|
<select name='fuseau_horaire' class='form-control'>";
|
||||||
|
foreach ($zones as $fuseau)
|
||||||
|
{
|
||||||
|
if($fuseau==$compte["fuseau_horaire"])
|
||||||
|
$form_html["champs"].="<option value='".$fuseau."' selected=selected>".htmlentities(affiche_utf8($fuseau,UTF8_OK))."</option>";
|
||||||
|
else
|
||||||
|
$form_html["champs"].="<option value='".$fuseau."'>".htmlentities(affiche_utf8($fuseau,UTF8_OK))."</option>";
|
||||||
|
}
|
||||||
|
$form_html["champs"].="</select><p class='help-block'>Fuseau horaise utilisé par déterminer l'heure d'envoi des alertes email.</p>
|
||||||
|
</div></div>";
|
||||||
|
//image ?
|
||||||
|
if(!empty($compte["illustration"]))
|
||||||
|
{
|
||||||
|
$fichier=$compte["illustration"];
|
||||||
|
$adresse_illustration=UTILISATEUR_ILLUS_REP."/".$fichier[0]."/".$fichier;
|
||||||
|
$form_html["champs"].="<p><strong>Photo actuelle.</strong><br><img src='".SITE_URL."/".$adresse_illustration."' alt='Illustration actuelle' class='img-responsive'></p>
|
||||||
|
<div class='form-group'>
|
||||||
|
<label class='checkbox-inline' for='suppr_illustration'></label><input name='suppr_illustration' type='checkbox' id='suppr_illustration' value='1'> Supprimer l'image.</label>
|
||||||
|
</div>";
|
||||||
|
}
|
||||||
|
if($compte["statut"]!="administrateur")
|
||||||
|
{
|
||||||
|
$statuts=explode("|",UTILISATEUR_STATUTS);
|
||||||
|
$form_html["champs"].="<div class='form-group'><label for='statut'>Statut.</label>
|
||||||
|
<select name='statut' id='statut' autofocus class='form-control'>";
|
||||||
|
foreach ($statuts as $statut)
|
||||||
|
{
|
||||||
|
if($statut==$compte["statut"])
|
||||||
|
$form_html["champs"].="<option value='".$compte["statut"]."' selected='selected'>".$compte["statut"]."</option>\n";
|
||||||
|
else
|
||||||
|
$form_html["champs"].="<option value='".$compte["statut"]."'>".$compte["statut"]."</option>\n";
|
||||||
|
}
|
||||||
|
$form_html["champs"].="</select></div>
|
||||||
|
<div class='form-group'><label class='checkbox-inline text-danger' for='suppr_ok'><input type='checkbox' id='suppr_ok' name='suppr_ok' value='1'> Je souhaite supprimer ce compte utilisateur.</label></div>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$form_html["champs"].="<input type='hidden' name='statut' id='statut' value='administrateur'>";
|
||||||
|
|
||||||
|
$form_html["champs"].="<input type='hidden' name='id_utilisateur' id='id_utilisateur' value='$id_utilisateur'>
|
||||||
|
<div id='msg_utilisateurs'></div>
|
||||||
|
<button type='submit' class='btn btn-success btn-lg'>Enregistrer.</button>
|
||||||
|
<p><br><a href='".PAGE_MAJ_COMPTES."' title='Saisir un nouvel utilisateur' class='btn btn-info btn-sm'>+ Nouvel utilisateur.</a></p>
|
||||||
|
</fieldset></form>";
|
||||||
|
//quelques infos sur mon gus
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
$user->id_utilisateur=$id_utilisateur;
|
||||||
|
$infos=$user->get_infos_admin();
|
||||||
|
//ses abonnements
|
||||||
|
if(!empty($infos["abos"]))
|
||||||
|
{
|
||||||
|
$nb_abo=count($infos["abos"]);
|
||||||
|
$form_html["champs"].="<p>Cet utilisateur a $nb_abo abonnement(s).<ul>";
|
||||||
|
foreach ($infos["abos"] as $abo)
|
||||||
|
{
|
||||||
|
//dernier envoi réussi ?
|
||||||
|
if(!empty($abo["time_dernier_envoi"]))
|
||||||
|
$time_envoi=date("d/m/Y à H:i:s",$abo["time_dernier_envoi"]);
|
||||||
|
else
|
||||||
|
$time_envoi="jamais";
|
||||||
|
if(!empty($abo["ville_insee"]))
|
||||||
|
{
|
||||||
|
$ville_infos=get_villes($abo["ville_insee"],"insee");
|
||||||
|
$infos_ville=" Abonnement local pour la ville de : ".$ville_infos[0]["nom"]." (".$ville_infos[0]["cp"].").";
|
||||||
|
unset($ville_infos);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$infos_ville="";
|
||||||
|
$form_html["champs"].="<li><b>".$abo["designation"]." (n°".$abo["id_abonnement"].")</b> - jours d'envoi : ".$abo["jours_alerte"].", heure d'envoi : ".$abo["heure_alerte"].", dernier envoi : $time_envoi, dernier traitement : ".date("d/m/Y à H:i:s",$abo["time_envoi"]).".".$infos_ville;
|
||||||
|
//liste des hubs concernés par cet abonnement
|
||||||
|
if(!empty($abo["hubs"]))
|
||||||
|
{
|
||||||
|
$nb_hub=count($abo["hubs"]);
|
||||||
|
$form_html["champs"].="<br>Cet abonnement concerne le(s) bureaux de poste :";
|
||||||
|
foreach ($abo["hubs"] as $hub_infos)
|
||||||
|
$form_html["champs"].=" <b>".$hub_infos["nom"]."</b> (<a href='".PAGE_MAJ_HUB."?id_hub=".$hub_infos["id_hub"]."' target='_blank'>Infos</a>) |";
|
||||||
|
}
|
||||||
|
$form_html["champs"].="</li>";
|
||||||
|
}
|
||||||
|
$form_html["champs"].="</ul></p>";
|
||||||
|
}
|
||||||
|
//les dernières sessions enregistrées
|
||||||
|
if(!empty($infos["sessions"]))
|
||||||
|
{
|
||||||
|
$nb_sessions=count($infos["sessions"]);
|
||||||
|
$form_html["champs"].="<p>$nb_sessions connexions comptabilisées les 7 derniers jours, dont voici les dernières :<ul>";
|
||||||
|
foreach ($infos["sessions"] as $session)
|
||||||
|
$form_html["champs"].="<li><b>Le ".date("d/m/Y à H:i:s",$session["time_session"])."</b> (ip : ".$session["ip_session"].", configuration : ".$session["config"].", provenance : ".$session["referer"].")</li>";
|
||||||
|
$form_html["champs"].="</ul></p>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$form_html["champs"].="<p>Aucune connexion enregistrée ces 7 derniers jours.</p>";
|
||||||
|
//les pages où il est passé
|
||||||
|
if(!empty($infos["pages"]))
|
||||||
|
{
|
||||||
|
$nb_pages=count($infos["pages"]);
|
||||||
|
$form_html["champs"].="<p>$nb_pages affichages comptabilisés les 7 derniers jours, dont les suivants les dernières 24H :<ul>";
|
||||||
|
$hier=time()-3600*24;
|
||||||
|
foreach ($infos["pages"] as $page)
|
||||||
|
{
|
||||||
|
if($page["time_affichage"]>$hier)
|
||||||
|
$form_html["champs"].="<li><b>".$page["page"]."</b> (contexte : ".$page["contexte"].", le ".date("d/m/Y à H:i:s",$page["time_affichage"]).")</li>";
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$form_html["champs"].="</ul></p>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$form_html["champs"].="<p>Aucun affichage enregistré ces 7 derniers jours.</p>";
|
||||||
|
//ses annonces
|
||||||
|
$auteur=new FclFlux_utilisateur();
|
||||||
|
$auteur->id_utilisateur=$id_utilisateur;
|
||||||
|
$annonces=FclFlux_post::get_liste_posts_auteur_cache($auteur,true);
|
||||||
|
unset($auteur);
|
||||||
|
if(!empty($annonces))
|
||||||
|
{
|
||||||
|
$nb_annonces=count($annonces);
|
||||||
|
$form_html["champs"].="<p id='posts'>$nb_annonces annonces ont été postées par cet utilisateur :<ul>";
|
||||||
|
$hier=time()-3600*24;
|
||||||
|
foreach ($annonces as $annonce_infos)
|
||||||
|
$form_html["champs"].="<li><b>".stripslashes($annonce_infos["ancre"])."</b> (<a href='".PAGE_MAJ_POSTS."?id_post=".intval($annonce_infos["id_post"])."' target='_blank'>Infos de l'annonce)</a></li>";
|
||||||
|
$form_html["champs"].="</ul></p>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$form_html["champs"].="<p id='posts'>Aucune annonce postée par cet utilisateur.</p>";
|
||||||
|
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);
|
81
ctrl/admin_comptes_infos_tests.php
Executable file
81
ctrl/admin_comptes_infos_tests.php
Executable file
@ -0,0 +1,81 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors de l'enregistrement d'une nouveau compte utilisateur
|
||||||
|
* ou encore de sa mise à jour
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_utilisateur.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
$form["pseudo"]=trim($_POST["pseudo"]);
|
||||||
|
$form["email"]=trim($_POST["email"]);
|
||||||
|
if(isset($_POST["abo_max_liens"]))
|
||||||
|
$form["abo_max_liens"]=trim($_POST["abo_max_liens"]);
|
||||||
|
if(isset($_POST["presentation"]))
|
||||||
|
$form["presentation"]=trim($_POST["presentation"]);
|
||||||
|
if(isset($_POST["origine"]))
|
||||||
|
$form["origine"]=$_POST["origine"];
|
||||||
|
if(isset($_POST["statut"]))
|
||||||
|
$form["statut"]=$_POST["statut"];
|
||||||
|
if(isset($_POST["fuseau_horaire"]))
|
||||||
|
$form["fuseau_horaire"]=$_POST["fuseau_horaire"];
|
||||||
|
if(isset($_POST["insee"]))
|
||||||
|
$form["insee"]=$_POST["insee"];
|
||||||
|
elseif(empty($_POST["insee"]))
|
||||||
|
$form["insee"]=null;
|
||||||
|
if((isset($_POST["passe"]))&&(!empty($_POST["passe"])))
|
||||||
|
$form["passe"]=$_POST["passe"];
|
||||||
|
if((empty($_POST["pseudo"]))||(empty($_POST["email"])))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$utilisateur=new FclFlux_utilisateur($form);
|
||||||
|
if(!empty($utilisateur->erreurs))
|
||||||
|
$msg_form=array_merge($utilisateur->erreurs,$msg_form);
|
||||||
|
if(empty($msg_form))
|
||||||
|
{
|
||||||
|
if(!empty($_POST["id_utilisateur"]))
|
||||||
|
{
|
||||||
|
$form["id_utilisateur"]=$_POST["id_utilisateur"];//utile pour réaffichage si pas en ajax
|
||||||
|
$utilisateur->id_utilisateur=intval(trim($_POST["id_utilisateur"]));
|
||||||
|
$action=$utilisateur->actualise(false,true);
|
||||||
|
if((empty($utilisateur->erreurs))&&($action!==false))
|
||||||
|
{
|
||||||
|
if((isset($_POST["suppr_illustration"]))&&($_POST["suppr_illustration"]==1))
|
||||||
|
$action=$utilisateur->actualise(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$action=$utilisateur->ajout(false,false);
|
||||||
|
if(!empty($utilisateur->erreurs))
|
||||||
|
$msg_form=array_merge($utilisateur->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
}
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if(($msg_form[0]==MSG_ADMIN_VALID)&&(!empty($utilisateur->id_utilisateur)))
|
||||||
|
echo $utilisateur->id_utilisateur;//tout s'est bien passé, je recharge les données en ajax
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
||||||
|
}
|
33
ctrl/admin_comptes_maj.php
Executable file
33
ctrl/admin_comptes_maj.php
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script permettant de consulter les infos concernant un utilisateur
|
||||||
|
* puis éventuellement modifier son statut ou encore supprimer son compte.
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_source.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(true,true))
|
||||||
|
{
|
||||||
|
header("Location:".SITE_URL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(isset($_POST["pseudo"]))
|
||||||
|
{
|
||||||
|
if(empty($_POST["suppr_ok"]))
|
||||||
|
include("../ctrl/admin_comptes_infos_tests.php");
|
||||||
|
else
|
||||||
|
include("../ctrl/admin_comptes_suppr_tests.php");
|
||||||
|
}
|
||||||
|
elseif(isset($_POST["recherche"]))//validation d'une recherche
|
||||||
|
include("../ctrl/admin_comptes_recherche.php");
|
||||||
|
elseif(!empty($_GET["id_utilisateur"]))//id du compte passé par l'url
|
||||||
|
include("../ctrl/admin_comptes_affiche.php");
|
||||||
|
else
|
||||||
|
{//formulaire en mode saisie d'un nouvel utilisateur
|
||||||
|
$form["pseudo"]="";
|
||||||
|
$form["email"]="";
|
||||||
|
}
|
||||||
|
include("../vues/admin_comptes_maj.php");
|
||||||
|
}
|
47
ctrl/admin_comptes_recherche.php
Executable file
47
ctrl/admin_comptes_recherche.php
Executable file
@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script cherchant les comptes utilisateur pour une recherche lancée par un administrateur
|
||||||
|
* Les éventuels résultats sont listés pour sélection et affichage
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["recherche"]=trim($_POST["recherche_compte"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_source.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if(empty($form["recherche"]))
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_UTILISA_CHAMPS_ABSENTS);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_IMPREVUE);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$comptes=FclFlux_utilisateur::recherche_globale($form["recherche"],"id_utilisateur,pseudo,email");
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($comptes))
|
||||||
|
{
|
||||||
|
$select="<div class='form-group'>
|
||||||
|
<label for='liste_utilisateurs' class='col-sm-3 control-label'>".count($comptes)." résultat(s) correspondent : </label>
|
||||||
|
<div class='col-sm-9'><select name='liste_utilisateurs' id='liste_utilisateurs' autofocus class='form-control'>
|
||||||
|
<option value='0'></option>";
|
||||||
|
foreach ($comptes as $compte_info)
|
||||||
|
$select.="<option value='".$compte_info["id_utilisateur"]."'>".htmlentities(affiche_utf8($compte_info["pseudo"]." (".$compte_info["email"].")",UTF8_OK))."</option>\n";
|
||||||
|
$select.="</select></div></div>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_SQL_RECHERCHE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($select))&&($ajax_on))
|
||||||
|
echo $select;
|
47
ctrl/admin_comptes_suppr_tests.php
Executable file
47
ctrl/admin_comptes_suppr_tests.php
Executable file
@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors d'une demande de suppression d'un compte utilisateur
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_source.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if((empty($_POST["id_utilisateur"]))||(empty($_POST["suppr_ok"])))
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$utilisateur=new FclFlux_utilisateur();
|
||||||
|
$form["id_utilisateur"]=$_POST["id_utilisateur"];//utile pour réaffichage si pas en ajax
|
||||||
|
$utilisateur->id_utilisateur=intval(trim($_POST["id_utilisateur"]));
|
||||||
|
$action=$utilisateur->supprime();
|
||||||
|
if(!empty($utilisateur->erreurs))
|
||||||
|
$msg_form=array_merge($utilisateur->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if($msg_form[0]==MSG_ADMIN_VALID)
|
||||||
|
echo str_replace("'","\"",get_html_alerte_msg($msg_form,"alert-success"));//pour comparaison en JS
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
||||||
|
}
|
26
ctrl/admin_flux_a_valider.php
Executable file
26
ctrl/admin_flux_a_valider.php
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script cherchant si il y a des flux à valider, suite à un ajout par un utilisateur.
|
||||||
|
* Si oui ils sont listées pour sélection
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$msg_form=array();
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_IMPREVUE);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$flux=FclFlux_flux::get_a_valider();
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($flux))
|
||||||
|
{
|
||||||
|
$select="<div class='form-group'>
|
||||||
|
<label for='liste_flux'>".count($flux)." flux à contrôler.</label>
|
||||||
|
<select name='liste_flux' id='liste_flux' autofocus class='form-control'>
|
||||||
|
<option value='0'></option>";
|
||||||
|
foreach ($flux as $flux_info)
|
||||||
|
$select.="<option value='".$flux_info["id_flux"]."'>".htmlentities(affiche_utf8($flux_info["nom"],UTF8_OK))."</option>\n";
|
||||||
|
$select.="</select></div>";
|
||||||
|
}
|
||||||
|
}
|
106
ctrl/admin_flux_affiche.php
Executable file
106
ctrl/admin_flux_affiche.php
Executable file
@ -0,0 +1,106 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script affichant un formulaire permettant de modifier / supprimer un flux
|
||||||
|
* 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_flux.php");
|
||||||
|
}
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$id_flux=intval(trim($_GET["id_flux"]));
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$flux=FclFlux_flux::recherche($id_flux,"id_flux","nom,url,source_id,description,langue,frequence_maj,memo,time_lecture,nb_clics");
|
||||||
|
if(!empty($flux))
|
||||||
|
{
|
||||||
|
$form_html[0]["nom"]="Informations actuelles sur ce flux.";
|
||||||
|
$stats_txt="";
|
||||||
|
$flux_stats=new FclFlux_flux();
|
||||||
|
$flux_stats->id_flux=$id_flux;
|
||||||
|
$stats=$flux_stats->get_liste_abonnes();
|
||||||
|
if(!empty($stats))
|
||||||
|
$stats_txt="<br><strong>Ce flux compte ".count($stats["actifs"])." abonnés actifs, ".count($stats["inactifs"])." abonnements désactivés et ".count($stats["en_pause"])." abonnés en pause. Ses articles ont reçu ".$flux["nb_clics"]." clics.</strong>";
|
||||||
|
unset($flux_stats);unset($stats);
|
||||||
|
$form_html[0]["champs"]="<form method='post' id='maj_flux' name='maj_flux' action='".PAGE_MAJ_FLUX."?id_flux=$id_flux' role='form'>
|
||||||
|
<a href='".PAGE_REPERTOIRE_FLUX_INFO."$id_flux' title='Voir le flux' class='btn btn-info btn-sm' target='_blank'>Voir le flux.</a>";
|
||||||
|
// désignation de la source ?
|
||||||
|
if(!empty($flux["source_id"]))
|
||||||
|
{
|
||||||
|
$source=FclFlux_source::recherche($flux["source_id"],"nom,id_source");
|
||||||
|
if(!empty($source["nom"]))
|
||||||
|
$form_html[0]["champs"].="<p>Site propriétaire du flux : <a href='".PAGE_MAJ_SOURCE."?id_source=".$source["id_source"]."' target='_blank' title='+ infos sur ce site'>".$source["nom"]."</a> (dernière importation : ".date("d/m/Y à h:m:s",$flux["time_lecture"]).").$stats_txt</p>";
|
||||||
|
}
|
||||||
|
$form_html[0]["champs"].="<div class='form-group'>
|
||||||
|
<label for='cherche_source'>Changer le site propriétaire ? alors saisissez votre recherche :</label>
|
||||||
|
<input class='form-control' type='text' maxlength='20' name='cherche_source' id='cherche_source'>
|
||||||
|
</div>
|
||||||
|
<div id='sup_sources'>";
|
||||||
|
if(!empty($source["id_source"]))
|
||||||
|
$form_html[0]["champs"].="<input type='hidden' value='".$source["id_source"]."' name='source_id'>";
|
||||||
|
$form_html[0]["champs"].="</div>
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='designation'>Titre.</label>
|
||||||
|
<input class='form-control' type='text' maxlength='".FLUX_MAX_NOM."' name='designation' id='nom' value=\"".htmlspecialchars($flux["nom"])."\" required>
|
||||||
|
<p class='help-block'><b>Obligatoire</b>.</p>
|
||||||
|
</div>
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='url'>Adresse.</label>
|
||||||
|
<input class='form-control' type='url' maxlength='".FLUX_MAX_URL."' name='url' id='url' value=\"".$flux["url"]."\" required>
|
||||||
|
<p class='help-block'><b>Obligatoire</b>. L'adresse complète du flux dont la lecture sera testée au moment de l'enregistrement.</p>
|
||||||
|
</div>
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='description'>Description.</label>
|
||||||
|
<input class='form-control' type='text' maxlength='".FLUX_MAX_DESCRIPTION."' name='description' id='description' value=\"".htmlspecialchars($flux["description"])."\">
|
||||||
|
<p class='help-block'><b>Facultatif</b>.</p>
|
||||||
|
</div>";
|
||||||
|
$langues=explode("|",FLUX_LANGUES);
|
||||||
|
$form_html[0]["champs"].="<div class='form-group'><label for='langue'>Langue principale du flux :".$flux["langue"]."</label>";
|
||||||
|
foreach ($langues as $langue)
|
||||||
|
{
|
||||||
|
if($langue==$flux["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>";
|
||||||
|
$frequences=explode("|",FLUX_FREQUENCES);
|
||||||
|
$form_html[0]["champs"].="<div class='form-group'><label for='frequence_maj'>Fréquence d'actualisation du flux.</label>";
|
||||||
|
foreach ($frequences as $frequence)
|
||||||
|
{
|
||||||
|
if($frequence==$flux["frequence_maj"])
|
||||||
|
$form_html[0]["champs"].="<label class='checkbox-inline'><input type='radio' name='frequence_maj' value='$frequence' checked='checked'> ".$frequence."</label>";
|
||||||
|
else
|
||||||
|
$form_html[0]["champs"].="<label class='checkbox-inline'><input type='radio' name='frequence_maj' value='$frequence'> ".$frequence."</label>";
|
||||||
|
}
|
||||||
|
$form_html[0]["champs"].="<p class='help-block'><b>Obligatoire</b>.</p></div>
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='memo'>Mémo.</label>
|
||||||
|
<input class='form-control' type='text' maxlength='".FLUX_MAX_MEMO."' name='memo' id='memo' value=\"".htmlspecialchars($flux["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 flux 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 flux, <u>y compris si il a des dépendances (abonnements...)</u>.</label></div>
|
||||||
|
<input type='hidden' name='id_flux' id='id_flux' value='$id_flux'>
|
||||||
|
<button type='submit' class='btn btn-success btn-lg'>Enregistrer.</button>
|
||||||
|
<p><br><br><a href='".PAGE_MAJ_FLUX."' title='Saisir un nouveau flux' class='btn btn-info btn-sm'>+ Nouveau flux.</a></p>
|
||||||
|
</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);
|
89
ctrl/admin_flux_infos_tests.php
Executable file
89
ctrl/admin_flux_infos_tests.php
Executable file
@ -0,0 +1,89 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors de l'enregistrement des données saisies pour un flux
|
||||||
|
* lors de sa création ou de sa mise à jour
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["designation"]=trim($_POST["designation"]);
|
||||||
|
$form["url"]=trim($_POST["url"]);
|
||||||
|
$form["description"]=trim($_POST["description"]);
|
||||||
|
if(!empty($_POST["source_id"]))
|
||||||
|
$form["source_id"]=intval(trim($_POST["source_id"]));
|
||||||
|
if(!empty($_POST["langue"]))
|
||||||
|
$form["langue"]=$_POST["langue"];
|
||||||
|
else
|
||||||
|
$form["langue"]="fr";
|
||||||
|
if(!empty($_POST["frequence_maj"]))
|
||||||
|
$form["frequence_maj"]=$_POST["frequence_maj"];
|
||||||
|
else
|
||||||
|
$form["frequence_maj"]="H";
|
||||||
|
$form["memo"]=trim($_POST["memo"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_flux.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if((empty($_POST["designation"]))||(empty($_POST["url"]))||(empty($_POST["source_id"]))||(empty($_POST["langue"]))||(empty($_POST["frequence_maj"])))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$auteur=new FclFlux_utilisateur();
|
||||||
|
$auteur->id_utilisateur=$_SESSION["id_utilisateur"];
|
||||||
|
$form["auteur"]=$auteur;
|
||||||
|
$source=new FclFlux_source();
|
||||||
|
$source->id_source=$form["source_id"];
|
||||||
|
$form["source"]=$source;
|
||||||
|
require_once("../modele/connexion-bd.php");
|
||||||
|
$form["limites"]["designation_long_min"]=FLUX_MIN_NOM;
|
||||||
|
$form["limites"]["designation_long_max"]=FLUX_MAX_NOM;
|
||||||
|
$form["limites"]["url_long_max"]=FLUX_MAX_URL;
|
||||||
|
$form["limites"]["description_long_max"]=FLUX_MAX_DESCRIPTION;
|
||||||
|
$form["limites"]["memo_long_max"]=FLUX_MAX_MEMO;
|
||||||
|
$flux=new FclFlux_flux($form);//test les différentes valeurs fournies
|
||||||
|
if(!empty($flux->erreurs))
|
||||||
|
$msg_form=array_merge($flux->erreurs,$msg_form);
|
||||||
|
/*else if(empty($flux->lecture(5)))//test de lecture du flux (mais pas forcément un flux ! ex : meetoyen)
|
||||||
|
$msg_form[]=ERREUR_FLUX_INFOS;*/
|
||||||
|
else if(empty($flux->get_contenu(30.0)))//test de lecture du flux
|
||||||
|
$msg_form[]=ERREUR_FLUX_LECTURE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
{
|
||||||
|
if(!empty($_POST["id_flux"]))
|
||||||
|
{
|
||||||
|
$form["id_flux"]=$_POST["id_flux"];//utile pour réaffichage si pas en ajax
|
||||||
|
$flux->id_flux=intval(trim($_POST["id_flux"]));
|
||||||
|
$action=$flux->actualise();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$action=$flux->ajout();
|
||||||
|
if(!empty($flux->erreurs))
|
||||||
|
$msg_form=array_merge($flux->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
}
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if(($msg_form[0]==MSG_ADMIN_VALID)&&(!empty($flux->id_flux)))
|
||||||
|
echo $flux->id_flux;//tout s'est bien passé, je recharge le flux en ajax
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach($msg_form as $message)
|
||||||
|
echo "<h4>$message</h4>";
|
||||||
|
}
|
||||||
|
}
|
38
ctrl/admin_flux_maj.php
Executable file
38
ctrl/admin_flux_maj.php
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script permettant à un utilisateur d'ajouter
|
||||||
|
* ou encore modifier / supprimer une de ses périodes d'absence
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_flux.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(true,true))
|
||||||
|
{
|
||||||
|
header("Location:".SITE_URL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
include("../ctrl/admin_flux_a_valider.php");
|
||||||
|
if(isset($_POST["nom"]))
|
||||||
|
{
|
||||||
|
if((empty($_POST["suppr_ok"]))&&(empty($_POST["suppr_ok_tot"])))
|
||||||
|
include("../ctrl/admin_flux_infos_tests.php");
|
||||||
|
else
|
||||||
|
include("../ctrl/admin_flux_suppr_tests.php");
|
||||||
|
}
|
||||||
|
elseif(isset($_POST["recherche"]))
|
||||||
|
include("../ctrl/admin_flux_recherche.php");
|
||||||
|
elseif(!empty($_GET["id_flux"]))
|
||||||
|
include("../ctrl/admin_flux_affiche.php");
|
||||||
|
else
|
||||||
|
{//formulaire en mode saisie d'un nouveau flux
|
||||||
|
$form["nom"]="";
|
||||||
|
$form["url"]="http://";
|
||||||
|
$form["description"]="";
|
||||||
|
$form["langue"]="fr";
|
||||||
|
$form["frequence_maj"]="J";
|
||||||
|
$form["memo"]="";
|
||||||
|
}
|
||||||
|
include("../vues/admin_flux_maj.php");
|
||||||
|
}
|
46
ctrl/admin_flux_recherche.php
Executable file
46
ctrl/admin_flux_recherche.php
Executable file
@ -0,0 +1,46 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script cherchant les flux pour une recherche lancée par un administrateur
|
||||||
|
* Les éventuels résultats sont listés pour sélection
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["recherche"]=trim($_POST["recherche"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_flux.php");
|
||||||
|
}
|
||||||
|
if(empty($form["recherche"]))
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_UTILISA_CHAMPS_ABSENTS);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_IMPREVUE);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$flux=FclFlux_flux::recherche_globale($form["recherche"],"id_flux,nom");
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($flux))
|
||||||
|
{
|
||||||
|
$select="<div class='form-group'>
|
||||||
|
<label for='liste_flux'>".count($flux)." résultat(s) correspondant</label>
|
||||||
|
<select name='liste_flux' id='liste_flux' autofocus class='form-control'>
|
||||||
|
<option value='0'></option>";
|
||||||
|
foreach ($flux as $flux_info)
|
||||||
|
$select.="<option value='".$flux_info["id_flux"]."'>".htmlentities(affiche_utf8($flux_info["nom"],UTF8_OK))."</option>\n";
|
||||||
|
$select.="</select></div>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_SQL_RECHERCHE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($select))&&($ajax_on))
|
||||||
|
echo $select;
|
50
ctrl/admin_flux_select.php
Executable file
50
ctrl/admin_flux_select.php
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script cherchant les sources de flux pour une recherche lancée par un administrateur
|
||||||
|
* en vue de définir le site propriétaire d'un flux
|
||||||
|
* Les éventuels résultats sont listés pour sélection
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["recherche"]=trim($_POST["recherche"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_source.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if(!empty($form["recherche"]))
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$source_select=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$sources=FclFlux_source::recherche_globale($form["recherche"],"id_source,nom");
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($sources))
|
||||||
|
{
|
||||||
|
$source_select=$sources;
|
||||||
|
if($ajax_on)
|
||||||
|
{
|
||||||
|
echo "<p><label for='source_id'> >> Sélectionnez le site propriétaire du flux parmi les ".count($sources)." résultat(s) : </label> <select name='source_id' autofocus>\n";
|
||||||
|
foreach ($source_select as $source_info)
|
||||||
|
echo "<option value='".$source_info["id_source"]."'>".htmlentities(affiche_utf8($source_info["nom"],UTF8_OK))."</option>\n";
|
||||||
|
echo "</select>.</p>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(!$ajax_on)
|
||||||
|
$msg_form[]=ERREUR_SQL_RECHERCHE;
|
||||||
|
else
|
||||||
|
echo "<p><strong>".ERREUR_SQL_RECHERCHE."</strong></p>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
49
ctrl/admin_flux_suppr_tests.php
Executable file
49
ctrl/admin_flux_suppr_tests.php
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors d'une demande de suppression d'un flux
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_flux.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if((empty($_POST["id_flux"]))||(((empty($_POST["suppr_ok"])))&&((empty($_POST["suppr_ok_tot"])))))
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
require_once("../modele/connexion-bd.php");
|
||||||
|
$flux=new FclFlux_flux();
|
||||||
|
$form["id_flux"]=$_POST["id_flux"];//utile pour réaffichage si pas en ajax
|
||||||
|
$flux->id_flux=intval(trim($_POST["id_flux"]));
|
||||||
|
if(empty($_POST["suppr_ok_tot"]))
|
||||||
|
$action=$flux->supprime();
|
||||||
|
else
|
||||||
|
$action=$flux->supprime(false);
|
||||||
|
if(!empty($flux->erreurs))
|
||||||
|
$msg_form=array_merge($flux->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if($msg_form[0]==MSG_ADMIN_VALID)
|
||||||
|
echo str_replace("'","\"",get_html_alerte_msg($msg_form,"alert-success"));//pour comparaison en JS
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
||||||
|
}
|
26
ctrl/admin_hub_a_valider.php
Executable file
26
ctrl/admin_hub_a_valider.php
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script cherchant si il y a des hubs ou posts à valider, suite à la création ou l'ajout par un utilisateur.
|
||||||
|
* Si oui ils sont listées pour sélection
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$msg_form=array();
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_IMPREVUE);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require_once("../modele/connexion-bd.php");
|
||||||
|
$hubs=FclFlux_hub::get_a_valider();
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($hubs))
|
||||||
|
{
|
||||||
|
$select="<div class='form-group'>
|
||||||
|
<label for='liste_hubs'>".count($hubs)." hubs à contrôler.</label>
|
||||||
|
<select name='liste_hubs' id='liste_hubs' autofocus class='form-control'>
|
||||||
|
<option value='0'></option>";
|
||||||
|
foreach ($hubs as $hub_infos)
|
||||||
|
$select.="<option value='".$hub_infos["id_hub"]."'>".htmlentities(affiche_utf8($hub_infos["nom"],UTF8_OK))."</option>\n";
|
||||||
|
$select.="</select></div>";
|
||||||
|
}
|
||||||
|
}
|
76
ctrl/admin_hub_admins_tests.php
Executable file
76
ctrl/admin_hub_admins_tests.php
Executable file
@ -0,0 +1,76 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors des demandes d'ajout/suppression d'administrateurs à un hub.
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
if(!empty($_POST["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(!empty($_POST["id_hub"]))
|
||||||
|
$id_hub=intval(trim($_POST["id_hub"]));
|
||||||
|
if(!empty($_POST["liste_utilisateurs"]))
|
||||||
|
$nouvel_admin=intval(trim($_POST["liste_utilisateurs"]));
|
||||||
|
$suppr_admin=array();
|
||||||
|
if(!empty($_POST["suppr_admin"]))
|
||||||
|
{
|
||||||
|
foreach($_POST['suppr_admin'] as $id)
|
||||||
|
$suppr_admin[]=intval($id);
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if(((empty($nouvel_admin))&&(empty($suppr_admin)))||(empty($id_hub)))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$hub=new FclFlux_hub();
|
||||||
|
$hub->id_hub=$id_hub;
|
||||||
|
if(!empty($nouvel_admin))
|
||||||
|
{
|
||||||
|
$admin=new FclFlux_utilisateur();
|
||||||
|
$admin->id_utilisateur=$nouvel_admin;
|
||||||
|
$action=$hub->ajout_admin($admin);
|
||||||
|
if(!empty($hub->erreurs))
|
||||||
|
$msg_form=$hub->erreurs;
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
}
|
||||||
|
if(!empty($suppr_admin))
|
||||||
|
{
|
||||||
|
foreach($suppr_admin as $admin_id)
|
||||||
|
{
|
||||||
|
$admin=new FclFlux_utilisateur();
|
||||||
|
$admin->id_utilisateur=$admin_id;
|
||||||
|
$action=$hub->suppr_admin($admin);
|
||||||
|
if(!empty($hub->erreurs))
|
||||||
|
$msg_form=$hub->erreurs;
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if(($msg_form[0]==MSG_ADMIN_VALID)&&(!empty($hub->id_hub)))
|
||||||
|
echo $hub->id_hub;//tout s'est bien passé, j'actualise l'affichage
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach($msg_form as $message)
|
||||||
|
echo "<h4>$message</h4>";
|
||||||
|
}
|
||||||
|
}
|
233
ctrl/admin_hub_affiche.php
Executable file
233
ctrl/admin_hub_affiche.php
Executable file
@ -0,0 +1,233 @@
|
|||||||
|
<?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);
|
123
ctrl/admin_hub_classement_tests.php
Executable file
123
ctrl/admin_hub_classement_tests.php
Executable file
@ -0,0 +1,123 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors des demandes de (dé)classement d'un hub
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
if(!empty($_POST["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(!empty($_POST["id_hub"]))
|
||||||
|
$id_hub=intval(trim($_POST["id_hub"]));
|
||||||
|
if(!empty($_POST["liste_rubriques"]))
|
||||||
|
$nouvelle_rubrique=intval(trim($_POST["liste_rubriques"]));
|
||||||
|
$suppr_rubriques=array();
|
||||||
|
if(!empty($_POST["suppr_rubrique"]))
|
||||||
|
{
|
||||||
|
foreach($_POST['suppr_rubrique'] as $id)
|
||||||
|
$suppr_rubriques[]=intval($id);
|
||||||
|
}
|
||||||
|
$suppr_ref_ok=array();
|
||||||
|
if(!empty($_POST["suppr_reference_ok"]))
|
||||||
|
{
|
||||||
|
foreach($_POST['suppr_reference_ok'] as $id)
|
||||||
|
$suppr_ref_ok[]=intval($id);
|
||||||
|
}
|
||||||
|
$ajout_ref_ok=array();
|
||||||
|
if(!empty($_POST["ajout_reference_ok"]))
|
||||||
|
{
|
||||||
|
foreach($_POST['ajout_reference_ok'] as $id)
|
||||||
|
$ajout_ref_ok[]=intval($id);
|
||||||
|
}
|
||||||
|
$msg_form_classement=array();
|
||||||
|
if(((empty($nouvelle_rubrique))&&(empty($suppr_rubriques))&&(empty($suppr_ref_ok))&&(empty($ajout_ref_ok)))||(empty($id_hub)))
|
||||||
|
$msg_form_classement[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form_classement[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
require_once("../modele/connexion-bd.php");
|
||||||
|
$hub=new FclFlux_hub();
|
||||||
|
$hub->id_hub=$id_hub;
|
||||||
|
if(!empty($nouvelle_rubrique))
|
||||||
|
{
|
||||||
|
$reference_ok=0;
|
||||||
|
if(!empty($_POST["reference_ok"]))
|
||||||
|
$reference_ok=1;
|
||||||
|
$rubrique=new FclFlux_rubrique();
|
||||||
|
$rubrique->id_rubrique=$nouvelle_rubrique;
|
||||||
|
$action=$hub->ajout_rubrique($rubrique,$reference_ok);
|
||||||
|
unset($rubrique);
|
||||||
|
if(!empty($hub->erreurs))
|
||||||
|
$msg_form_classement=$hub->erreurs;
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form_classement[]=ERREUR_IMPREVUE;
|
||||||
|
}
|
||||||
|
if(!empty($suppr_rubriques))
|
||||||
|
{
|
||||||
|
foreach($suppr_rubriques as $rub_id)
|
||||||
|
{
|
||||||
|
$rubrique=new FclFlux_rubrique();
|
||||||
|
$rubrique->id_rubrique=$rub_id;
|
||||||
|
$action=$hub->suppr_rubrique($rubrique);
|
||||||
|
unset($rubrique);
|
||||||
|
if($action===false)
|
||||||
|
{
|
||||||
|
$msg_form_classement[]=ERREUR_IMPREVUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!empty($suppr_ref_ok))
|
||||||
|
{
|
||||||
|
foreach($suppr_ref_ok as $rub_id)
|
||||||
|
{
|
||||||
|
$rubrique=new FclFlux_rubrique();
|
||||||
|
$rubrique->id_rubrique=$rub_id;
|
||||||
|
$action=$hub->actualise_rubrique_ref_ok($rubrique,0);
|
||||||
|
unset($rubrique);
|
||||||
|
if($action===false)
|
||||||
|
{
|
||||||
|
$msg_form_classement[]=ERREUR_IMPREVUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!empty($ajout_ref_ok))
|
||||||
|
{
|
||||||
|
foreach($ajout_ref_ok as $rub_id)
|
||||||
|
{
|
||||||
|
$rubrique=new FclFlux_rubrique();
|
||||||
|
$rubrique->id_rubrique=$rub_id;
|
||||||
|
$action=$hub->actualise_rubrique_ref_ok($rubrique,1);
|
||||||
|
unset($rubrique);
|
||||||
|
if($action===false)
|
||||||
|
{
|
||||||
|
$msg_form_classement[]=ERREUR_IMPREVUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(empty($msg_form_classement))
|
||||||
|
$msg_form_classement[]=MSG_ADMIN_VALID;
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form_classement))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if(($msg_form_classement[0]==MSG_ADMIN_VALID)&&(!empty($hub->id_hub)))
|
||||||
|
echo $hub->id_hub;//tout s'est bien passé, j'actualise l'affichage
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach($msg_form_classement as $message)
|
||||||
|
echo "<h4>$message</h4>";
|
||||||
|
}
|
||||||
|
}
|
75
ctrl/admin_hub_flux_import_tests.php
Executable file
75
ctrl/admin_hub_flux_import_tests.php
Executable file
@ -0,0 +1,75 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors des demandes d'ajout/suppression d'un flux à importer dans un hub.
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
if(!empty($_POST["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(!empty($_POST["id_hub"]))
|
||||||
|
$id_hub=intval(trim($_POST["id_hub"]));
|
||||||
|
if(!empty($_POST["liste_flux"]))
|
||||||
|
$nouveau_flux=intval(trim($_POST["liste_flux"]));
|
||||||
|
$suppr_rubriques=array();
|
||||||
|
if(!empty($_POST["suppr_flux"]))
|
||||||
|
{
|
||||||
|
foreach($_POST['suppr_flux'] as $id)
|
||||||
|
$suppr_flux[]=intval($id);
|
||||||
|
}
|
||||||
|
$msg_form_classement=array();
|
||||||
|
if(((empty($nouveau_flux))&&(empty($suppr_flux)))||(empty($id_hub)))
|
||||||
|
$msg_form_classement[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form_classement[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
require_once("../modele/connexion-bd.php");
|
||||||
|
$hub=new FclFlux_hub();
|
||||||
|
$hub->id_hub=$id_hub;
|
||||||
|
if(!empty($nouveau_flux))
|
||||||
|
{
|
||||||
|
$flux=new FclFlux_flux();
|
||||||
|
$flux->id_flux=$nouveau_flux;
|
||||||
|
$action=$flux->ajout_hub($hub);
|
||||||
|
if(!empty($flux->erreurs))
|
||||||
|
$msg_form=$flux->erreurs;
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
}
|
||||||
|
if(!empty($suppr_flux))
|
||||||
|
{
|
||||||
|
foreach($suppr_flux as $flux_id)
|
||||||
|
{
|
||||||
|
$flux=new FclFlux_flux();
|
||||||
|
$flux->id_flux=$flux_id;
|
||||||
|
$action=$flux->suppr_hub($hub);
|
||||||
|
if(!empty($flux->erreurs))
|
||||||
|
$msg_form=$flux->erreurs;
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if(($msg_form[0]==MSG_ADMIN_VALID)&&(!empty($hub->id_hub)))
|
||||||
|
echo $hub->id_hub;//tout s'est bien passé, j'actualise l'affichage
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach($msg_form as $message)
|
||||||
|
echo "<h4>$message</h4>";
|
||||||
|
}
|
||||||
|
}
|
49
ctrl/admin_hub_illustration_maj.php
Executable file
49
ctrl/admin_hub_illustration_maj.php
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script contrôlant les données envoyées leur d'une demande de mise à jour de l'image illustrant un hub
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_hub.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(true,true))
|
||||||
|
{
|
||||||
|
header("Location:".SITE_URL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$msg_form=array();
|
||||||
|
if((empty($_POST["id_hub"]))||(empty($_POST["nom"])))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$form["limites"]["nom_long_min"]=HUB_MIN_NOM;
|
||||||
|
$form["limites"]["nom_long_max"]=HUB_MAX_NOM;
|
||||||
|
$form["id_hub"]=intval(trim($_POST["id_hub"]));
|
||||||
|
$form["nom"]=trim($_POST["nom"]);
|
||||||
|
$hub=new FclFlux_hub($form);
|
||||||
|
if(!empty($hub->erreurs))
|
||||||
|
$msg_form=array_merge($hub->erreurs,$msg_form);
|
||||||
|
if(empty($msg_form))
|
||||||
|
{
|
||||||
|
if(!empty($_FILES['illustration']['tmp_name']))
|
||||||
|
{
|
||||||
|
$hub->set_illustration($_FILES['illustration']);
|
||||||
|
if(empty($hub->erreurs))
|
||||||
|
$action=$hub->actualise_illustration();
|
||||||
|
}
|
||||||
|
if(!empty($_POST["suppr_illustration"]))
|
||||||
|
$action=$hub->actualise_illustration(true);//supprime le fichier
|
||||||
|
if(!empty($hub->erreurs))
|
||||||
|
$msg_form=array_merge($hub->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//affiche les résultats dans l'iframe
|
||||||
|
include("../vues/admin_hub_illustration_maj.php");
|
||||||
|
}
|
84
ctrl/admin_hub_infos_tests.php
Executable file
84
ctrl/admin_hub_infos_tests.php
Executable file
@ -0,0 +1,84 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors de l'enregistrement des données saisies pour un hub
|
||||||
|
* lors de sa création ou de sa mise à jour
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["nom"]=trim($_POST["nom"]);
|
||||||
|
$form["description"]=trim($_POST["description"]);
|
||||||
|
if(!empty($_POST["langue"]))
|
||||||
|
$form["langue"]=$_POST["langue"];
|
||||||
|
else
|
||||||
|
$form["langue"]="fr";
|
||||||
|
if(!empty($_POST["publication_ok"]))
|
||||||
|
$form["publication_ok"]=1;
|
||||||
|
else
|
||||||
|
$form["publication_ok"]=0;
|
||||||
|
if(!empty($_POST["index_ok"]))
|
||||||
|
$form["index_ok"]=1;
|
||||||
|
else
|
||||||
|
$form["index_ok"]=0;
|
||||||
|
$form["mots_cles"]=trim($_POST["mots_cles"]);
|
||||||
|
$form["memo"]=trim($_POST["memo"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if((empty($_POST["nom"]))||(empty($_POST["langue"])))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$auteur=new FclFlux_utilisateur();
|
||||||
|
$auteur->id_utilisateur=$_SESSION["id_utilisateur"];
|
||||||
|
$form["auteur"]=$auteur;
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$form["limites"]["nom_long_min"]=HUB_MIN_NOM;
|
||||||
|
$form["limites"]["nom_long_max"]=HUB_MAX_NOM;
|
||||||
|
$form["limites"]["description_long_max"]=HUB_MAX_DESCRIPTION;
|
||||||
|
$form["limites"]["memo_long_max"]=HUB_MAX_MEMO;
|
||||||
|
$hub=new FclFlux_hub($form);//test les différentes valeurs fournies
|
||||||
|
if(!empty($hub->erreurs))
|
||||||
|
$msg_form=array_merge($hub->erreurs,$msg_form);
|
||||||
|
if(empty($msg_form))
|
||||||
|
{
|
||||||
|
if(!empty($_POST["id_hub"]))
|
||||||
|
{
|
||||||
|
$form["id_hub"]=$_POST["id_hub"];//utile pour réaffichage si pas en ajax
|
||||||
|
$hub->id_hub=intval(trim($_POST["id_hub"]));
|
||||||
|
$action=$hub->actualise(true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$action=$hub->ajout();
|
||||||
|
if(!empty($hub->erreurs))
|
||||||
|
$msg_form=array_merge($hub->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
}
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if(($msg_form[0]==MSG_ADMIN_VALID)&&(!empty($hub->id_hub)))
|
||||||
|
echo $hub->id_hub;//tout s'est bien passé, je recharge le hub en ajax
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach($msg_form as $message)
|
||||||
|
echo "<h4>$message</h4>";
|
||||||
|
}
|
||||||
|
}
|
40
ctrl/admin_hub_maj.php
Executable file
40
ctrl/admin_hub_maj.php
Executable file
@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script permettant à un administrateur
|
||||||
|
* d'ajouter / modifier ou encore supprimer
|
||||||
|
* les informations concernant un hub
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_hub.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(true,true))
|
||||||
|
{
|
||||||
|
header("Location:".SITE_URL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
include("../ctrl/admin_hub_a_valider.php");//hubs à valider.
|
||||||
|
if(isset($_POST["nom"]))
|
||||||
|
{
|
||||||
|
if((empty($_POST["suppr_ok"]))&&(empty($_POST["suppr_ok_tot"])))
|
||||||
|
include("../ctrl/admin_hub_infos_tests.php");
|
||||||
|
else
|
||||||
|
include("../ctrl/admin_hub_suppr_tests.php");
|
||||||
|
}
|
||||||
|
elseif(isset($_POST["recherche"]))
|
||||||
|
include("../ctrl/admin_hub_recherche.php");
|
||||||
|
elseif(!empty($_GET["id_hub"]))
|
||||||
|
include("../ctrl/admin_hub_affiche.php");
|
||||||
|
else
|
||||||
|
{//formulaire en mode saisie d'un nouveau hub
|
||||||
|
$form["nom"]="";
|
||||||
|
$form["description"]="";
|
||||||
|
$form["mots_cles"]="";
|
||||||
|
$form["langue"]="fr";
|
||||||
|
$form["publication_ok"]=0;
|
||||||
|
$form["index_ok"]=0;
|
||||||
|
$form["memo"]="";
|
||||||
|
}
|
||||||
|
include("../vues/admin_hub_maj.php");
|
||||||
|
}
|
68
ctrl/admin_hub_post_ajout_tests.php
Executable file
68
ctrl/admin_hub_post_ajout_tests.php
Executable file
@ -0,0 +1,68 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors de l'enregistrement des données saisies pour un hub
|
||||||
|
* lors de sa création ou de sa mise à jour
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["ancre"]=trim($_POST["ancre"]);
|
||||||
|
$form["annonce"]=trim($_POST["annonce"]);
|
||||||
|
$form["url"]=trim($_POST["url"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if((empty($form["ancre"]))||((empty($form["url"]))&&(empty($form["annonce"])))||(empty($_POST["id_hub"])))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$auteur=new FclFlux_utilisateur();
|
||||||
|
$auteur->id_utilisateur=$_SESSION["id_utilisateur"];
|
||||||
|
$form["auteur"]=$auteur;
|
||||||
|
$hub=new FclFlux_hub();
|
||||||
|
$hub->id_hub=intval(trim($_POST["id_hub"]));
|
||||||
|
$form["hub"]=$hub;
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$form["limites"]["ancre_long_min"]=POST_MIN_ANCRE;
|
||||||
|
$form["limites"]["ancre_long_max"]=POST_MAX_ANCRE;
|
||||||
|
$form["limites"]["annonce_long_min"]=POST_MIN_ANNONCE;
|
||||||
|
$form["limites"]["annonce_long_max"]=POST_MAX_ANNONCE;
|
||||||
|
$form["limites"]["url_long_max"]=POST_MAX_URL;
|
||||||
|
$post=new FclFlux_post($form);
|
||||||
|
if(!empty($post->erreurs))
|
||||||
|
$msg_form=array_merge($post->erreurs,$msg_form);
|
||||||
|
if(empty($msg_form))
|
||||||
|
{
|
||||||
|
$action=$post->ajout();
|
||||||
|
if(!empty($post->erreurs))
|
||||||
|
$msg_form=array_merge($post->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
}
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if(($msg_form[0]==MSG_ADMIN_VALID)&&(!empty($hub->id_hub)))
|
||||||
|
echo $hub->id_hub;//tout s'est bien passé, je recharge le hub en ajax
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach($msg_form as $message)
|
||||||
|
echo "<h4>$message</h4>";
|
||||||
|
}
|
||||||
|
}
|
45
ctrl/admin_hub_recherche.php
Executable file
45
ctrl/admin_hub_recherche.php
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script cherchant les hubs pour une recherche lancée par un administrateur
|
||||||
|
* Les éventuels résultats sont listés pour sélection
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["recherche"]=trim($_POST["recherche_hub"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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(empty($form["recherche"]))
|
||||||
|
$select_hubs=get_html_alerte_msg((array) ERREUR_UTILISA_CHAMPS_ABSENTS);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$select_hubs=get_html_alerte_msg((array) ERREUR_IMPREVUE);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
require_once("../modele/connexion-bd.php");
|
||||||
|
$hubs=FclFlux_hub::recherche_globale($form["recherche"],"id_hub,nom");
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($hubs))
|
||||||
|
{
|
||||||
|
$select_hubs="<div class='form-group'>
|
||||||
|
<label for='liste_hubs' class='col-sm-3 control-label'>".count($hubs)." résultat(s) correspondant :</label>
|
||||||
|
<div class='col-sm-9'><select name='liste_hubs' id='liste_hubs' autofocus class='form-control'>
|
||||||
|
<option value='0'></option>";
|
||||||
|
foreach ($hubs as $hub_infos)
|
||||||
|
$select_hubs.="<option value='".$hub_infos["id_hub"]."'>".htmlentities(affiche_utf8($hub_infos["nom"],UTF8_OK))."</option>\n";
|
||||||
|
$select_hubs.="</select></div></div>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$select_hubs=get_html_alerte_msg((array) ERREUR_SQL_RECHERCHE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($select_hubs))&&($ajax_on))
|
||||||
|
echo $select_hubs;
|
50
ctrl/admin_hub_suppr_tests.php
Executable file
50
ctrl/admin_hub_suppr_tests.php
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors d'une demande de suppression d'un hub
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_rubrique.php");
|
||||||
|
require_once("../modele/FclFlux_abonnement.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if((empty($_POST["id_hub"]))||(((empty($_POST["suppr_ok"])))&&((empty($_POST["suppr_ok_tot"])))))
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
require_once("../modele/connexion-bd.php");
|
||||||
|
$hub=new FclFlux_hub();
|
||||||
|
$form["id_hub"]=$_POST["id_hub"];//utile pour réaffichage si pas en ajax
|
||||||
|
$hub->id_hub=intval(trim($_POST["id_hub"]));
|
||||||
|
if(empty($_POST["suppr_ok_tot"]))
|
||||||
|
$action=$hub->supprime();
|
||||||
|
else
|
||||||
|
$action=$hub->supprime(false);
|
||||||
|
if(!empty($hub->erreurs))
|
||||||
|
$msg_form=array_merge($hub->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if($msg_form[0]==MSG_ADMIN_VALID)
|
||||||
|
echo str_replace("'","\"",get_html_alerte_msg($msg_form,"alert-success"));//pour comparaison en JS
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
||||||
|
}
|
26
ctrl/admin_posts_a_valider.php
Executable file
26
ctrl/admin_posts_a_valider.php
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script cherchant si il y a des posts à valider, suite à l'ajout par un utilisateur.
|
||||||
|
* Si oui ils sont listées pour sélection
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$msg_form=array();
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_IMPREVUE);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require_once("../modele/connexion-bd.php");
|
||||||
|
$posts=FclFlux_post::get_a_valider();
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($posts))
|
||||||
|
{
|
||||||
|
$select="<div class='form-group'>
|
||||||
|
<label for='liste_posts' class='col-sm-3 control-label'>".count($posts)." posts à contrôler.</label>
|
||||||
|
<div class='col-sm-9'><select name='liste_posts' id='liste_posts' autofocus class='form-control'>
|
||||||
|
<option value='0'></option>";
|
||||||
|
foreach ($posts as $post_infos)
|
||||||
|
$select.="<option value='".$post_infos["id_post"]."'>".htmlentities(affiche_utf8($post_infos["ancre"],UTF8_OK))."</option>\n";
|
||||||
|
$select.="</select></div></div>";
|
||||||
|
}
|
||||||
|
}
|
240
ctrl/admin_posts_affiche.php
Executable file
240
ctrl/admin_posts_affiche.php
Executable file
@ -0,0 +1,240 @@
|
|||||||
|
<?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 où 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);
|
60
ctrl/admin_posts_chg_auteur_tests.php
Executable file
60
ctrl/admin_posts_chg_auteur_tests.php
Executable file
@ -0,0 +1,60 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors d'une demande de changement de l'auteur d'un post
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if((empty($_POST["id_post_auteur"]))||(empty($_POST["liste_utilisateurs"])))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$id_post=intval($_POST["id_post_auteur"]);
|
||||||
|
$id_auteur=intval($_POST["liste_utilisateurs"]);
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$form["id_post"]=$id_post;
|
||||||
|
$auteur=new FclFlux_utilisateur();
|
||||||
|
$auteur->id_utilisateur=$id_auteur;
|
||||||
|
$form["auteur"]=$auteur;
|
||||||
|
unset($auteur);
|
||||||
|
$post=new FclFlux_post($form);
|
||||||
|
if(!empty($post->erreurs))
|
||||||
|
$msg_form=array_merge($post->erreurs,$msg_form);
|
||||||
|
if(empty($msg_form))
|
||||||
|
{
|
||||||
|
$action=$post->change_auteur();
|
||||||
|
if(!empty($post->erreurs))
|
||||||
|
$msg_form=array_merge($post->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
}
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if(($msg_form[0]==MSG_ADMIN_VALID)&&(!empty($post->id_post)))
|
||||||
|
echo $post->id_post;//tout s'est bien passé, je recharge le post en ajax
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach($msg_form as $message)
|
||||||
|
echo "<h4>$message</h4>";
|
||||||
|
}
|
||||||
|
}
|
60
ctrl/admin_posts_chg_hub_tests.php
Executable file
60
ctrl/admin_posts_chg_hub_tests.php
Executable file
@ -0,0 +1,60 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors d'une demande de changement du hub où est diffusé un post
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if((empty($_POST["id_post_hub"]))||(empty($_POST["liste_hubs"])))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$id_post=intval($_POST["id_post_hub"]);
|
||||||
|
$id_hub=intval($_POST["liste_hubs"]);
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$form["id_post"]=$id_post;
|
||||||
|
$hub=new FclFlux_hub();
|
||||||
|
$hub->id_hub=$id_hub;
|
||||||
|
$form["hub"]=$hub;
|
||||||
|
unset($hub);
|
||||||
|
$post=new FclFlux_post($form);
|
||||||
|
if(!empty($post->erreurs))
|
||||||
|
$msg_form=array_merge($post->erreurs,$msg_form);
|
||||||
|
if(empty($msg_form))
|
||||||
|
{
|
||||||
|
$action=$post->change_hub();
|
||||||
|
if(!empty($post->erreurs))
|
||||||
|
$msg_form=array_merge($post->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
}
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if(($msg_form[0]==MSG_ADMIN_VALID)&&(!empty($post->id_post)))
|
||||||
|
echo $post->id_post;//tout s'est bien passé, je recharge le post en ajax
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach($msg_form as $message)
|
||||||
|
echo "<h4>$message</h4>";
|
||||||
|
}
|
||||||
|
}
|
81
ctrl/admin_posts_infos_tests.php
Executable file
81
ctrl/admin_posts_infos_tests.php
Executable file
@ -0,0 +1,81 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors de la mise à jour d'un post.
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if(((empty($_POST["auteur_id"]))&&(empty($_POST["flux_id"])))||((empty($_POST["hub_id"]))&&(empty($_POST["liste_hubs"])))||(empty($_POST["ancre"]))||((empty($_POST["url"]))&&(empty($_POST["annonce"]))))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$form["ancre"]=trim($_POST["ancre"]);
|
||||||
|
$form["url"]=trim($_POST["url"]);
|
||||||
|
$form["annonce_html"]=trim($_POST["annonce"]);
|
||||||
|
$form["time_diffusion"]=trim($_POST["time_diffusion"]);
|
||||||
|
$form["time_expiration"]=trim($_POST["time_expiration"]);
|
||||||
|
$form["limites"]["ancre_long_min"]=POST_MIN_ANCRE;
|
||||||
|
$form["limites"]["ancre_long_max"]=POST_MAX_ANCRE;
|
||||||
|
$form["limites"]["url_long_max"]=POST_MAX_URL;
|
||||||
|
$form["limites"]["annonce_long_min"]=POST_MIN_ANNONCE;
|
||||||
|
$form["limites"]["annonce_long_max"]=POST_MAX_ANNONCE;
|
||||||
|
$hub=new FclFlux_hub();
|
||||||
|
if(!empty($_POST["id_post"]))
|
||||||
|
$hub->id_hub=intval(trim($_POST["hub_id"]));
|
||||||
|
else
|
||||||
|
$hub->id_hub=intval(trim($_POST["liste_hubs"]));
|
||||||
|
$form["hub"]=$hub;
|
||||||
|
$post=new FclFlux_post($form);
|
||||||
|
if(!empty($post->erreurs))
|
||||||
|
$msg_form=array_merge($post->erreurs,$msg_form);
|
||||||
|
if(empty($msg_form))
|
||||||
|
{
|
||||||
|
if(!empty($_POST["id_post"]))
|
||||||
|
{// mise à jour d'un post
|
||||||
|
$post->id_post=intval(trim($_POST["id_post"]));
|
||||||
|
$action=$post->actualise();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{//enregistrement d'un nouveau post.
|
||||||
|
$auteur=new FclFlux_utilisateur();
|
||||||
|
$auteur->id_utilisateur=intval(trim($_POST["auteur_id"]));
|
||||||
|
$post->set_auteur($auteur);
|
||||||
|
if(empty($post->erreurs))
|
||||||
|
$action=$post->ajout();
|
||||||
|
}
|
||||||
|
if(!empty($post->erreurs))
|
||||||
|
$msg_form=array_merge($post->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
{
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
$form["id_post"]=$post->id_post;//utile pour réaffichage si pas en ajax
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if(($msg_form[0]==MSG_ADMIN_VALID)&&(!empty($post->id_post)))
|
||||||
|
echo $post->id_post;//tout s'est bien passé, je recharge le post en ajax
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
||||||
|
}
|
27
ctrl/admin_posts_maj.php
Executable file
27
ctrl/admin_posts_maj.php
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script permettant à un administrateur de gérer les posts pour les enregister, modifier ou supprimer.
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_post.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(true,true))
|
||||||
|
{
|
||||||
|
header("Location:".SITE_URL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
include("../ctrl/admin_posts_a_valider.php");
|
||||||
|
if(isset($_POST["ancre"]))
|
||||||
|
{
|
||||||
|
if(empty($_POST["suppr_ok"]))
|
||||||
|
include("../ctrl/admin_posts_infos_tests.php");
|
||||||
|
else
|
||||||
|
include("../ctrl/admin_posts_suppr_tests.php");
|
||||||
|
}
|
||||||
|
elseif(isset($_POST["recherche"]))
|
||||||
|
include("../ctrl/admin_posts_recherche.php");
|
||||||
|
include("../ctrl/admin_posts_affiche.php");
|
||||||
|
include("../vues/admin_posts_maj.php");
|
||||||
|
}
|
45
ctrl/admin_posts_recherche.php
Executable file
45
ctrl/admin_posts_recherche.php
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script cherchant les posts pour une recherche lancée par un administrateur
|
||||||
|
* Les éventuels résultats sont listés pour sélection
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["recherche"]=trim($_POST["recherche"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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(empty($form["recherche"]))
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_UTILISA_CHAMPS_ABSENTS);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_IMPREVUE);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
require_once("../modele/connexion-bd.php");
|
||||||
|
$posts=FclFlux_post::recherche_globale($form["recherche"],"id_post,ancre");
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($posts))
|
||||||
|
{
|
||||||
|
$select="<div class='form-group'>
|
||||||
|
<label for='liste_posts' class='col-sm-3 control-label'>".count($posts)." résultat(s) correspondant</label>
|
||||||
|
<div class='col-sm-9'><select name='liste_posts' id='liste_posts' autofocus class='form-control'>
|
||||||
|
<option value='0'></option>";
|
||||||
|
foreach ($posts as $post_info)
|
||||||
|
$select.="<option value='".$post_info["id_post"]."'>".htmlentities(affiche_utf8($post_info["ancre"],UTF8_OK))."</option>\n";
|
||||||
|
$select.="</select></div></div>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_SQL_RECHERCHE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($select))&&($ajax_on))
|
||||||
|
echo $select;
|
49
ctrl/admin_posts_suppr_tests.php
Executable file
49
ctrl/admin_posts_suppr_tests.php
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors d'une demande de suppression d'un post
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if((empty($_POST["id_post"]))||(empty($_POST["suppr_ok"]))||(empty($_POST["hub_id"])))
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$form["id_post"]=intval(trim($_POST["id_post"]));
|
||||||
|
$hub=new FclFlux_hub();
|
||||||
|
$hub->id_hub=intval(trim($_POST["hub_id"]));
|
||||||
|
$form["hub"]=$hub;
|
||||||
|
$post=new FclFlux_post($form);
|
||||||
|
$action=$post->supprime();
|
||||||
|
if(!empty($post->erreurs))
|
||||||
|
$msg_form=array_merge($post->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if($msg_form[0]==MSG_ADMIN_VALID)
|
||||||
|
echo str_replace("'","\"",get_html_alerte_msg($msg_form,"alert-success"));//pour comparaison en JS
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
||||||
|
}
|
76
ctrl/admin_rubriques_affiche.php
Executable file
76
ctrl/admin_rubriques_affiche.php
Executable file
@ -0,0 +1,76 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script affichant un formulaire permettant de modifier / supprimer une rubrique
|
||||||
|
* 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_rubrique.php");
|
||||||
|
}
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$id_rubrique=intval(trim($_GET["id_rubrique"]));
|
||||||
|
require_once("../modele/connexion-bd.php");
|
||||||
|
$rubrique=FclFlux_rubrique::recherche($id_rubrique,"nom,description,mere_id,reference_ok,insee");
|
||||||
|
if(!empty($rubrique))
|
||||||
|
{
|
||||||
|
$form_html["nom"]="Informations de la rubrique ($id_rubrique).";
|
||||||
|
$form_html["champs"]="<form method='post' id='maj_rubrique' name='maj_rubrique' action='".PAGE_MAJ_RUBRIQUES."?id_rubrique=$id_rubrique' role='form'>";
|
||||||
|
$rubrique_stats=new FclFlux_rubrique();
|
||||||
|
$rubrique_stats->id_rubrique=$id_rubrique;
|
||||||
|
$stats=$rubrique_stats->get_stats();
|
||||||
|
if(!empty($stats))
|
||||||
|
$form_html["champs"].="<div class='col-sm-12'><p class='help-block'><strong>Les bureaux de poste classés dans cette rubrique comptent ".$stats["nb_abo_actifs_directs"]." abonnés différents (".$stats["nb_abo_inactifs_directs"]." inactifs et ".$stats["nb_abo_en_pause_directs"]." en pause) et ".$stats["nb_abo_actifs_indirects"]." en comptant les sous-rubriques (".$stats["nb_abo_inactifs_indirects"]." inactifs et ".$stats["nb_abo_en_pause_indirects"]." en pause).</strong></p></div>";
|
||||||
|
unset($rubrique_stats);
|
||||||
|
if(!empty($rubrique["mere_id"]))
|
||||||
|
{
|
||||||
|
$mere=FclFlux_rubrique::recherche($rubrique["mere_id"],"nom,id_rubrique");
|
||||||
|
if(!empty($mere["nom"]))
|
||||||
|
$form_html["champs"].="<h3>Rubrique supérieure actuelle : <a href='".PAGE_MAJ_RUBRIQUES."?id_rubrique=".$mere["id_rubrique"]."' target='_blank' title='+ infos sur cette rubrique'>".$mere["nom"]."</a></h3>";
|
||||||
|
}
|
||||||
|
$form_html["champs"].="
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='cherche_mere'>Changer la rubrique supérieure.</label>
|
||||||
|
<input class='form-control' type='text' maxlength='20' name='cherche_mere' id='cherche_mere'>
|
||||||
|
<p class='help-block'><b>Facultatif</b>. Si vous souhaitez modidier le classement de cette rubrique, cherchez le nom de la rubrique supérieure.</p>
|
||||||
|
</div><div id='sup_meres'></div>
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='nom'>Nom de la rubrique.</label>
|
||||||
|
<input class='form-control' type='text' maxlength='".RUBRIQUE_MAX_NOM."' name='nom' id='nom' value=\"".htmlspecialchars($rubrique["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='".RUBRIQUE_MAX_DESCRIPTION."' name='description' id='description' value=\"".htmlspecialchars($rubrique["description"])."\">
|
||||||
|
<p class='help-block'><b>Facultatif</b>.</p>
|
||||||
|
</div>";
|
||||||
|
if($rubrique["reference_ok"]==1)
|
||||||
|
$form_html["champs"].="<div class='form-group'><label class='checkbox-inline'><input type='checkbox' id='reference_ok' name='reference_ok' value='1' checked='checked'> Rubrique de référence pour les abonnements rapides.</label></div>";
|
||||||
|
else
|
||||||
|
$form_html["champs"].="<div class='form-group'><label class='checkbox-inline'><input type='checkbox' id='reference_ok' name='reference_ok' value='1'> Rubrique de référence pour les abonnements rapides.</label></div>";
|
||||||
|
$form_html["champs"].="
|
||||||
|
<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 cette rubrique.</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 cette rubrique, <u>y compris si elle a des dépendances (hubs, abonnements...)</u>.</label></div>
|
||||||
|
<input type='hidden' name='id_rubrique' id='id_rubrique' value='$id_rubrique'>
|
||||||
|
<div id='msg_rubrique'></div>
|
||||||
|
<button type=\"submit\" class=\"btn btn-success btn-lg\">Enregistrer.</button>
|
||||||
|
<p><br><br><a href='".PAGE_MAJ_RUBRIQUES."' title='Saisir une nouvelle rubrique' class='btn btn-info btn-sm'>+ Nouvelle rubrique.</a></p>
|
||||||
|
</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);
|
76
ctrl/admin_rubriques_infos_tests.php
Executable file
76
ctrl/admin_rubriques_infos_tests.php
Executable file
@ -0,0 +1,76 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors de l'enregistrement d'une nouvelle rubrique
|
||||||
|
* ou encore de sa mise à jour
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
if(!empty($_POST["id_rubrique"]))
|
||||||
|
$form["id_rubrique"]=$_POST["id_rubrique"];//utile pour certains tests sur autres attributs de l'objet.
|
||||||
|
$form["nom"]=trim($_POST["nom"]);
|
||||||
|
$form["description"]=trim($_POST["description"]);
|
||||||
|
if(!empty($_POST["reference_ok"]))
|
||||||
|
$form["reference_ok"]=1;
|
||||||
|
else
|
||||||
|
$form["reference_ok"]=0;
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_rubrique.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if(empty($_POST["nom"]))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$auteur=new FclFlux_utilisateur();
|
||||||
|
$auteur->id_utilisateur=$_SESSION["id_utilisateur"];
|
||||||
|
$form["auteur"]=$auteur;
|
||||||
|
if(!empty($_POST["mere_id"]))
|
||||||
|
{
|
||||||
|
$mere=new FclFlux_rubrique();
|
||||||
|
$mere->id_rubrique=$_POST["mere_id"];
|
||||||
|
$form["rubrique_sup"]=$mere;
|
||||||
|
}
|
||||||
|
require_once("../modele/connexion-bd.php");
|
||||||
|
$form["limites"]["nom_long_min"]=RUBRIQUE_MIN_NOM;
|
||||||
|
$form["limites"]["nom_long_max"]=RUBRIQUE_MAX_NOM;
|
||||||
|
$form["limites"]["description_long_max"]=RUBRIQUE_MAX_DESCRIPTION;
|
||||||
|
$rubrique=new FclFlux_rubrique($form);//test les différentes valeurs fournies
|
||||||
|
if(!empty($rubrique->erreurs))
|
||||||
|
$msg_form=array_merge($rubrique->erreurs,$msg_form);
|
||||||
|
if(empty($msg_form))
|
||||||
|
{
|
||||||
|
if(!empty($_POST["id_rubrique"]))
|
||||||
|
{
|
||||||
|
$rubrique->id_rubrique=intval(trim($_POST["id_rubrique"]));
|
||||||
|
$action=$rubrique->actualise();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$action=$rubrique->ajout();
|
||||||
|
if(!empty($rubrique->erreurs))
|
||||||
|
$msg_form=array_merge($rubrique->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
}
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if(($msg_form[0]==MSG_ADMIN_VALID)&&(!empty($rubrique->id_rubrique)))
|
||||||
|
echo $rubrique->id_rubrique;//tout s'est bien passé, je recharge l'abonnement en ajax
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
||||||
|
}
|
35
ctrl/admin_rubriques_maj.php
Executable file
35
ctrl/admin_rubriques_maj.php
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script permettant de chercher une rubrique pour l'afficher
|
||||||
|
* puis éventuellement la modifier / supprimer
|
||||||
|
* on peut aussi saisir une nouvelle rubrique
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_rubrique.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(true,true))
|
||||||
|
{
|
||||||
|
header("Location:".SITE_URL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(isset($_POST["nom"]))
|
||||||
|
{
|
||||||
|
if((empty($_POST["suppr_ok"]))&&(empty($_POST["suppr_ok_tot"])))
|
||||||
|
include("../ctrl/admin_rubriques_infos_tests.php");
|
||||||
|
else
|
||||||
|
include("../ctrl/admin_rubriques_suppr_tests.php");
|
||||||
|
}
|
||||||
|
elseif(isset($_POST["recherche"]))
|
||||||
|
include("../ctrl/admin_rubriques_recherche.php");
|
||||||
|
elseif(!empty($_GET["id_rubrique"]))
|
||||||
|
include("../ctrl/admin_rubriques_affiche.php");
|
||||||
|
else
|
||||||
|
{//formulaire en mode saisie d'une nouvelle rubrique
|
||||||
|
$form["nom"]="";
|
||||||
|
$form["description"]="";
|
||||||
|
$form["reference_ok"]=0;
|
||||||
|
}
|
||||||
|
include("../vues/admin_rubriques_maj.php");
|
||||||
|
}
|
56
ctrl/admin_rubriques_recherche.php
Executable file
56
ctrl/admin_rubriques_recherche.php
Executable file
@ -0,0 +1,56 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script cherchant les rubriques pour une recherche lancée par un administrateur
|
||||||
|
* Les éventuels résultats sont listés pour sélection
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["recherche"]=trim($_POST["recherche"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_rubrique.php");
|
||||||
|
}
|
||||||
|
if(empty($form["recherche"]))
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_UTILISA_CHAMPS_ABSENTS);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_IMPREVUE);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
require_once("../modele/connexion-bd.php");
|
||||||
|
$rubriques=FclFlux_rubrique::recherche_globale($form["recherche"],"id_rubrique,nom");
|
||||||
|
if(!empty($rubriques))
|
||||||
|
{
|
||||||
|
$select="<div class='form-group'>
|
||||||
|
<label for='liste_rubriques'>".count($rubriques)." résultat(s) correspondant</label>
|
||||||
|
<select name='liste_rubriques' id='liste_rubriques' autofocus class='form-control'>
|
||||||
|
<option value='0'></option>";
|
||||||
|
foreach ($rubriques as $rubrique_info)
|
||||||
|
{
|
||||||
|
if(!empty($_POST["get_nb_abos"]))
|
||||||
|
{
|
||||||
|
$rubrique_liste=new FclFlux_rubrique();
|
||||||
|
$rubrique_liste->id_rubrique=$rubrique_info["id_rubrique"];
|
||||||
|
$rubrique_liste_stats=$rubrique_liste->get_stats();
|
||||||
|
$select.="<option value='".$rubrique_info["id_rubrique"]."'>".htmlentities(affiche_utf8($rubrique_info["nom"],UTF8_OK))." (".$rubrique_liste_stats["nb_abo_actifs_indirects"]." abonnés actifs)</option>\n";
|
||||||
|
unset($rubrique_liste);unset($rubrique_liste_stats);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$select.="<option value='".$rubrique_info["id_rubrique"]."'>".htmlentities(affiche_utf8($rubrique_info["nom"],UTF8_OK))."</option>\n";
|
||||||
|
}
|
||||||
|
$select.="</select></div>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_SQL_RECHERCHE);
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($select))&&($ajax_on))
|
||||||
|
echo $select;
|
52
ctrl/admin_rubriques_select.php
Executable file
52
ctrl/admin_rubriques_select.php
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script cherchant les rubriques pour une recherche lancée par un administrateur
|
||||||
|
* en vue de définir la rubrique supérieure
|
||||||
|
* Les éventuels résultats sont listés pour sélection
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["recherche"]=trim($_POST["recherche"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_rubrique.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if(!empty($form["recherche"]))
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$mere_select=get_html_alerte_msg((array) ERREUR_IMPREVUE);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$rubriques=FclFlux_rubrique::recherche_globale($form["recherche"],"id_rubrique,nom");
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($rubriques))
|
||||||
|
{
|
||||||
|
$mere_select=$rubriques;
|
||||||
|
if($ajax_on)
|
||||||
|
{
|
||||||
|
echo "<div class='form-group'>
|
||||||
|
<label for='mere_id'> >> Sélectionnez la rubrique supérieure parmi les ".count($rubriques)." résultat(s).</label>
|
||||||
|
<select name='mere_id' autofocus class='form-control'>";
|
||||||
|
foreach ($rubriques as $rubrique_info)
|
||||||
|
echo "<option value='".$rubrique_info["id_rubrique"]."'>".htmlentities(affiche_utf8($rubrique_info["nom"],UTF8_OK))."</option>\n";
|
||||||
|
echo "</select></div>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(!$ajax_on)
|
||||||
|
$msg_form[]=ERREUR_SQL_RECHERCHE;
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg((array) ERREUR_SQL_RECHERCHE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
50
ctrl/admin_rubriques_suppr_tests.php
Executable file
50
ctrl/admin_rubriques_suppr_tests.php
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors d'une demande de suppression d'une rubrique
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_rubrique.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if((empty($_POST["id_rubrique"]))||(((empty($_POST["suppr_ok"])))&&((empty($_POST["suppr_ok_tot"])))))
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$rubrique=new FclFlux_rubrique();
|
||||||
|
$form["id_rubrique"]=$_POST["id_rubrique"];//utile pour réaffichage si pas en ajax
|
||||||
|
$rubrique->id_rubrique=intval(trim($_POST["id_rubrique"]));
|
||||||
|
if(empty($_POST["suppr_ok_tot"]))
|
||||||
|
$action=$rubrique->supprime();
|
||||||
|
else
|
||||||
|
$action=$rubrique->supprime(false);
|
||||||
|
if(!empty($rubrique->erreurs))
|
||||||
|
$msg_form=array_merge($rubrique->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if($msg_form[0]==MSG_ADMIN_VALID)
|
||||||
|
echo str_replace("'","\"",get_html_alerte_msg($msg_form,"alert-success"));//pour comparaison en JS
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
||||||
|
}
|
26
ctrl/admin_sources_a_valider.php
Executable file
26
ctrl/admin_sources_a_valider.php
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script cherchant si il y a des sites sources à valider, suite à un ajout par un utilisateur.
|
||||||
|
* Si oui elles sont listées pour sélection
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$msg_form=array();
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_IMPREVUE);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$sources=FclFlux_source::get_a_valider();
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($sources))
|
||||||
|
{
|
||||||
|
$select="<div class='form-group'>
|
||||||
|
<label for='liste_sources'>".count($sources)." source(s) à contrôler.</label>
|
||||||
|
<select name='liste_sources' id='liste_sources' autofocus class='form-control'>
|
||||||
|
<option value='0'></option>";
|
||||||
|
foreach ($sources as $source_info)
|
||||||
|
$select.="<option value='".$source_info["id_source"]."'>".htmlentities(affiche_utf8($source_info["nom"],UTF8_OK))."</option>\n";
|
||||||
|
$select.="</select></div>";
|
||||||
|
}
|
||||||
|
}
|
67
ctrl/admin_sources_affiche.php
Executable file
67
ctrl/admin_sources_affiche.php
Executable file
@ -0,0 +1,67 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script affichant un formulaire permettant de modifier / supprimer une source de flux
|
||||||
|
* 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_source.php");
|
||||||
|
}
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$id_source=intval(trim($_GET["id_source"]));
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$source=FclFlux_source::recherche($id_source,"nom,url,description");
|
||||||
|
if(!empty($source))
|
||||||
|
{
|
||||||
|
$form_html["nom"]="Informations de la source n°$id_source.";
|
||||||
|
$stats_txt="";
|
||||||
|
$source_stats=new FclFlux_source();
|
||||||
|
$source_stats->id_source=$id_source;
|
||||||
|
$stats=$source_stats->get_liste_abonnes();
|
||||||
|
$stats["nb_clics"]=$source_stats->get_nb_clics();
|
||||||
|
if(!empty($stats))
|
||||||
|
$stats_txt="<p><strong>Cette source 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>";
|
||||||
|
unset($source_stats);unset($stats);
|
||||||
|
$form_html["champs"]="<form method='post' id='maj_source' name='maj_source' ction='".PAGE_MAJ_SOURCE."?id_source=$id_source' role='form'>
|
||||||
|
$stats_txt
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='designation'>Nom du site.</label>
|
||||||
|
<input class='form-control' type='text' maxlength='".SOURCE_MAX_NOM."' name='designation' id='designation' value=\"".htmlspecialchars($source["nom"])."\" required>
|
||||||
|
<p class='help-block'><b>Obligatoire</b>.</p>
|
||||||
|
</div>
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='url'>Adresse du site.</label>
|
||||||
|
<input class='form-control' type='url' maxlength='".SOURCE_MAX_URL."' name='url' id='url' value=\"".$source["url"]."\" required>
|
||||||
|
<p class='help-block'><b>Obligatoire</b>. <a href=\"".$source["url"]."\" title='Voir le site' class='btn btn-info btn-sm' target='_blank'>Voir le site.</a></p>
|
||||||
|
</div>
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='description'>Description.</label>
|
||||||
|
<input class='form-control' type='text' maxlength='".SOURCE_MAX_DESCRIPTION."' name='description' id='description' value=\"".htmlspecialchars($source["description"])."\">
|
||||||
|
<p class='help-block'><b>Facultatif</b>.</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 cette source.</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 cette source, <u>y compris si elle a des dépendances (flux, abonnements...)</u>.</label></div>
|
||||||
|
<input type='hidden' name='id_source' id='id_source' value='$id_source'>
|
||||||
|
<div id='msg_sources'></div>
|
||||||
|
<button type='submit' class='btn btn-success btn-lg'>Enregistrer.</button>
|
||||||
|
<p><br><a href='".PAGE_MAJ_SOURCE."' title='Saisir une nouvelle source' class='btn btn-info btn-sm'>+ Nouvelle source.</a></p>
|
||||||
|
</fieldset></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);
|
70
ctrl/admin_sources_infos_tests.php
Executable file
70
ctrl/admin_sources_infos_tests.php
Executable file
@ -0,0 +1,70 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors de l'enregistrement d'une nouvelle source de flux
|
||||||
|
* ou encore de sa mise à jour
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["designation"]=trim($_POST["designation"]);
|
||||||
|
$form["url"]=trim($_POST["url"]);
|
||||||
|
$form["description"]=trim($_POST["description"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_source.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if((empty($_POST["designation"]))||(empty($_POST["url"])))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$form["limites"]["designation_long_min"]=SOURCE_MIN_NOM;
|
||||||
|
$form["limites"]["designation_long_max"]=SOURCE_MAX_NOM;
|
||||||
|
$form["limites"]["url_long_max"]=SOURCE_MAX_URL;
|
||||||
|
$form["limites"]["description_long_max"]=SOURCE_MAX_DESCRIPTION;
|
||||||
|
$auteur=new FclFlux_utilisateur();
|
||||||
|
$auteur->id_utilisateur=$_SESSION["id_utilisateur"];
|
||||||
|
$form["auteur"]=$auteur;
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$source=new FclFlux_source($form);
|
||||||
|
if(!empty($source->erreurs))
|
||||||
|
$msg_form=array_merge($source->erreurs,$msg_form);
|
||||||
|
else if(empty($source->get_entetes()))
|
||||||
|
$msg_form[]=ERREUR_LIEN_CONTENU_EXISTE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
{
|
||||||
|
if(!empty($_POST["id_source"]))
|
||||||
|
{
|
||||||
|
$form["id_source"]=$_POST["id_source"];//utile pour réaffichage si pas en ajax
|
||||||
|
$source->id_source=intval(trim($_POST["id_source"]));
|
||||||
|
$action=$source->actualise();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$action=$source->ajout();
|
||||||
|
if(!empty($source->erreurs))
|
||||||
|
$msg_form=array_merge($source->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
}
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if(($msg_form[0]==MSG_ADMIN_VALID)&&(!empty($source->id_source)))
|
||||||
|
echo $source->id_source;//tout s'est bien passé, je recharge les données en ajax
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
||||||
|
}
|
35
ctrl/admin_sources_maj.php
Executable file
35
ctrl/admin_sources_maj.php
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script permettant de chercher une source de flux pour l'afficher
|
||||||
|
* puis éventuellement la modifier / supprimer
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_source.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(true,true))
|
||||||
|
{
|
||||||
|
header("Location:".SITE_URL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
include("../ctrl/admin_sources_a_valider.php");
|
||||||
|
if(isset($_POST["designation"]))
|
||||||
|
{
|
||||||
|
if((empty($_POST["suppr_ok"]))&&(empty($_POST["suppr_ok_tot"])))
|
||||||
|
include("../ctrl/admin_sources_infos_tests.php");
|
||||||
|
else
|
||||||
|
include("../ctrl/admin_sources_suppr_tests.php");
|
||||||
|
}
|
||||||
|
elseif(isset($_POST["recherche"]))//validation d'une recherche
|
||||||
|
include("../ctrl/admin_sources_recherche.php");
|
||||||
|
elseif(!empty($_GET["id_source"]))//id de la source passé par l'url
|
||||||
|
include("../ctrl/admin_sources_affiche.php");
|
||||||
|
else
|
||||||
|
{//formulaire en mode saisie d'une nouvelle source
|
||||||
|
$form["designation"]="";
|
||||||
|
$form["url"]="http://";
|
||||||
|
$form["description"]="";
|
||||||
|
}
|
||||||
|
include("../vues/admin_sources_maj.php");
|
||||||
|
}
|
47
ctrl/admin_sources_recherche.php
Executable file
47
ctrl/admin_sources_recherche.php
Executable file
@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script cherchant les sources pour une recherche lancée par un administrateur
|
||||||
|
* Les éventuels résultats sont listés pour sélection
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["recherche"]=trim($_POST["recherche"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_source.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if(empty($form["recherche"]))
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_UTILISA_CHAMPS_ABSENTS);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_IMPREVUE);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$sources=FclFlux_source::recherche_globale($form["recherche"],"id_source,nom");
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($sources))
|
||||||
|
{
|
||||||
|
$select="<div class='form-group'>
|
||||||
|
<label for='liste_sources'>".count($sources)." résultat(s) correspondant</label>
|
||||||
|
<select name='liste_sources' id='liste_sources' autofocus class='form-control'>
|
||||||
|
<option value='0'></option>";
|
||||||
|
foreach ($sources as $source_info)
|
||||||
|
$select.="<option value='".$source_info["id_source"]."'>".htmlentities(affiche_utf8($source_info["nom"],UTF8_OK))."</option>\n";
|
||||||
|
$select.="</select></div>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$select=get_html_alerte_msg((array) ERREUR_SQL_RECHERCHE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($select))&&($ajax_on))
|
||||||
|
echo $select;
|
50
ctrl/admin_sources_suppr_tests.php
Executable file
50
ctrl/admin_sources_suppr_tests.php
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors d'une demande de suppression d'une source de flux
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_source.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if((empty($_POST["id_source"]))||(((empty($_POST["suppr_ok"])))&&((empty($_POST["suppr_ok_tot"])))))
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($_SESSION["statut"]!="administrateur")
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$source=new FclFlux_source();
|
||||||
|
$form["id_source"]=$_POST["id_source"];//utile pour réaffichage si pas en ajax
|
||||||
|
$source->id_source=intval(trim($_POST["id_source"]));
|
||||||
|
if(empty($_POST["suppr_ok_tot"]))
|
||||||
|
$action=$source->supprime();
|
||||||
|
else
|
||||||
|
$action=$source->supprime(false);
|
||||||
|
if(!empty($source->erreurs))
|
||||||
|
$msg_form=array_merge($source->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_ADMIN_VALID;
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if($msg_form[0]==MSG_ADMIN_VALID)
|
||||||
|
echo str_replace("'","\"",get_html_alerte_msg($msg_form,"alert-success"));//pour comparaison en JS
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
||||||
|
}
|
45
ctrl/admin_stats.php
Executable file
45
ctrl/admin_stats.php
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
/* Page affichants les principales statistiques pour l'administrateur */
|
||||||
|
require_once("../modele/FclFlux_utilisateur.php");
|
||||||
|
// utilisateur connecté ?
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(false,true))
|
||||||
|
{
|
||||||
|
header("Location:".SITE_URL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
|
||||||
|
// +++++++++++++++++++++++++++++++++++++++++ STATS DEPUIS LE DÉBUT +++++++++++++++++++++++++++++++++++++++ //
|
||||||
|
//total
|
||||||
|
$stats_totales=FclFlux_utilisateur::get_stats_utilisateurs(0);
|
||||||
|
if(!empty($stats_totales))
|
||||||
|
{
|
||||||
|
$blabla_stats_tot="<p>En tout, <b>".$stats_totales["nb_comptes"]." comptes</b> utilisateur enregistrés dont <b>".$stats_totales["nb_comptes_valide"]." validés</b>.<br>
|
||||||
|
<b>".$stats_totales["nb_abo"]." abonnements</b> dont <b>".$stats_totales["nb_abo_email"]." par email</b> pour <b>".$stats_totales["nb_abonnes"]." abonnés</b> différents.<br>
|
||||||
|
Il y a actuellement <b>".$stats_totales["nb_fantomes"]." utilisateurs sans abonnement</b> parmi ceux validés, soit <b>".round($stats_totales["nb_fantomes"]/($stats_totales["nb_comptes"]*0.01))." %</b>.<br>
|
||||||
|
Et <b>".$stats_totales["nb_abonnes_desactives"]." abonnés qui ont été désactivés</b> soit <b>".round($stats_totales["nb_abonnes_desactives"]/($stats_totales["nb_comptes"]*0.01))." %</b> de tous les utilisateurs.<br>
|
||||||
|
Il reste <b>".$stats_totales["nb_abonnes_email_6mois"]." abonnés actifs ayant + de 6 mois</b>, soit <b>".round($stats_totales["nb_abonnes_email_6mois"]/($stats_totales["nb_abonnes_6mois"]*0.01))." % des abonnés</b> ou encore <b>".round($stats_totales["nb_abonnes_email_6mois"]/($stats_totales["nb_comptes_6mois"]*0.01))." % des comptes</b>.<br>
|
||||||
|
Et <b>".$stats_totales["nb_abonnes_email_1an"]." abonnés actifs de + de 1 an</b>, soit <b>".round($stats_totales["nb_abonnes_email_1an"]/($stats_totales["nb_abonnes_1an"]*0.01))." % des abonnés</b> ou encore <b>".round($stats_totales["nb_abonnes_email_1an"]/($stats_totales["nb_comptes_1an"]*0.01))." % des comptes</b>.</p>";
|
||||||
|
}
|
||||||
|
// +++++++++++++++++++++++++++++++++++++++++ STATS DES 7 DERNIERS JOURS +++++++++++++++++++++++++++++++++++++++ //
|
||||||
|
$debut=time()-7*24*3600;
|
||||||
|
$stats_semaine=FclFlux_utilisateur::get_stats_utilisateurs($debut);
|
||||||
|
if(!empty($stats_semaine))
|
||||||
|
{
|
||||||
|
$blabla_stats_semaine="<p>Sur cette période, <b>".$stats_semaine["nb_comptes"]." compte(s)</b> et <b>".$stats_semaine["nb_abo"]." abonnements</b> ont été créé(s) pour <b>".$stats_semaine["nb_comptes_suppr"]." comptes supprimé(s)</b>.<br>
|
||||||
|
<b>".$stats_semaine["nb_mail_envoyes"]." mails envoyés à ".$stats_semaine["nb_mail_uniques_envoyes"]." utilisateurs</b> différents, ce qui a généré <b>".$stats_semaine["nb_clics_email"]." clics de ".$stats_semaine["nb_clics_uniques_email"]." utilisateurs</b> différents.<br>
|
||||||
|
Sur le partie web, <b>".$stats_semaine["nb_clics_site"]." clics de ".$stats_semaine["nb_clics_uniques_site"]." utilisateurs</b> différents, soit en tout : <b>".$stats_semaine["nb_clics"]." clics de ".$stats_semaine["nb_clics_uniques"]." utilisateurs</b> différents.</p>";
|
||||||
|
}
|
||||||
|
// +++++++++++++++++++++++++++++++++++++++++ STATS DES 30 DERNIERS JOURS +++++++++++++++++++++++++++++++++++++++ //
|
||||||
|
$debut=time()-30*24*3600;
|
||||||
|
$stats_mois=FclFlux_utilisateur::get_stats_utilisateurs($debut);
|
||||||
|
if(!empty($stats_mois))
|
||||||
|
{
|
||||||
|
$blabla_stats_mois="<p>Sur cette période, <b>".$stats_mois["nb_comptes"]." compte(s)</b> et <b>".$stats_mois["nb_abo"]." abonnements</b> ont été créé(s) pour <b>".$stats_mois["nb_comptes_suppr"]." comptes supprimé(s)</b>.<br>
|
||||||
|
<b>".$stats_mois["nb_mail_envoyes"]." mails envoyés à ".$stats_mois["nb_mail_uniques_envoyes"]." utilisateurs</b> différents, ce qui a généré <b>".$stats_mois["nb_clics_email"]." clics de ".$stats_mois["nb_clics_uniques_email"]." utilisateurs</b> différents.<br>
|
||||||
|
Sur le partie web, <b>".$stats_mois["nb_clics_site"]." clics de ".$stats_mois["nb_clics_uniques_site"]." utilisateurs</b> différents, soit en tout : <b>".$stats_mois["nb_clics"]." clics de ".$stats_mois["nb_clics_uniques"]." utilisateurs</b> différents.</p>";
|
||||||
|
}
|
||||||
|
|
||||||
|
include("../vues/admin_stats.php");
|
48
ctrl/admin_stats_email.php
Executable file
48
ctrl/admin_stats_email.php
Executable file
@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
/* Page affichants les principales statistiques pour l'administrateur */
|
||||||
|
require_once("../modele/FclFlux_utilisateur.php");
|
||||||
|
// utilisateur connecté ?
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(false,true))
|
||||||
|
{
|
||||||
|
header("Location:".SITE_URL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
|
||||||
|
// +++++++++++++++++++++++++++++++++++++++++ STATS PAR FOURNISSEURS D'EMAIL +++++++++++++++++++++++++++++++++++++++ //
|
||||||
|
// le nombre total pour les stats :
|
||||||
|
$stats_totales=FclFlux_utilisateur::get_stats_utilisateurs(0);
|
||||||
|
$nb_min=10;
|
||||||
|
|
||||||
|
$debut=time()-30*24*3600;
|
||||||
|
$stats_email_mois=FclFlux_utilisateur::get_stats_email($debut,0,$nb_min);
|
||||||
|
$stats_comptes_mois=FclFlux_utilisateur::get_stats_utilisateurs($debut);
|
||||||
|
$debut=time()-30*7*3600;
|
||||||
|
$stats_email_hebdo=FclFlux_utilisateur::get_stats_email($debut,0,$nb_min);
|
||||||
|
$stats_comptes_hebdo=FclFlux_utilisateur::get_stats_utilisateurs($debut);
|
||||||
|
|
||||||
|
$stats_email_global=array();
|
||||||
|
if(!empty($stats_email_mois["liste_emails_total"]))
|
||||||
|
{
|
||||||
|
foreach($stats_email_mois["liste_emails_total"] as $stats)
|
||||||
|
$stats_email_global[$stats["ndd"]]["nb_comptes"]=$stats["cpt"];
|
||||||
|
}
|
||||||
|
if(!empty($stats_email_mois["liste_emails_actifs"]))
|
||||||
|
{
|
||||||
|
foreach($stats_email_mois["liste_emails_actifs"] as $stats)
|
||||||
|
$stats_email_global[$stats["ndd"]]["nb_comptes_actifs"]=$stats["cpt"];
|
||||||
|
}
|
||||||
|
if(!empty($stats_email_mois["liste_emails_cliqueur"]))
|
||||||
|
{
|
||||||
|
foreach($stats_email_mois["liste_emails_cliqueur"] as $stats)
|
||||||
|
$stats_email_global[$stats["ndd"]]["nb_cliqueurs_mois"]=$stats["cpt"];
|
||||||
|
}
|
||||||
|
if(!empty($stats_email_hebdo["liste_emails_cliqueur"]))
|
||||||
|
{
|
||||||
|
foreach($stats_email_hebdo["liste_emails_cliqueur"] as $stats)
|
||||||
|
$stats_email_global[$stats["ndd"]]["nb_cliqueurs_hebdo"]=$stats["cpt"];
|
||||||
|
}
|
||||||
|
|
||||||
|
include("../vues/admin_stats_email.php");
|
172
ctrl/compte_abo_affiche.php
Executable file
172
ctrl/compte_abo_affiche.php
Executable file
@ -0,0 +1,172 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script affichant le formulaire permettant de modifier / supprimer un abonnement
|
||||||
|
* 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_abonnement.php");
|
||||||
|
}
|
||||||
|
$form_html="";
|
||||||
|
if(empty($_SESSION["id_utilisateur"]))
|
||||||
|
$form_html=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
$user->id_utilisateur=intval($_SESSION["id_utilisateur"]);
|
||||||
|
$id_abonnement=intval(trim($_GET["id_abonnement"]));
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$tab_infos=FclFlux_abonnement::recherche($id_abonnement,$user,"designation,jours_alerte,heure_alerte,max_liens,ville_insee");
|
||||||
|
$form["designation"]=$tab_infos["designation"];
|
||||||
|
$form["jours_alerte"]=$tab_infos["jours_alerte"];
|
||||||
|
$form["heure_alerte"]=$tab_infos["heure_alerte"];
|
||||||
|
$form["max_liens"]=$tab_infos["max_liens"];
|
||||||
|
$form["ville_insee"]=$tab_infos["ville_insee"];
|
||||||
|
$form["id_abonnement"]=$id_abonnement;
|
||||||
|
$abo=new FclFlux_abonnement();
|
||||||
|
$abo->id_abonnement=$id_abonnement;
|
||||||
|
$hubs_existants=$abo->get_liste_hubs();
|
||||||
|
if(!empty($hubs_existants))
|
||||||
|
{
|
||||||
|
$hubs_actuels=array();$i=0;
|
||||||
|
foreach($hubs_existants as $hub_id)
|
||||||
|
{
|
||||||
|
$hub_cherche=FclFlux_hub::recherche($hub_id["id_hub"],"id_hub","id_hub,nom,description");
|
||||||
|
if(!empty($hub_cherche))
|
||||||
|
{
|
||||||
|
$hubs_actuels[$i]=$hub_cherche;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$hubs_proposes=$abo->get_propose_hubs($hubs_existants);
|
||||||
|
if(!empty($hubs_proposes))
|
||||||
|
{
|
||||||
|
$hubs_nouveaux=array();$i=0;
|
||||||
|
foreach($hubs_proposes as $hub_id)
|
||||||
|
{
|
||||||
|
$hub_cherche=FclFlux_hub::recherche($hub_id["id_hub"],"id_hub","id_hub,nom,description");
|
||||||
|
if(!empty($hub_cherche))
|
||||||
|
{
|
||||||
|
$hubs_nouveaux[$i]=$hub_cherche;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unset($hubs_proposes);
|
||||||
|
}
|
||||||
|
unset($hubs_existants);
|
||||||
|
// abonnement aux actus locales ?
|
||||||
|
if(!empty($form["ville_insee"]))
|
||||||
|
{
|
||||||
|
$ville_infos=get_villes(strval($form["ville_insee"]),"insee");
|
||||||
|
if(empty($ville_infos))
|
||||||
|
$form["ville_insee"]=null;
|
||||||
|
}
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($form))
|
||||||
|
{
|
||||||
|
$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.$id_abonnement."/' 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.$id_abonnement."' 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 ne souhaitez recevoir aucun email, ne laissez coché aucun jour de la semaine.<br>Vous pourrez continuer à consulter votre abonnement sur le 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' 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 de départ pour l'envoi de votre abonnement 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 cet 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"].="<p><input type='hidden' name='id_abonnement' id='id_abonnement' value='".$form["id_abonnement"]."'></form>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($form))&&($ajax_on))
|
||||||
|
echo get_html_form($form,false);
|
39
ctrl/compte_abo_liste.php
Executable file
39
ctrl/compte_abo_liste.php
Executable file
@ -0,0 +1,39 @@
|
|||||||
|
<?php
|
||||||
|
/* Script préparant la page listant les abonnements d'un utilisateur qui doit donc être connecté
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
require_once("../modele/FclFlux_abonnement.php");
|
||||||
|
// utilisateur connecté ?
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(false))
|
||||||
|
{
|
||||||
|
unset($user);
|
||||||
|
$redirige=PAGE_ABO_LISTE;
|
||||||
|
FclFlux_utilisateur::crea_cookie_redirection($redirige,1);
|
||||||
|
header("Location:".PAGE_CONNEXION);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
// liste des abonnements enregistrés pour cet utilisateur
|
||||||
|
$abos=FclFlux_abonnement::get_liste_abo_cache($user,true);//force la création du cache
|
||||||
|
if(empty($abos))
|
||||||
|
{
|
||||||
|
$_SESSION["message"]="Vous n'avez aucun abonnement pour l'instant mais vous pouvez créer le 1er en quelques instants ci-dessous.";
|
||||||
|
header("location:".PAGE_REPERTOIRE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$mes_abos=array();$i=0;
|
||||||
|
foreach($abos as $abo_infos)
|
||||||
|
{
|
||||||
|
$mes_abos[$i]=$abo_infos;
|
||||||
|
$abo=new FclFlux_abonnement();
|
||||||
|
$abo->id_abonnement=$abo_infos["id_abonnement"];
|
||||||
|
$hubs=$abo->get_liste_hubs_cache(CREA_CACHE);
|
||||||
|
if(!empty($hubs))
|
||||||
|
$mes_abos[$i]["hubs"]=$hubs;
|
||||||
|
unset($abo);
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
include("../vues/compte_abo_liste.php");
|
97
ctrl/compte_abo_maj.php
Executable file
97
ctrl/compte_abo_maj.php
Executable file
@ -0,0 +1,97 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script affichant les informations d'un abonnement dans un formulaire pour enregistrer une mise à jour ou le suppprimer
|
||||||
|
* Données concernées : désignation de l'abonnement, jours & horaires de l'envoi, liste des hubs concernés, nombre maximum de lien et ville principale si abonnement aux actualités locales.
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_abonnement.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if((!empty($page[3]))&&(!empty($page[4])))
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$user->crea_session_lien_abo($page[3],$page[4]);
|
||||||
|
if(!empty($user->connexion_ok))
|
||||||
|
{
|
||||||
|
header("Location:".PAGE_ABO_MAJ.$page[2]);// évite de garder les paramètres de connexion dans l'url.
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!$user->test_session(false))
|
||||||
|
{
|
||||||
|
unset($user);
|
||||||
|
$redirige=PAGE_ABO_MAJ.$page[2];
|
||||||
|
FclFlux_utilisateur::crea_cookie_redirection($redirige,1);
|
||||||
|
header("Location:".PAGE_CONNEXION);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(isset($_POST["designation"]))
|
||||||
|
include("../ctrl/compte_abo_maj_tests.php");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$abo_infos=FclFlux_abonnement::recherche(intval($page[2]),$user,"id_abonnement,designation,jours_alerte,heure_alerte,max_liens,ville_insee");
|
||||||
|
if(!empty($abo_infos["designation"]))
|
||||||
|
{
|
||||||
|
$form["designation"]=$abo_infos["designation"];
|
||||||
|
$form["jours_alerte"]=$abo_infos["jours_alerte"];
|
||||||
|
$form["heure_alerte"]=$abo_infos["heure_alerte"];
|
||||||
|
$form["id_abonnement"]=$abo_infos["id_abonnement"];
|
||||||
|
$form["max_liens"]=$abo_infos["max_liens"];
|
||||||
|
$form["ville_insee"]=$abo_infos["ville_insee"];
|
||||||
|
$abo=new FclFlux_abonnement();
|
||||||
|
$abo->id_abonnement=$abo_infos["id_abonnement"];
|
||||||
|
$hubs_existants=$abo->get_liste_hubs();
|
||||||
|
if(!empty($hubs_existants))
|
||||||
|
{
|
||||||
|
$hubs_actuels=array();$i=0;
|
||||||
|
foreach($hubs_existants as $hub_id)
|
||||||
|
{
|
||||||
|
$hub_cherche=FclFlux_hub::recherche($hub_id["id_hub"],"id_hub","id_hub,nom,description");
|
||||||
|
if(!empty($hub_cherche))
|
||||||
|
{
|
||||||
|
$hubs_actuels[$i]=$hub_cherche;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$hubs_proposes=$abo->get_propose_hubs($hubs_existants);
|
||||||
|
if(!empty($hubs_proposes))
|
||||||
|
{
|
||||||
|
$hubs_nouveaux=array();$i=0;
|
||||||
|
foreach($hubs_proposes as $hub_id)
|
||||||
|
{
|
||||||
|
$hub_cherche=FclFlux_hub::recherche($hub_id["id_hub"],"id_hub","id_hub,nom,description");
|
||||||
|
if(!empty($hub_cherche))
|
||||||
|
{
|
||||||
|
$hubs_nouveaux[$i]=$hub_cherche;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unset($hubs_existants);
|
||||||
|
unset($hubs_proposes);
|
||||||
|
// abonnement aux actus locales ?
|
||||||
|
if(!empty($form["ville_insee"]))
|
||||||
|
{
|
||||||
|
$ville_infos=get_villes(strval($form["ville_insee"]),"insee");
|
||||||
|
if(empty($ville_infos))
|
||||||
|
$form["ville_insee"]=null;
|
||||||
|
}
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{//j'ai essayé d'afficher un abonnement n'existant pas/plus ou ne m'appartenant pas
|
||||||
|
$Bd=null;
|
||||||
|
$user->supprime_session();
|
||||||
|
unset($user);
|
||||||
|
header("Location:".SITE_URL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//formulaire d'inscription
|
||||||
|
include("../vues/compte_abo_maj.php");
|
||||||
|
}
|
143
ctrl/compte_abo_maj_tests.php
Executable file
143
ctrl/compte_abo_maj_tests.php
Executable file
@ -0,0 +1,143 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors d'une demande de mise à jour / suppression d'un abonnement
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["id_abonnement"]=intval($_POST["id_abonnement"]);
|
||||||
|
$form["designation"]=trim($_POST["designation"]);
|
||||||
|
$form["jours_alerte"]="";
|
||||||
|
if(!empty($_POST["jours_alerte"]))
|
||||||
|
$form["jours_alerte"]=implode(",",$_POST["jours_alerte"]);
|
||||||
|
$form["heure_alerte"]="";
|
||||||
|
if(!empty($_POST["heure_alerte"]))
|
||||||
|
$form["heure_alerte"]=$_POST["heure_alerte"];
|
||||||
|
if(isset($_POST["max_liens"]))
|
||||||
|
$form["max_liens"]=intval($_POST["max_liens"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_abonnement.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if((empty($_SESSION["id_utilisateur"]))||(empty($form["id_abonnement"])))
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
elseif(!empty($_POST["abo_suppr"]))
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
$user->id_utilisateur=$_SESSION["id_utilisateur"];
|
||||||
|
$form["proprietaire"]=$user;
|
||||||
|
$abo_suppr=new FclFlux_abonnement($form);
|
||||||
|
if(empty($abo_suppr->erreurs))
|
||||||
|
{
|
||||||
|
$suppr=$abo_suppr->supprime();
|
||||||
|
if(!empty($abo_suppr->erreurs))
|
||||||
|
$msg_form=array_merge($abo_suppr->erreurs,$msg_form);
|
||||||
|
elseif($suppr===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$_SESSION["message"]=MSG_UTILISA_MAJ_SUPPR_VALID;
|
||||||
|
if($ajax_on)
|
||||||
|
$msg_form[]=MSG_UTILISA_MAJ_SUPPR_VALID;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
header("location:".PAGE_ABO_LISTE);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif((empty($_POST["designation"]))||(empty($form["max_liens"])))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
$user->id_utilisateur=$_SESSION["id_utilisateur"];
|
||||||
|
$form["proprietaire"]=$user;
|
||||||
|
$abo_maj=new FclFlux_abonnement($form);
|
||||||
|
if(!empty($abo_maj->erreurs))
|
||||||
|
$msg_form=array_merge($abo_maj->erreurs,$msg_form);
|
||||||
|
//suppression des hubs / abonnement
|
||||||
|
if((empty($msg_form))&&(!empty($_POST["hubs_suppr"])))
|
||||||
|
{
|
||||||
|
$liste_hubs=array();$i=0;
|
||||||
|
foreach($_POST["hubs_suppr"] as $hub_id)
|
||||||
|
{
|
||||||
|
$hub_suppr=new FclFlux_hub();
|
||||||
|
$hub_suppr->id_hub=$hub_id;
|
||||||
|
$liste_hubs[$i]=$hub_suppr;
|
||||||
|
unset($hub_suppr);
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
if($i>0)
|
||||||
|
{
|
||||||
|
$action=$abo_maj->supprime_hubs($liste_hubs);
|
||||||
|
if(!empty($abo_maj->erreurs))
|
||||||
|
$msg_form=array_merge($abo_maj->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//ajout hub / abonnement
|
||||||
|
if((empty($msg_form))&&(empty($abo_maj->erreurs))&&(!empty($_POST["hubs_ajout"])))
|
||||||
|
{
|
||||||
|
$liste_hubs=array();$i=0;
|
||||||
|
foreach($_POST["hubs_ajout"] as $hub_id)
|
||||||
|
{
|
||||||
|
$hub_ajout=new FclFlux_hub();
|
||||||
|
$hub_ajout->id_hub=$hub_id;
|
||||||
|
$liste_hubs[$i]=$hub_ajout;
|
||||||
|
unset($hub_ajout);
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
if($i>0)
|
||||||
|
{
|
||||||
|
$action=$abo_maj->ajout_hubs($liste_hubs);
|
||||||
|
if(!empty($abo_maj->erreurs))
|
||||||
|
$msg_form=array_merge($abo_maj->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//changement de ville ?
|
||||||
|
if((empty($msg_form))&&(empty($abo_maj->erreurs))&&(!empty($_POST["insee"]))&&($_POST["a_insee"]!=$_POST["insee"]))
|
||||||
|
{
|
||||||
|
$abo_maj->set_ville_insee($_POST["insee"]);
|
||||||
|
$chgt_ville=$abo_maj->abo_rapide_nouvelle_ville($_POST["insee"],$user);
|
||||||
|
if(!empty($abo_maj->erreurs))
|
||||||
|
$msg_form=array_merge($abo_maj->erreurs,$msg_form);
|
||||||
|
elseif($chgt_ville===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
}
|
||||||
|
// les autres infos.
|
||||||
|
if((empty($msg_form))&&(empty($abo_maj->erreurs)))
|
||||||
|
{
|
||||||
|
$maj=$abo_maj->actualise();
|
||||||
|
if(!empty($abo_maj->erreurs))
|
||||||
|
$msg_form=array_merge($abo_maj->erreurs,$msg_form);
|
||||||
|
elseif($maj===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
}
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_UTILISA_MAJ_INFOS_VALID;
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if(($msg_form[0]==MSG_UTILISA_MAJ_INFOS_VALID)&&(!empty($abo_maj->id_abonnement)))
|
||||||
|
echo $abo_maj->id_abonnement;//tout s'est bien passé, je recharge l'abonnement en ajax
|
||||||
|
elseif($msg_form[0]==MSG_UTILISA_MAJ_SUPPR_VALID)
|
||||||
|
echo str_replace("\"","'",MSG_UTILISA_MAJ_SUPPR_VALID);//pour comparaison en JS
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
||||||
|
}
|
49
ctrl/compte_abo_voir.php
Executable file
49
ctrl/compte_abo_voir.php
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
/* Page affichant les derniers liens pour l'abonnement d'un utilisateur
|
||||||
|
* l'id de l'abonnement étant passé par l'url
|
||||||
|
*/
|
||||||
|
require_once("../modele/FclFlux_abonnement.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if((!empty($page[3]))&&(!empty($page[4])))
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$user->crea_session_lien_abo($page[3],$page[4]);
|
||||||
|
if(!empty($user->connexion_ok))
|
||||||
|
{
|
||||||
|
header("Location:".PAGE_ABO_AFFICHE.$page[2]);//évite de garder les paramètres de connexion dans l'url
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!$user->test_session(false))
|
||||||
|
{
|
||||||
|
unset($user);
|
||||||
|
$redirige=PAGE_ABO_AFFICHE.$page[2];
|
||||||
|
FclFlux_utilisateur::crea_cookie_redirection($redirige,1);
|
||||||
|
header("Location:".PAGE_CONNEXION);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
// infos de l'abonnement + derniers liens importés
|
||||||
|
$abo=new FclFlux_abonnement();
|
||||||
|
$abo->id_abonnement=intval($page[2]);
|
||||||
|
$abo_infos=$abo->get_infos_cache(true);
|
||||||
|
if(empty($abo_infos)||($abo_infos["auteur_id"]!=$_SESSION["id_utilisateur"]))
|
||||||
|
{
|
||||||
|
$_SESSION["message"]="Vous avez essayé de vous connecter à une page n'existant plus ou à laquelle vous n'avez pas le droit d'accéder.";
|
||||||
|
unset($abo);
|
||||||
|
header("location:".PAGE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if((!empty($page[3])&&($page[3]=="S")))
|
||||||
|
$liens_abo=$abo->get_liste_posts_cache(true,"semaine");
|
||||||
|
elseif(!empty($page[3]))
|
||||||
|
{//petit malin, n'ira pas bien loin :-)
|
||||||
|
header("location:".PAGE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$liens_abo=$abo->get_liste_posts_cache(true);//par défaut, les liens des dernières 24H
|
||||||
|
include("../vues/compte_abo_voir.php");
|
||||||
|
}
|
91
ctrl/compte_absences_affiche.php
Executable file
91
ctrl/compte_absences_affiche.php
Executable file
@ -0,0 +1,91 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script affichant le formulaire permettant de modifier / supprimer une période d'absence
|
||||||
|
* 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"]))&&(!empty($_GET["id_periode"])))
|
||||||
|
{
|
||||||
|
$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_absences.php");
|
||||||
|
$id_periode=intval(trim($_GET["id_periode"]));
|
||||||
|
}
|
||||||
|
elseif(!empty($page[2]))
|
||||||
|
$id_periode=intval(trim($page[2]));
|
||||||
|
else
|
||||||
|
$form_html=ERREUR_IMPREVUE;
|
||||||
|
$form_html="";
|
||||||
|
if(empty($_SESSION["id_utilisateur"]))
|
||||||
|
$form_html=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
$user->id_utilisateur=intval($_SESSION["id_utilisateur"]);
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$tab_infos=FclFlux_absences::recherche($id_periode,$user,"designation,time_debut,time_fin");
|
||||||
|
$form["designation"]=$tab_infos["designation"];
|
||||||
|
$form["time_debut"]=$tab_infos["time_debut"];
|
||||||
|
$form["time_fin"]=$tab_infos["time_fin"];
|
||||||
|
$form["id_periode"]=$id_periode;
|
||||||
|
//liste des abonnements du gus pour pouvoir sélectionner ceux concernés par cette période d'absence.
|
||||||
|
$abos=FclFlux_abonnement::get_liste_abo_cache($user,true);
|
||||||
|
//ceux déjà sélectionnés par l'utilisateur
|
||||||
|
$preselection="";
|
||||||
|
$periode=new FclFlux_absences($form);
|
||||||
|
$abos_selection=$periode->get_liste_abonnements();
|
||||||
|
if(!empty($abos_selection))
|
||||||
|
$preselection=";".implode(";",$abos_selection).";";
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($form))
|
||||||
|
{
|
||||||
|
$date_exemple=date("d/m/Y");
|
||||||
|
$form["nom"]="Votre période d'absence.";
|
||||||
|
$form["champs"]="<form method='post' id='maj_periode' action='".PAGE_ABSENCE_MAJ.$id_periode."' 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='".AGENDA_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>
|
||||||
|
<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",$form["time_debut"])."\" required></div>
|
||||||
|
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire</b>. Le jour où vos abonnements s'arrêteront. Exemple : $date_exemple.</p></div>
|
||||||
|
</div>
|
||||||
|
<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",$form["time_fin"])."\" required></div>
|
||||||
|
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire</b>. Le jour où vos abonnements reprendront. Date forcément postérieure à celle de début.</p></div>
|
||||||
|
</div>";
|
||||||
|
if(!empty($abos))
|
||||||
|
{
|
||||||
|
$form["champs"].="<div class='form-group'><div class='col-sm-offset-2 col-sm-9'><label for='abo_concerne[]'>Durant cette période, je ne souhaite plus recevoir les actualités de :</label><ul>";
|
||||||
|
foreach($abos as $abo_infos)
|
||||||
|
{
|
||||||
|
if(strpos($preselection,";".$abo_infos["id_abonnement"].";")!==false)
|
||||||
|
$form["champs"].="<li><input type='checkbox' name='abo_concerne[]' value='".$abo_infos["id_abonnement"]."' checked='checked'> <b>".$abo_infos["designation"]."</b></li>";
|
||||||
|
else
|
||||||
|
$form["champs"].="<li><input type='checkbox' name='abo_concerne[]' value='".$abo_infos["id_abonnement"]."'> <b>".$abo_infos["designation"]."</b></li>";
|
||||||
|
}
|
||||||
|
$form["champs"].="</ul></div></div>";
|
||||||
|
}
|
||||||
|
$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='periode_suppr' id='periode_suppr' value='1'> Je souhaite supprimer cette période d'absence.
|
||||||
|
</label>
|
||||||
|
</div></div></div>
|
||||||
|
<div id='msg_periode'></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>";
|
||||||
|
$form["champs"].="<p><input type='hidden' name='id_periode' id='id_periode' value='".$form["id_periode"]."'></form>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($form))&&($ajax_on))
|
||||||
|
echo get_html_form($form,false);
|
110
ctrl/compte_absences_infos_tests.php
Executable file
110
ctrl/compte_absences_infos_tests.php
Executable file
@ -0,0 +1,110 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors d'une demande de création / mise à jour / suppression d'une période d'absence.
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["designation"]=trim($_POST["designation"]);
|
||||||
|
$form["time_debut"]=trim($_POST["time_debut"]);
|
||||||
|
$form["time_fin"]=trim($_POST["time_fin"]);
|
||||||
|
if(!empty($_POST["id_periode"]))
|
||||||
|
$form["id_periode"]=intval($_POST["id_periode"]);//sinon c'est que j'enregistre une nouvelle période
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_absences.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if(empty($_SESSION["id_utilisateur"]))
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
elseif(!empty($_POST["periode_suppr"]))
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
$user->id_utilisateur=$_SESSION["id_utilisateur"];
|
||||||
|
$form["proprietaire"]=$user;
|
||||||
|
$periode_suppr=new FclFlux_absences($form);
|
||||||
|
if((empty($msg_form))&&(empty($periode_suppr->erreurs)))
|
||||||
|
{
|
||||||
|
$suppr=$periode_suppr->supprime();
|
||||||
|
if(!empty($periode_suppr->erreurs))
|
||||||
|
$msg_form=array_merge($periode_suppr->erreurs,$msg_form);
|
||||||
|
elseif($suppr===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$_SESSION["message"]=MSG_UTILISA_MAJ_SUPPR_VALID;
|
||||||
|
if($ajax_on)
|
||||||
|
$msg_form[]=MSG_UTILISA_MAJ_SUPPR_VALID;//c'est js qui provoquera la redirection
|
||||||
|
else
|
||||||
|
{
|
||||||
|
header("location:".PAGE_ABSENCES_LISTE);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif((empty($form["designation"]))||(empty($form["time_debut"]))||(empty($form["time_fin"])))
|
||||||
|
{
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
$user->id_utilisateur=$_SESSION["id_utilisateur"];
|
||||||
|
$form["proprietaire"]=$user;
|
||||||
|
$periode=new FclFlux_absences($form);
|
||||||
|
if((empty($msg_form))&&(empty($periode->erreurs)))
|
||||||
|
{
|
||||||
|
if(!empty($form["id_periode"]))
|
||||||
|
$action=$periode->actualise();
|
||||||
|
else
|
||||||
|
$action=$periode->ajout();
|
||||||
|
if(!empty($periode->erreurs))
|
||||||
|
$msg_form=array_merge($periode->erreurs,$msg_form);
|
||||||
|
elseif($periode===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
}
|
||||||
|
//actualisation des abonnements concernés par cette période d'absence
|
||||||
|
if((empty($msg_form))&&(empty($action->erreurs))&&(!empty($_POST["abo_concerne"])))
|
||||||
|
{
|
||||||
|
$liste_abos=array();$i=0;
|
||||||
|
foreach($_POST["abo_concerne"] as $abo_id)
|
||||||
|
{
|
||||||
|
$abo_concerne=new FclFlux_abonnement();
|
||||||
|
$abo_concerne->id_abonnement=$abo_id;
|
||||||
|
$liste_abos[$i]=$abo_concerne;
|
||||||
|
unset($abo_concerne);
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
if($i>0)
|
||||||
|
{
|
||||||
|
$action=$periode->set_liste_abonnements($liste_abos);
|
||||||
|
if(!empty($periode->erreurs))
|
||||||
|
$msg_form=array_merge($periode->erreurs,$msg_form);
|
||||||
|
elseif($action===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_UTILISA_MAJ_INFOS_VALID;
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if(($msg_form[0]==MSG_UTILISA_MAJ_INFOS_VALID)&&(!empty($periode->id_periode)))
|
||||||
|
echo $periode->id_periode;//tout s'est bien passé, je recharge l'abonnement en ajax
|
||||||
|
elseif($msg_form[0]==MSG_UTILISA_MAJ_SUPPR_VALID)
|
||||||
|
echo str_replace("\"","'",MSG_UTILISA_MAJ_SUPPR_VALID);//pour comparaison et redirection en JS
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
||||||
|
}
|
35
ctrl/compte_absences_liste.php
Executable file
35
ctrl/compte_absences_liste.php
Executable file
@ -0,0 +1,35 @@
|
|||||||
|
<?php
|
||||||
|
/* Script préparant la page listant les périodes d'absences enregistrées par un utilisateur qui doit donc être connecté
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
require_once("../modele/FclFlux_absences.php");
|
||||||
|
// utilisateur connecté ?
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(false))
|
||||||
|
{
|
||||||
|
unset($user);
|
||||||
|
$redirige=PAGE_ABSENCES_LISTE;
|
||||||
|
FclFlux_utilisateur::crea_cookie_redirection($redirige,1);
|
||||||
|
header("Location:".PAGE_CONNEXION);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
// liste des abonnements enregistrés pour cet utilisateur
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$periodes=FclFlux_absences::get_liste_utilisateur($user);
|
||||||
|
if(!empty($periodes))
|
||||||
|
{
|
||||||
|
$mes_periodes=array();$i=0;
|
||||||
|
foreach($periodes as $periode_infos)
|
||||||
|
{
|
||||||
|
$mes_periodes[$i]=$periode_infos;
|
||||||
|
$periode=new FclFlux_absences();
|
||||||
|
$periode->id_periode=$periode_infos["id_periode"];
|
||||||
|
$abos=$periode->get_liste_abonnements(true);
|
||||||
|
if(!empty($abos))
|
||||||
|
$mes_periodes[$i]["abos"]=$abos;
|
||||||
|
unset($periode);
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
include("../vues/compte_absences_liste.php");
|
30
ctrl/compte_absences_maj.php
Executable file
30
ctrl/compte_absences_maj.php
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script permettant à un utilisateur d'ajouter
|
||||||
|
* ou encore modifier / supprimer une de ses périodes d'absence
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_absences.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(false))
|
||||||
|
{
|
||||||
|
header("Location:".SITE_URL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(isset($_POST["designation"]))
|
||||||
|
include("../ctrl/compte_absences_infos_tests.php");
|
||||||
|
elseif(!empty($page[2]))
|
||||||
|
include("../ctrl/compte_absences_affiche.php");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//formulaire en mode saisie d'un nouveau flux
|
||||||
|
$form["designation"]="";
|
||||||
|
$form["time_debut"]="";
|
||||||
|
$form["time_fin"]="";
|
||||||
|
//liste des abonnements du gus pour pouvoir sélectionner ceux concernés par cette période d'absence.
|
||||||
|
$abos=FclFlux_abonnement::get_liste_abo_cache($user,true);
|
||||||
|
}
|
||||||
|
include("../vues/compte_absences_maj.php");
|
||||||
|
}
|
76
ctrl/compte_connect_tests.php
Executable file
76
ctrl/compte_connect_tests.php
Executable file
@ -0,0 +1,76 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors de la tentative de connexion d'un utilisateur
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["email"]=trim($_POST["email"]);
|
||||||
|
if(!empty($_POST["passe"]))
|
||||||
|
$form["passe"]=trim($_POST["passe"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_utilisateur.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if(empty($form["email"])||(empty($form["passe"])&&(empty($_POST["passe_nok"]))))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if((empty($_SESSION["Nb_tentatives"]))||($_SESSION["Nb_tentatives"]>FORM_CONNEXION_MAX_TENTATIVES)||(empty($_SESSION["timeS"]))||((time()-intval($_SESSION["timeS"]))<FORM_MIN_DUREE))
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$persistence_ok=false;
|
||||||
|
if(!empty($_POST["persistence_ok"]))
|
||||||
|
$persistence_ok=true;
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$user=new FclFlux_utilisateur($form);
|
||||||
|
if((empty($msg_form))&&(empty($user->erreurs)))
|
||||||
|
{
|
||||||
|
if(empty($_POST["passe_nok"]))
|
||||||
|
$conn=$user->test_connexion($persistence_ok);
|
||||||
|
else
|
||||||
|
$conn=$user->get_lien_connexion($persistence_ok);
|
||||||
|
}
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($user->erreurs))
|
||||||
|
$msg_form=array_merge($user->erreurs,$msg_form);
|
||||||
|
elseif($conn===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
{
|
||||||
|
unset($_SESSION["Nb_tentatives"]);
|
||||||
|
if((empty($_POST["passe_nok"]))&&(!$ajax_on))
|
||||||
|
{
|
||||||
|
// si l'utilisateur connecté et a un cookie de redirection
|
||||||
|
// je le redirige vers la page qui l'intéressait avant connexion
|
||||||
|
$redirige=PAGE_ACCUEIL;
|
||||||
|
if(!empty($_COOKIE["rdg"]))
|
||||||
|
{
|
||||||
|
if(strpos($_COOKIE["rdg"],SITE_COOKIES_DOMAINE)===false)
|
||||||
|
$redirige=$_COOKIE["rdg"];
|
||||||
|
//dans tous les cas, je mange mon cookie :-)
|
||||||
|
setcookie("rdg","",-1600,"/",SITE_COOKIES_DOMAINE);
|
||||||
|
}
|
||||||
|
header("location:".$redirige);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
elseif(!empty($_POST["passe_nok"]))
|
||||||
|
$msg_form[]=MSG_UTILISA_GET_LIEN_CONNEXION_OK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if($msg_form[0]==MSG_UTILISA_GET_LIEN_CONNEXION_OK)
|
||||||
|
echo get_html_alerte_msg($msg_form,"alert-success");
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
||||||
|
}
|
95
ctrl/compte_crea_abo_hub.php
Executable file
95
ctrl/compte_crea_abo_hub.php
Executable file
@ -0,0 +1,95 @@
|
|||||||
|
<?php
|
||||||
|
/* Script appelé lorsqu'un internaute souhaite s'abonner à un hub
|
||||||
|
* Le hub peut être ajouté à un abonnement existant ou servir à créer un nouvel abonnement
|
||||||
|
* L'utilisateur doit être connecté.
|
||||||
|
* Si ce n'est pas le cas, je stocke dans un cookie de courte durée l'adresse de la page et l'y ramène après connexion / création compte
|
||||||
|
* L'utilisateur peut aussi arriver sur cette page via le formulaire d'inscription d'un site tiers. Un email peut alors avoir été fourni.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
require_once("../modele/FclFlux_abonnement.php");
|
||||||
|
//on commence par vérifier que le hub existe...
|
||||||
|
$hub=new FclFlux_hub();
|
||||||
|
$hub->id_hub=$page[2];
|
||||||
|
$hub_infos=$hub->get_infos_cache(false);
|
||||||
|
if(empty($hub_infos))
|
||||||
|
{
|
||||||
|
header("location:".PAGE_404);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
//utilisateur connecté ?
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(false))
|
||||||
|
{
|
||||||
|
unset($user);
|
||||||
|
$redirige=PAGE_ABO_CREA_HUB.intval($page[2]);
|
||||||
|
FclFlux_utilisateur::crea_cookie_redirection($redirige,2);
|
||||||
|
$_SESSION["hub_abo"]=$hub_infos["nom"];
|
||||||
|
if(!empty($_POST["email_abo"]))
|
||||||
|
{
|
||||||
|
$_SESSION["email_abo"]=trim(strip_tags($_POST["email_abo"]));
|
||||||
|
//je cherche si un abonné existe déjà pour cette adresse
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$cherche_email=FclFlux_utilisateur::recherche($_POST["email_abo"],"email","id_utilisateur");
|
||||||
|
if(!empty($cherche_email))
|
||||||
|
{
|
||||||
|
unset($Bd);
|
||||||
|
header("Location:".PAGE_CONNEXION);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
unset($Bd);
|
||||||
|
}
|
||||||
|
header("Location:".PAGE_INSCRIPTION);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
//les rubriques "mères" pour le fil d'ariane
|
||||||
|
$meres=$hub->get_liste_rubriques_cache(CREA_CACHE);
|
||||||
|
// liste des abonnements existants à proposer
|
||||||
|
$liste_abo="";
|
||||||
|
$abos=FclFlux_abonnement::get_liste_abo_cache($user,CREA_CACHE);
|
||||||
|
if(!empty($abos))
|
||||||
|
{
|
||||||
|
foreach ($abos as $abo_info)
|
||||||
|
$liste_abo.="<input type='radio' name='abo' value=\"".$abo_info["id_abonnement"]."\"> ".affiche_utf8(htmlentities($abo_info["designation"],ENT_QUOTES),UTF8_OK)." ";
|
||||||
|
}
|
||||||
|
//l'utilisateur à valider le formulaire
|
||||||
|
if(isset($_POST["nouvel_abo"]))//pour ne pas confondre avec l'arrivée du site tiers
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
if(!empty($_POST["abo"]))
|
||||||
|
{
|
||||||
|
//ajout d'un hub à un abonnement existant
|
||||||
|
$abo=new FclFlux_abonnement();
|
||||||
|
$abo->id_abonnement=intval($_POST["abo"]);
|
||||||
|
$action=$abo->ajout_hubs(array($hub));
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//je vais créé un nouvel abonnement et lui associer ce hub
|
||||||
|
if(!empty($_POST["nouvel_abo"]))
|
||||||
|
$infos["designation"]=$_POST["nouvel_abo"];
|
||||||
|
else
|
||||||
|
$infos["designation"]="Nouvel abonnement.";
|
||||||
|
$infos["proprietaire"]=$user;
|
||||||
|
$abo=new FclFlux_abonnement($infos);
|
||||||
|
$action=$abo->ajout();
|
||||||
|
if($action!==false)
|
||||||
|
$action=$abo->ajout_hubs(array($hub));
|
||||||
|
}
|
||||||
|
$Bd=null;
|
||||||
|
if((!$action)||(!empty($abo->erreurs)))
|
||||||
|
{
|
||||||
|
$_SESSION["message"]=ERREUR_IMPREVUE;
|
||||||
|
header("location:".PAGE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$_SESSION["message"]="Votre nouvel abonnement a bien été créé !";
|
||||||
|
header("location:".PAGE_ABO_AFFICHE.$abo->id_abonnement);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
include("../vues/compte_crea_abo_hub.php");
|
101
ctrl/compte_crea_abo_nouveau_flux.php
Executable file
101
ctrl/compte_crea_abo_nouveau_flux.php
Executable file
@ -0,0 +1,101 @@
|
|||||||
|
<?php
|
||||||
|
/* Script appelé lorsqu'un internaute souhaite s'abonner à un flux non encore enregisté dans l'annuaire ce qui passe par la création d'un hub.
|
||||||
|
* Ce hub peut ensuite être ajouté à un abonnement existant ou servir à créer un nouvel abonnement
|
||||||
|
* L'utilisateur doit être connecté.
|
||||||
|
* Le flux est contrôlé avant de l'enregistrer.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
require_once("../modele/FclFlux_abonnement.php");
|
||||||
|
// un utilisateur non connecté n'a rien à faire sur cette page.
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(false))
|
||||||
|
{
|
||||||
|
header("location:".PAGE_404);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
// on commence par vérifier que le flux existe...
|
||||||
|
// encodage du mot-clés saute avec certains navigateurs :
|
||||||
|
if(strpos($page[3],"%")===false)
|
||||||
|
$get=urlencode($page[3]);
|
||||||
|
else
|
||||||
|
$get=$page[3];
|
||||||
|
// on peut recevoir soit une url, soit un mot-clés si Google news
|
||||||
|
if(strpos($page[3],"http")===false)//google
|
||||||
|
//$flux_get="https://news.google.com/news/feeds?pz=1&cf=all&ned=fr&hl=fr&q=$get&output=rss";
|
||||||
|
$flux_get="https://news.google.com/news/rss/search/section/q/$get/$get?&hl=fr&gl=fr&scoring=n&num=20";
|
||||||
|
else
|
||||||
|
$flux_get=str_replace("éé","&",str_replace("ùù","/",urldecode($get)));
|
||||||
|
if(!filter_var($flux_get,FILTER_VALIDATE_URL))
|
||||||
|
{
|
||||||
|
$_SESSION["message"]=ERREUR_IMPREVUE;
|
||||||
|
header("location:".PAGE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
//test lecture et récup infos du flux
|
||||||
|
$max["url_long_max"]=FLUX_MAX_URL;
|
||||||
|
$flux=new FclFlux_flux();
|
||||||
|
$flux->limites=$max;
|
||||||
|
$flux->set_url($flux_get);
|
||||||
|
$flux_infos=$flux->get_infos_entete();
|
||||||
|
$flux_lecture=$flux->lecture(3,false);
|
||||||
|
if((empty($flux_infos))||(empty($flux_lecture)))
|
||||||
|
{
|
||||||
|
$_SESSION["message"]=ERREUR_IMPREVUE;
|
||||||
|
header("location:".PAGE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$test=$flux->set_auteur($user);
|
||||||
|
if($test===false)
|
||||||
|
{
|
||||||
|
$_SESSION["message"]=ERREUR_IMPREVUE;
|
||||||
|
header("location:".PAGE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
// je vérifie tout de même que le flux n'est pas déjà dans la bd
|
||||||
|
$doublon_ok=FclFlux_flux::recherche($flux_get,"url","id_flux,nom");
|
||||||
|
if(empty($doublon_ok))
|
||||||
|
{
|
||||||
|
// dans le cas d'une recherche GG, je modifie les valeurs importées pour la désignation et la description
|
||||||
|
if(strpos($flux_get,"https://news.google.com")!==false)
|
||||||
|
{
|
||||||
|
$limites["designation_long_min"]=FLUX_MIN_NOM;
|
||||||
|
$limites["designation_long_max"]=FLUX_MAX_NOM;
|
||||||
|
$limites["description_long_max"]=FLUX_MAX_DESCRIPTION;
|
||||||
|
$flux->limites=$limites;
|
||||||
|
$flux->set_designation(ucfirst(urldecode($get))." sur Google Actualités.");
|
||||||
|
$flux->set_description("");
|
||||||
|
}
|
||||||
|
$sauve=$flux->ajout();//provoque la création d'une source + d'un hub dans lequel est placé ce flux.
|
||||||
|
if(empty($flux->id_flux))
|
||||||
|
{
|
||||||
|
$_SESSION["message"]=ERREUR_IMPREVUE;
|
||||||
|
header("location:".PAGE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$flux->id_flux=$doublon_ok["id_flux"];
|
||||||
|
// que le flux soit nouveau ou un doublon il me faut connaître le hub dans lequel il est chargé pour permettre l'abonnement
|
||||||
|
$hub_abo=$flux->get_hubs();
|
||||||
|
if((empty($hub_abo))||(empty($hub_abo[0]["id_hub"])))
|
||||||
|
{
|
||||||
|
$_SESSION["message"]=ERREUR_IMPREVUE;
|
||||||
|
header("location:".PAGE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
$id_hub=$hub_abo[0]["id_hub"];//si + sieurs, on garde le premier...
|
||||||
|
//il me faut le nom du hub pour le proposer comme nom du nouvel abonnement.
|
||||||
|
$get_nom_hub=FclFlux_hub::recherche($id_hub,"id_hub","nom");
|
||||||
|
if(!empty($get_nom_hub))
|
||||||
|
$nom_hub=$get_nom_hub["nom"];
|
||||||
|
// liste des abonnements existants à proposer
|
||||||
|
$liste_abo="";
|
||||||
|
$abos=FclFlux_abonnement::get_liste_abo_cache($user,CREA_CACHE);
|
||||||
|
if(!empty($abos))
|
||||||
|
{
|
||||||
|
foreach ($abos as $abo_info)
|
||||||
|
$liste_abo.="<input type='radio' name='abo' value=\"".$abo_info["id_abonnement"]."\"> ".affiche_utf8(htmlentities($abo_info["designation"],ENT_QUOTES),UTF8_OK)." ";
|
||||||
|
}
|
||||||
|
include("../vues/compte_crea_abo_nouveau_flux.php");
|
44
ctrl/compte_crea_abo_rubrique.php
Executable file
44
ctrl/compte_crea_abo_rubrique.php
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script contrôlant les données envoyées leur d'une demande de création d'un nouvel abonnement basé sur les hubs de référence d'une rubrique
|
||||||
|
* L'utilisateur doit être connecté.
|
||||||
|
* Si ce n'est pas le cas, je stocke dans un cookie de courte durée l'adresse de la page et l'y ramène après connexion / création compte
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_abonnement.php");
|
||||||
|
//la rubrique existe vraiment ?
|
||||||
|
$rubrique=new FclFlux_rubrique();
|
||||||
|
$rubrique->id_rubrique=$page[2];
|
||||||
|
$rubrique_info=$rubrique->get_infos_cache(CREA_CACHE);
|
||||||
|
if(empty($rubrique_info))
|
||||||
|
{
|
||||||
|
header("location:".PAGE_404);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(false))
|
||||||
|
{
|
||||||
|
unset($user);
|
||||||
|
$redirige=PAGE_ABO_CREA_RUBRIQUE.intval($page[2]);
|
||||||
|
FclFlux_utilisateur::crea_cookie_redirection($redirige,2);
|
||||||
|
header("Location:".PAGE_INSCRIPTION);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
//tout semble ok... je tente la création du nouvel abonnement
|
||||||
|
$abo=new FclFlux_abonnement();
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$action=$abo->abo_rapide_rubrique($user,$rubrique);
|
||||||
|
$Bd=null;
|
||||||
|
if(!$action)
|
||||||
|
{
|
||||||
|
$_SESSION["message"]=ERREUR_IMPREVUE;
|
||||||
|
header("location:".PAGE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$_SESSION["message"]="Votre nouvel abonnement a bien été créé !";
|
||||||
|
header("location:".PAGE_ABO_AFFICHE.$abo->id_abonnement);
|
||||||
|
exit();
|
||||||
|
}
|
27
ctrl/compte_crea_abo_ville.php
Executable file
27
ctrl/compte_crea_abo_ville.php
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
/* Script appelé lorsqu'un utilisateur souhaite s'abonner aux actualités locales d'une ville.
|
||||||
|
* L'utilisateur doit être connecté.
|
||||||
|
* Il doit fournir la ville centrale de l'abonnement.
|
||||||
|
* On le prévient si il a déjà un abonnement aux actus locales.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
require_once("../modele/FclFlux_abonnement.php");
|
||||||
|
// utilisateur connecté ?
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(false))
|
||||||
|
{
|
||||||
|
unset($user);
|
||||||
|
$_SESSION["message"]="Pour recevoir les actualités locales, commencez par créer gratuitement votre compte utilisateur ci-dessous, en renseignant bien votre ville. Si avez déjà un compte Hello facteur, <b><a href='".PAGE_CONNEXION."'>cliquez-ici pour vous connecter</a></b>.";
|
||||||
|
header("Location:".PAGE_INSCRIPTION);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
// on vérifie si des abonnements "locaux" existent déjà ?
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$abos_ville=FclFlux_abonnement::get_liste_abo_ville_cache($user,true);
|
||||||
|
unset($Bd);
|
||||||
|
// l'utilisateur à validé le formulaire
|
||||||
|
if(isset($_POST["cp_ville"]))
|
||||||
|
require("../ctrl/compte_crea_abo_ville_tests.php");
|
||||||
|
// formulaire de saisie.
|
||||||
|
include("../vues/compte_crea_abo_ville.php");
|
48
ctrl/compte_crea_abo_ville_tests.php
Executable file
48
ctrl/compte_crea_abo_ville_tests.php
Executable file
@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script créant un abonnement aux actus locales pour la ville renseignée.
|
||||||
|
* L'utilisateur doit être connecté et avoir saisi le nom de la ville.
|
||||||
|
* Ce script peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["ajax"]))
|
||||||
|
{
|
||||||
|
$ajax_on=true;
|
||||||
|
header('Content-Type: text/html; charset=utf-8');
|
||||||
|
require_once("../modele/FclFlux_abonnement.php");
|
||||||
|
}
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(true))
|
||||||
|
{
|
||||||
|
header("Location:".SITE_URL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
$form["insee"]=strip_tags(trim($_POST["insee"]));
|
||||||
|
if(empty($form["insee"]))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
if(empty($msg_form))
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$abo_ville=new FclFlux_abonnement();
|
||||||
|
$crea_abo_ville=$abo_ville->abo_rapide_ville($user,$form["insee"]);
|
||||||
|
if(!empty($abo_ville->erreurs))
|
||||||
|
$msg_form[]=$abo_ville->erreurs;
|
||||||
|
elseif($crea_abo_ville===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$_SESSION["message"]="Votre abonnement a bien été créé. Si vous le souhaitez vous pouvez le configurer ci-dessous.<br>Pour voir les dernières actualités, <u><a href='".PAGE_ABO_AFFICHE."/".$abo_ville->id_abonnement."'>cliquez-ici</a></u>.";
|
||||||
|
if($ajax_on)
|
||||||
|
echo $abo_ville->id_abonnement;//c'est js qui provoquera la redirection
|
||||||
|
else
|
||||||
|
{
|
||||||
|
header("Location:".PAGE_ABO_MAJ."/".$abo_ville->id_abonnement);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
129
ctrl/compte_crea_tests.php
Executable file
129
ctrl/compte_crea_tests.php
Executable file
@ -0,0 +1,129 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors de l'inscription d'un utilisateur
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["email"]=trim($_POST["email"]);
|
||||||
|
$form["pseudo"]=trim($_POST["pseudo"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_utilisateur.php");
|
||||||
|
}
|
||||||
|
if(!empty($_COOKIE["origine"]))
|
||||||
|
$form["origine"]=trim($_COOKIE["origine"]);
|
||||||
|
$msg_form=array();
|
||||||
|
if((empty($form["email"]))||(empty($form["pseudo"]))||((empty($_SESSION["coregistration"]))&&(empty($_POST["test"]))))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(((empty($_SESSION["mot"]))||(empty($_SESSION["lettre"]))||((time()-intval($_SESSION["timeS"]))<FORM_MIN_DUREE))&&(empty($_SESSION["coregistration"])))
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($_SESSION["coregistration"]))
|
||||||
|
{
|
||||||
|
$mot=$_SESSION["mot"];
|
||||||
|
$nb_lettre=$_SESSION["lettre"]-1;//puisque index débute à 0...
|
||||||
|
if((strtolower(trim($_POST["test"])))!=($mot[$nb_lettre]))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_ANTISPAM.$mot[$nb_lettre];
|
||||||
|
}
|
||||||
|
if(empty($_POST["cgu_ok"]))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CGU;
|
||||||
|
if(empty($_POST["ajax"])) //recherche la ville si un code postal a été saisi
|
||||||
|
include("../ctrl/get_ville_cp.php");
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
// impact sur le fuseau horaire si ville dans les dom tom
|
||||||
|
if(isset($_POST["insee"]))
|
||||||
|
{
|
||||||
|
$dep=get_villes($_POST["insee"],"insee");
|
||||||
|
if(!empty($dep))
|
||||||
|
{
|
||||||
|
$num=$dep[0]["dep_num"];
|
||||||
|
if(isset($DT_fuseau["$num"]))
|
||||||
|
$form["fuseau_horaire"]=$DT_fuseau["$num"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$user=new FclFlux_utilisateur($form);
|
||||||
|
if((empty($msg_form))&&(empty($user->erreurs)))
|
||||||
|
{
|
||||||
|
if(empty($_SESSION["coregistration"]))
|
||||||
|
$ajout=$user->ajout(true);//avec true de passé, créer une session si tout se passe bien
|
||||||
|
else
|
||||||
|
$ajout=$user->ajout(true,false);//on évite la validation car l'email a déjà été contrôlé par meetoyen
|
||||||
|
}
|
||||||
|
if(!empty($user->erreurs))
|
||||||
|
$msg_form=array_merge($user->erreurs,$msg_form);
|
||||||
|
elseif((isset($ajout))&&($ajout===false))
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
{
|
||||||
|
if(!empty($_COOKIE["donnees_meetoyen"]))
|
||||||
|
setcookie("donnees_meetoyen","",time()-42000,"/",SITE_COOKIES_DOMAINE);
|
||||||
|
if(!empty($_COOKIE["donnees_mailing"]))
|
||||||
|
setcookie("donnees_mailing","",time()-42000,"/",SITE_COOKIES_DOMAINE);
|
||||||
|
// il peut y avoir un hub auxquel on est automatiquement abonné lorsque l'on créé son compte
|
||||||
|
if(!empty($hub_site))
|
||||||
|
{
|
||||||
|
require_once("../modele/FclFlux_abonnement.php");
|
||||||
|
$infos_abo["designation"]=$hub_site["nom"];
|
||||||
|
$infos_abo["proprietaire"]=$user;
|
||||||
|
$abo_news=new FclFlux_abonnement($infos_abo);
|
||||||
|
$crea_abo_news=$abo_news->ajout();
|
||||||
|
if($crea_abo_news===true)
|
||||||
|
{
|
||||||
|
$hub=new FclFlux_hub();
|
||||||
|
$hub->id_hub=$hub_site["id"];
|
||||||
|
$abo_news->ajout_hubs(array($hub));
|
||||||
|
}
|
||||||
|
unset($abo_news);
|
||||||
|
}
|
||||||
|
// si l'utilisateur a fourni sa ville, on essaye aussi de l'abonner aux actus locales.
|
||||||
|
if(!empty($_POST["insee"]))
|
||||||
|
{
|
||||||
|
$abo_local=new FclFlux_abonnement();
|
||||||
|
$crea_abo_local=$abo_local->abo_rapide_ville($user,$_POST["insee"]);
|
||||||
|
if($crea_abo_local===true)
|
||||||
|
{
|
||||||
|
$_SESSION["message"]="Votre compte a bien été créé. <u>Vous devez néanmoins le valider via un lien qui vient de vous être envoyé par email</u>.<br>En attendant vous pouvez déjà configurer ci-dessous votre abonnement aux actualités locales ou encore <u>voir le résultat <a href='".PAGE_ABO_AFFICHE.$abo_local->id_abonnement."' title='voir les dernières actualités pour votre abonnement'>en cliquant ici</a></u>.";
|
||||||
|
$Bd=null;
|
||||||
|
if(!$ajax_on)
|
||||||
|
header("location:".PAGE_ABO_MAJ.$abo->id_abonnement);
|
||||||
|
else
|
||||||
|
echo $abo_local->id_abonnement;//pour redirection en javascript
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$Bd=null;
|
||||||
|
if((!empty($_SESSION["coregistration"]))&&(empty($form["insee"])))
|
||||||
|
$_SESSION["redirige"]=null;//pas la peine d'aller sur la page de création de l'abonnement
|
||||||
|
$_SESSION["message"]="Votre compte a bien été créé. Vous devez néanmoins le valider via un lien qui vient de vous être envoyé par email.<br>En attendant vous pouvez déjà créer votre premier abonnement ci-dessous.";
|
||||||
|
if(!$ajax_on)
|
||||||
|
{
|
||||||
|
// si l'utilisateur est connecté et a un cookie de redirection
|
||||||
|
// je le redirige vers la page qui l'intéressait avant la création de son compte
|
||||||
|
$redirige=PAGE_REPERTOIRE_ACCUEIL;
|
||||||
|
if(!empty($_SESSION["redirige"]))
|
||||||
|
$redirige=$_SESSION["redirige"];
|
||||||
|
elseif(!empty($_COOKIE["rdg"]))
|
||||||
|
{
|
||||||
|
if(strpos($_COOKIE["rdg"],SITE_COOKIES_DOMAINE)!==false)
|
||||||
|
$redirige=$_COOKIE["rdg"];
|
||||||
|
//dans tous les cas, je mange le cookie :-)
|
||||||
|
setcookie("rdg","",-1600,"/",SITE_COOKIES_DOMAINE);
|
||||||
|
}
|
||||||
|
header("location:".$redirige);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
36
ctrl/compte_email_maj_validation.php
Executable file
36
ctrl/compte_email_maj_validation.php
Executable file
@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script contrôlant le paramètre passé par l'url
|
||||||
|
* permettant de valider la modification de l'email de l'utilisateur
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_utilisateur.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!($user->test_session(false)))
|
||||||
|
{
|
||||||
|
unset($user);
|
||||||
|
$redirige=PAGE_VALIDATION_EMAIL.$page[2];
|
||||||
|
FclFlux_utilisateur::crea_cookie_redirection($redirige,1);
|
||||||
|
header("Location:".PAGE_CONNEXION);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$ticket=$page[2];
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$validation=$user->valide_email($ticket);
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($user->erreurs))
|
||||||
|
$msg_form=$user->erreurs;
|
||||||
|
else if(!$validation)
|
||||||
|
$msg_form=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$_SESSION["message"]=MSG_UTILISA_VALIDATION_EMAIL_LIEN;
|
||||||
|
header("Location:".PAGE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
//vue
|
||||||
|
include("../vues/compte_email_maj_validation.php");
|
||||||
|
}
|
47
ctrl/compte_get_passe.php
Executable file
47
ctrl/compte_get_passe.php
Executable file
@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors d'une demande de nouveau de passe
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["email"]=trim($_POST["email"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_utilisateur.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if(empty($form["email"]))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if((empty($_SESSION["timeS"]))||((time()-intval($_SESSION["timeS"]))<FORM_MIN_DUREE))
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$user=new FclFlux_utilisateur($form);
|
||||||
|
if((empty($msg_form))&&(empty($user->erreurs)))
|
||||||
|
$envoi=$user->get_nouveau_passe();
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($user->erreurs))
|
||||||
|
$msg_form=array_merge($user->erreurs,$msg_form);
|
||||||
|
elseif($envoi===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
$msg_form[]=MSG_UTILISA_GET_PASSE_OK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if($msg_form[0]==MSG_UTILISA_GET_PASSE_OK)
|
||||||
|
echo get_html_alerte_msg($msg_form,"alert-success");
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
||||||
|
}
|
40
ctrl/compte_identifiant_maj.php
Executable file
40
ctrl/compte_identifiant_maj.php
Executable file
@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script contrôlant les données envoyées leur d'une demande de mise à jour des identifiants de connexion (email & passe)
|
||||||
|
* l'utilisateur doit fournir le mot de passe actuel pour que sa demande soit acceptée
|
||||||
|
* * ! les utilisateurs n'ayant pas validé leur compte ne doivent pas pouvoir utiliser cette page
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_utilisateur.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(false))
|
||||||
|
{
|
||||||
|
unset($user);
|
||||||
|
$redirige=PAGE_MAJ_IDENTIFIANT;
|
||||||
|
FclFlux_utilisateur::crea_cookie_redirection($redirige,1);
|
||||||
|
header("Location:".PAGE_CONNEXION);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(isset($_POST["email"]))
|
||||||
|
include("../ctrl/compte_identifiant_maj_tests.php");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$tab_infos=$user->recherche(intval($user->id_utilisateur),"id_utilisateur","email,time_validation");
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($tab_infos["email"]))
|
||||||
|
$form["email"]=$tab_infos["email"];
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$user->supprime_session();
|
||||||
|
unset($user);
|
||||||
|
header("Location:".SITE_URL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//formulaire
|
||||||
|
include("../vues/compte_identifiant_maj.php");
|
||||||
|
}
|
50
ctrl/compte_identifiant_maj_tests.php
Executable file
50
ctrl/compte_identifiant_maj_tests.php
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors de l'enregistrement d'une mise à jour des identifiants de connexion
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["email"]=trim($_POST["email"]);
|
||||||
|
$form["passe"]=trim($_POST["passe"]);
|
||||||
|
$nouveau_passe=trim($_POST["nouveau_passe"]);
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_utilisateur.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if(empty($form["email"])||empty($form["passe"]))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($_SESSION["id_utilisateur"]))
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$user=new FclFlux_utilisateur($form);
|
||||||
|
$user->id_utilisateur=$_SESSION["id_utilisateur"];
|
||||||
|
if((empty($msg_form))&&(empty($user->erreurs)))
|
||||||
|
$maj=$user->actualise_infos_connexion($nouveau_passe);
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($user->erreurs))
|
||||||
|
$msg_form=array_merge($user->erreurs,$msg_form);
|
||||||
|
elseif($maj===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
if(empty($msg_form))
|
||||||
|
$msg_form[]=MSG_UTILISA_MAJ_IDENTIFIANTS_VALID;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if($msg_form[0]==MSG_UTILISA_MAJ_IDENTIFIANTS_VALID)//à revoir, il faudrait en fait rafraichir le formulaire ... ou pas ?
|
||||||
|
echo get_html_alerte_msg($msg_form,"alert-success");
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
||||||
|
}
|
66
ctrl/compte_illustration_maj.php
Executable file
66
ctrl/compte_illustration_maj.php
Executable file
@ -0,0 +1,66 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script contrôlant les données envoyées leur d'une demande de mise à jour de l'image illustrant le profil
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_utilisateur.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(false))
|
||||||
|
{
|
||||||
|
unset($user);
|
||||||
|
header("Location:".PAGE_CONNEXION);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$msg_form=array();
|
||||||
|
if(!empty($_FILES['illustration']['tmp_name']))
|
||||||
|
{
|
||||||
|
$set_illus=$user->set_illustration($_FILES['illustration']);
|
||||||
|
if($set_illus===true)
|
||||||
|
{
|
||||||
|
$maj=$user->actualise();
|
||||||
|
if(!empty($user->erreurs))
|
||||||
|
$msg_form=$user->erreurs;
|
||||||
|
elseif($maj===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
$msg_form[]=MSG_UTILISA_TELECHARGE_VALID;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
}
|
||||||
|
if(!empty($_POST["suppr_illustration"]))
|
||||||
|
{
|
||||||
|
$suppr=$user->actualise(true);//supprime le fichier
|
||||||
|
if(!empty($user->erreurs))
|
||||||
|
$msg_form=$user->erreurs;
|
||||||
|
else if($suppr===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
$msg_form[]=MSG_UTILISA_MAJ_SUPPR_VALID;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
//j'ai besoin de savoir si il y a déjà une illustration pour l'afficher et proposer sa suppression
|
||||||
|
$tab_infos=$user->recherche(intval($user->id_utilisateur),"id_utilisateur","illustration,email,time_validation");
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($tab_infos))
|
||||||
|
{
|
||||||
|
if(!empty($tab_infos["illustration"]))
|
||||||
|
{
|
||||||
|
$fichier=$tab_infos["illustration"];
|
||||||
|
$adresse_illustration=UTILISATEUR_ILLUS_REP."/".$fichier[0]."/".$fichier;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$user->supprime_session();
|
||||||
|
unset($user);
|
||||||
|
header("Location:".SITE_URL);
|
||||||
|
exit();
|
||||||
|
}*/
|
||||||
|
//affiche les résultats dans l'iframe
|
||||||
|
include("../vues/compte_illustration_maj.php");
|
||||||
|
}
|
130
ctrl/compte_infos_affiche.php
Executable file
130
ctrl/compte_infos_affiche.php
Executable file
@ -0,0 +1,130 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script réaffichant le formulaire permettant de modifier / supprimer les infos persos après une mise à jour
|
||||||
|
* 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_utilisateur.php");
|
||||||
|
}
|
||||||
|
$form_html="";
|
||||||
|
if(empty($_SESSION["id_utilisateur"]))
|
||||||
|
$form_html=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
$user->id_utilisateur=$_SESSION["id_utilisateur"];
|
||||||
|
$tab_infos=$user->recherche(intval($user->id_utilisateur),"id_utilisateur","pseudo,presentation,fuseau_horaire,illustration,email");
|
||||||
|
if(!empty($tab_infos["pseudo"]))
|
||||||
|
{
|
||||||
|
$form[0]["pseudo"]=$tab_infos["pseudo"];
|
||||||
|
$form[0]["presentation"]=$tab_infos["presentation"];
|
||||||
|
if(!empty($tab_infos["illustration"]))
|
||||||
|
{
|
||||||
|
$fichier=$tab_infos["illustration"];
|
||||||
|
$adresse_illustration=UTILISATEUR_ILLUS_REP."/".$fichier[0]."/".$fichier;
|
||||||
|
}
|
||||||
|
$form[0]["email"]=$tab_infos["email"];//nécessaire pour procédure de suppression de compte.
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$Bd=null;
|
||||||
|
unset($user);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
if(!empty($form))
|
||||||
|
{
|
||||||
|
$form[0]["nom"]="Actualiser vos informations.";
|
||||||
|
$form[0]["champs"]="<form method='post' id='maj_infos' action='".PAGE_MAJ_INFOS_PERSO."' role='form' class='form-horizontal'>
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='pseudo' class='col-sm-3 control-label'>Votre nom / pseudo :</label>
|
||||||
|
<div class='col-sm-9'><input class='form-control' type='text' maxlength='".UTILISATEUR_MAX_PSEUDO."' name='pseudo' id='pseudo' value=\"".htmlspecialchars($form[0]["pseudo"])."\" required></div>
|
||||||
|
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire</b>.</p></div>
|
||||||
|
</div>";
|
||||||
|
$fuseau_defaut=date_default_timezone_get();
|
||||||
|
$tz=new DateTimeZone($fuseau_defaut);
|
||||||
|
$zones=$tz->listIdentifiers();
|
||||||
|
$form[0]["champs"].="<div id='fuseau_horaire'>
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='insee' class='col-sm-3 control-label'>Quel est votre fuseau horaire ?</label>
|
||||||
|
<div class='col-sm-9'><select name='fuseau_horaire' class='form-control'>";
|
||||||
|
foreach ($zones as $fuseau)
|
||||||
|
{
|
||||||
|
if($fuseau==$tab_infos["fuseau_horaire"])
|
||||||
|
$form[0]["champs"].="<option value='".$fuseau."' selected=selected>".htmlentities(affiche_utf8($fuseau,UTF8_OK))."</option>";
|
||||||
|
else
|
||||||
|
$form[0]["champs"].="<option value='".$fuseau."'>".htmlentities(affiche_utf8($fuseau,UTF8_OK))."</option>";
|
||||||
|
}
|
||||||
|
$form[0]["champs"].="</select></div>
|
||||||
|
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'>Votre fuseau horaire est utile par déterminer l'heure d'envoi de vos abonnements (décalage horaire, heure d'été...).</p></div>
|
||||||
|
</div></div>
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='presentation' class='col-sm-3 control-label'>Présentez-vous :</label>
|
||||||
|
<div class='col-sm-9'><textarea class='form-control' rows='8' name='presentation' id='presentation' maxlength='".UTILISATEUR_MAX_PRESENTATION."'>".htmlspecialchars($form[0]["presentation"])."</textarea></div>
|
||||||
|
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Facultatif</b>. Décrivez-vous en quelques mots. ".UTILISATEUR_MAX_PRESENTATION." caractères maximum.</p></div>
|
||||||
|
</div>
|
||||||
|
<div class='form-group'>
|
||||||
|
<div class='col-sm-offset-3 col-sm-9'>
|
||||||
|
<div class='checkbox'>
|
||||||
|
<label for='compte_suppr' class='text-danger'><input type='checkbox' name='compte_suppr' id='compte_suppr' value='1'> <b>Je souhaite supprimer définitivement mon compte utilisateur.</b></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id='msg_infos'></div>
|
||||||
|
<input type='hidden' name='email' id='email' value=\"".$form[0]["email"]."\" >
|
||||||
|
<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>";
|
||||||
|
|
||||||
|
$form[1]["nom"]="Votre photo.";
|
||||||
|
$form[1]["champs"]="
|
||||||
|
<form method='post' id='maj_illustration' action='".PAGE_MAJ_ILLUSTRATION."' enctype='multipart/form-data' role='form' class='form-horizontal' target='uploadFrame'>";
|
||||||
|
if((!empty($adresse_illustration))&&(file_exists($adresse_illustration)))
|
||||||
|
{
|
||||||
|
$form[1]["champs"].="
|
||||||
|
<p><strong>Photo 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 photo :</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 photo pour remplacer celle actuelle. Formats autorisés : ".str_replace("|",", ",UTILISATEUR_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 la photo actuelle sans en télécharger une nouvelle.
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$form[1]["champs"].="
|
||||||
|
<div class='form-group'>
|
||||||
|
<label for='illustration' class='col-sm-3 control-label'>Téléchargez votre photo :</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 photo pour illustrer votre profil utilisateur. Formats autorisés : ".str_replace("|",", ",UTILISATEUR_ILLUS_EXTENSIONS).".</p></div>
|
||||||
|
</div>";
|
||||||
|
}
|
||||||
|
$form[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-9'>
|
||||||
|
<button type='submit' class='btn btn-success btn-lg'>Enregistrer.</button>
|
||||||
|
</div></div>
|
||||||
|
</form>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($form))&&($ajax_on))
|
||||||
|
echo get_html_form($form,false);
|
50
ctrl/compte_infos_maj.php
Executable file
50
ctrl/compte_infos_maj.php
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script permettant de modifier ses infos personnelles hors identifiants
|
||||||
|
* Données concernées : le pseudo (qui doit rester unique), le texte de présentation et le fuseau horaire. L'illustration est traitée via une iframe.
|
||||||
|
* ! les utilisateurs n'ayant pas encore validé leur compte ne doivent pas pouvoir utiliser ce script.
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_utilisateur.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(false))
|
||||||
|
{
|
||||||
|
unset($user);
|
||||||
|
$redirige=PAGE_MAJ_INFOS_PERSO;
|
||||||
|
FclFlux_utilisateur::crea_cookie_redirection($redirige,1);
|
||||||
|
header("Location:".PAGE_CONNEXION);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(isset($_POST["pseudo"]))
|
||||||
|
include("../ctrl/compte_infos_maj_tests.php");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$tab_infos=$user->recherche(intval($user->id_utilisateur),"id_utilisateur","pseudo,presentation,email,time_validation,fuseau_horaire,illustration");
|
||||||
|
if(!empty($tab_infos["pseudo"]))
|
||||||
|
{
|
||||||
|
$form["pseudo"]=$tab_infos["pseudo"];
|
||||||
|
$form["presentation"]=$tab_infos["presentation"];
|
||||||
|
$form["email"]=$tab_infos["email"];// nécessaire pour la procédure de suppression du compte.
|
||||||
|
if(!empty($tab_infos["illustration"]))
|
||||||
|
{
|
||||||
|
$fichier=$tab_infos["illustration"];
|
||||||
|
$adresse_illustration=UTILISATEUR_ILLUS_REP."/".$fichier[0]."/".$fichier;
|
||||||
|
}
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$Bd=null;
|
||||||
|
$user->supprime_session();
|
||||||
|
unset($user);
|
||||||
|
header("Location:".SITE_URL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//formulaire
|
||||||
|
include("../vues/compte_infos_maj.php");
|
||||||
|
}
|
73
ctrl/compte_infos_maj_tests.php
Executable file
73
ctrl/compte_infos_maj_tests.php
Executable file
@ -0,0 +1,73 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors de l'enregistrement d'une mise à jour des infos de l'utilisateur
|
||||||
|
* Peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["pseudo"]=trim($_POST["pseudo"]);
|
||||||
|
$form["presentation"]=trim($_POST["presentation"]);
|
||||||
|
$form["fuseau_horaire"]=trim($_POST["fuseau_horaire"]);
|
||||||
|
$form["email"]=$_POST["email"];
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["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_utilisateur.php");
|
||||||
|
}
|
||||||
|
$msg_form=array();
|
||||||
|
if(empty($_POST["pseudo"]))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($_SESSION["id_utilisateur"]))
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
elseif(!empty($_POST["compte_suppr"]))
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$user=new FclFlux_utilisateur($form);
|
||||||
|
$user->id_utilisateur=$_SESSION["id_utilisateur"];
|
||||||
|
$suppr=$user->get_lien_suppression();
|
||||||
|
if(!empty($user->erreurs))
|
||||||
|
$msg_form=array_merge($user->erreurs,$msg_form);
|
||||||
|
elseif($suppr===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if($ajax_on)
|
||||||
|
$msg_form[]=MSG_UTILISA_GET_LIEN_SUPPRESSION_OK;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$user=new FclFlux_utilisateur($form);//test les différentes valeurs fournies
|
||||||
|
$user->id_utilisateur=$_SESSION["id_utilisateur"];
|
||||||
|
if((empty($msg_form))&&(empty($user->erreurs)))
|
||||||
|
$maj=$user->actualise();
|
||||||
|
if(!empty($user->erreurs))
|
||||||
|
$msg_form=array_merge($user->erreurs,$msg_form);
|
||||||
|
elseif($maj===false)
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
$Bd=null;
|
||||||
|
if(empty($msg_form))
|
||||||
|
{
|
||||||
|
$_SESSION["pseudo"]=$form["pseudo"];//peut avoir changé !
|
||||||
|
$msg_form[]=MSG_UTILISA_MAJ_INFOS_VALID;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if($msg_form[0]==MSG_UTILISA_MAJ_INFOS_VALID)
|
||||||
|
echo str_replace("\"","'",MSG_UTILISA_MAJ_INFOS_VALID);//pour comparaison en JS
|
||||||
|
elseif($msg_form[0]==MSG_UTILISA_GET_LIEN_SUPPRESSION_OK)
|
||||||
|
echo str_replace("\"","'",MSG_UTILISA_GET_LIEN_SUPPRESSION_OK);//pour comparaison en JS
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
||||||
|
}
|
32
ctrl/compte_lien_connexion.php
Executable file
32
ctrl/compte_lien_connexion.php
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script contrôlant le paramètre passé par l'url
|
||||||
|
* permettant de se connecter sans mot de passe.
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_utilisateur.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
$ticket=$page[2];
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$connexion=$user->crea_session_lien_connexion($ticket);
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($user->erreurs))
|
||||||
|
$msg_form=$user->erreurs;
|
||||||
|
else if(!$connexion)
|
||||||
|
$msg_form=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// si l'utilisateur connecté et a un cookie de redirection
|
||||||
|
// je le redirige vers la page qui l'intéressait avant connexion
|
||||||
|
$redirige=PAGE_ACCUEIL;
|
||||||
|
if(!empty($_COOKIE["rdg"]))
|
||||||
|
{
|
||||||
|
if(strpos($_COOKIE["rdg"],SITE_COOKIES_DOMAINE)===false)
|
||||||
|
$redirige=$_COOKIE["rdg"];
|
||||||
|
//dans tous les cas, je mange mon cookie :-)
|
||||||
|
setcookie("rdg","",-1600,"/",SITE_COOKIES_DOMAINE);
|
||||||
|
}
|
||||||
|
header("location:".$redirige);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
include("../vues/compte_lien_connexion.php");
|
17
ctrl/compte_lien_suppression.php
Executable file
17
ctrl/compte_lien_suppression.php
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script contrôlant le paramètre passé par l'url
|
||||||
|
* permettant de finaliser la suppression d'un compte
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_utilisateur.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
$ticket=$page[2];
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$suppr=$user->test_lien_suppression($ticket);
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($user->erreurs))
|
||||||
|
$msg_form=$user->erreurs;
|
||||||
|
else if(!$suppr)
|
||||||
|
$msg_form=ERREUR_IMPREVUE;
|
||||||
|
include("../vues/compte_lien_suppression.php");
|
22
ctrl/compte_validation.php
Executable file
22
ctrl/compte_validation.php
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script contrôlant le paramètre passé par l'url
|
||||||
|
* permettant de valider la création d'un compte
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_utilisateur.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
$ticket=$page[2];
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$validation=$user->valide($ticket,true);
|
||||||
|
$Bd=null;
|
||||||
|
if(!empty($user->erreurs))
|
||||||
|
$msg=$user->erreurs;
|
||||||
|
else if(!$validation)
|
||||||
|
$msg=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
header("Location:".PAGE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
include("../vues/compte_validation.php");
|
33
ctrl/connexion.php
Executable file
33
ctrl/connexion.php
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script contrôlant les données envoyées par le formulaire d'inscription du site
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_utilisateur.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if($user->test_session(false))
|
||||||
|
{
|
||||||
|
header("Location:".PAGE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
unset($user);
|
||||||
|
if(isset($_POST["email"]))
|
||||||
|
{
|
||||||
|
$form["email"]=trim($_POST["email"]);
|
||||||
|
include("../ctrl/compte_connect_tests.php");
|
||||||
|
}
|
||||||
|
elseif(!empty($_SESSION["email_abo"]))//internautes venant d'un site tiers
|
||||||
|
$form["email"]=$_SESSION["email_abo"];
|
||||||
|
else
|
||||||
|
$form["email"]=null;
|
||||||
|
//anti-bots
|
||||||
|
$_SESSION["timeS"]=time();
|
||||||
|
if(!isset($_SESSION["Nb_tentatives"]))
|
||||||
|
$_SESSION["Nb_tentatives"]=1;
|
||||||
|
else
|
||||||
|
$_SESSION["Nb_tentatives"]=$_SESSION["Nb_tentatives"]+1;
|
||||||
|
//formulaire d'inscription
|
||||||
|
include("../vues/connexion.php");
|
||||||
|
}
|
41
ctrl/contact.php
Executable file
41
ctrl/contact.php
Executable file
@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script contrôlant les données envoyées par le formulaire de contact
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_utilisateur.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
$user->test_session(false);//pour personnaliser le formulaire si possible
|
||||||
|
if(isset($_POST["message"]))
|
||||||
|
include("../ctrl/contact_tests.php");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$form["sujet"]=null;
|
||||||
|
$form["message"]=null;
|
||||||
|
if(!empty($user->connexion_ok))
|
||||||
|
{
|
||||||
|
$infos_user=$user->get_infos_cache(true);
|
||||||
|
if(empty($infos_user))//pas normal...
|
||||||
|
$user->supprime_session();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$form["email"]=$infos_user["email"];
|
||||||
|
$form["pseudo"]=$infos_user["pseudo"];
|
||||||
|
}
|
||||||
|
unset($infos_user);
|
||||||
|
}
|
||||||
|
if(empty($user->connexion_ok))//j'ai pu me faire sauvagement déconnecté précédement...
|
||||||
|
{
|
||||||
|
$form["email"]=null;
|
||||||
|
$form["pseudo"]=null;
|
||||||
|
//antispam
|
||||||
|
$mots=explode("|",FORMULAIRE_FILTRES_SPAM);
|
||||||
|
$hasard=array_rand($mots,1);
|
||||||
|
$_SESSION["mot"]=$mots[$hasard];
|
||||||
|
$max=min(strlen($_SESSION["mot"]),6);//au-delà de 6, difficile à compter ?
|
||||||
|
$_SESSION["lettre"]=rand(2,$max);
|
||||||
|
$_SESSION["timeS"]=time();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//formulaire de contact
|
||||||
|
include("../vues/contact.php");
|
70
ctrl/contact_tests.php
Executable file
70
ctrl/contact_tests.php
Executable file
@ -0,0 +1,70 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script testant les données envoyées lors de l'envoi d'un message par un internaute
|
||||||
|
* qui peut être connecté au site ou non
|
||||||
|
* Ce script peut être appelé en ajax ou directement en php si JS désactivé
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
$form["email"]=strip_tags(trim($_POST["email"]));
|
||||||
|
$form["pseudo"]=strip_tags(trim($_POST["pseudo"]));
|
||||||
|
$form["sujet"]=strip_tags(trim($_POST["sujet"]));
|
||||||
|
$form["message"]=strip_tags(trim($_POST["message"]));
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["ajax"]))
|
||||||
|
{
|
||||||
|
$ajax_on=true;
|
||||||
|
require_once("../modele/FclFlux_utilisateur.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
$user->test_session(false);//besoin de savoir si utilisateur est connecté ou pas...
|
||||||
|
header('Content-Type: text/html; charset=utf-8');
|
||||||
|
}
|
||||||
|
$msg_form=array();$pre_message="";
|
||||||
|
if(empty($user->connexion_ok))//internaute non connecté
|
||||||
|
{
|
||||||
|
if(empty($_POST["test"])||empty($form["email"])||empty($form["pseudo"])||empty($form["sujet"])||empty($form["message"]))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if((empty($_SESSION["mot"]))||(empty($_SESSION["lettre"]))||((time()-intval($_SESSION["timeS"]))<FORM_MIN_DUREE))
|
||||||
|
$msg_form[]=ERREUR_IMPREVUE;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$mot=$_SESSION["mot"];
|
||||||
|
$nb_lettre=$_SESSION["lettre"]-1;//puisque index débute à 0...
|
||||||
|
if((strtolower($_POST["test"]))!=($mot[$nb_lettre]))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_ANTISPAM.$mot[$nb_lettre];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(empty($msg_form))
|
||||||
|
{
|
||||||
|
$ip=getIp();
|
||||||
|
$Config=$_SERVER['HTTP_USER_AGENT'];
|
||||||
|
$pre_message="Ce message a été envoyé par un utilisateur non connecté (nom fourni : ".$form["pseudo"].") ayant comme adresse IP : $ip et comme configuration : $Config.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($form["sujet"])||empty($form["message"]))
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CHAMPS_ABSENTS;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$ip=getIp();
|
||||||
|
$Config=$_SERVER['HTTP_USER_AGENT'];
|
||||||
|
$pre_message="Ce message a été envoyé pour un utilisateur connecté (pseudo : ".$form["pseudo"].", id: ".$_SESSION["id_utilisateur"].") ayant comme adresse IP : $ip et comme configuration : $Config.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(empty($msg_form))
|
||||||
|
{
|
||||||
|
$envoi=envoi_message($form["email"],EMAIL_CONTACT,"[".SITE_NOM."] ".$form["sujet"],$pre_message."\n\n".$form["message"],$form["pseudo"]);
|
||||||
|
if($envoi)
|
||||||
|
$msg_form[]=MSG_UTILISA_ENVOI_MESSAGE_VALID;
|
||||||
|
else
|
||||||
|
$msg_form[]=ERREUR_UTILISA_ENVOI_MESSAGE;
|
||||||
|
}
|
||||||
|
if((!empty($msg_form))&&($ajax_on))
|
||||||
|
{
|
||||||
|
if(($msg_form[0]==MSG_UTILISA_ENVOI_MESSAGE_VALID)||($msg_form[0]==ERREUR_UTILISA_ENVOI_MESSAGE))
|
||||||
|
echo str_replace("\"","'",$msg_form[0]);//mise en forme via JS
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg($msg_form);
|
||||||
|
}
|
12
ctrl/deconnexion.php
Executable file
12
ctrl/deconnexion.php
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script permettant de l'utilisateur de se déconnecter
|
||||||
|
* avant de le renvoyer vers la page d'accueil du site
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_utilisateur.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
$user->supprime_session();
|
||||||
|
unset($user);
|
||||||
|
header("location:".SITE_URL);
|
||||||
|
exit();
|
62
ctrl/get_ville_cp.php
Executable file
62
ctrl/get_ville_cp.php
Executable file
@ -0,0 +1,62 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script contrôlant un code postal saisi
|
||||||
|
* Et retournant la/les ville(s) correspondant si trouvé
|
||||||
|
* Peut être appelé en ajax ou directement en php
|
||||||
|
**/
|
||||||
|
if(isset($_POST["cp_ville"]))
|
||||||
|
$form["cp_ville"]=$_POST["cp_ville"];
|
||||||
|
$ajax_on=false;
|
||||||
|
if(!empty($_POST["ajax"]))
|
||||||
|
{
|
||||||
|
header('Content-Type: text/html; charset=utf-8');
|
||||||
|
$ajax_on=true;
|
||||||
|
}
|
||||||
|
if(!empty($form["cp_ville"]))
|
||||||
|
{
|
||||||
|
if(strlen($form["cp_ville"])<3)
|
||||||
|
$msg_form[]=ERREUR_UTILISA_CP_LONG;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$villes=get_villes($form["cp_ville"]);
|
||||||
|
if(empty($villes))
|
||||||
|
{
|
||||||
|
$msg_erreur=ERREUR_UTILISA_CP_VILLE_ABSENTE;
|
||||||
|
if(!$ajax_on)
|
||||||
|
$msg_form[]=$msg_erreur;
|
||||||
|
else
|
||||||
|
echo get_html_alerte_msg((array) $msg_erreur);
|
||||||
|
}
|
||||||
|
else if(count($villes)==1)
|
||||||
|
{
|
||||||
|
if(!$ajax_on)
|
||||||
|
$form["ville"]=$villes[0];
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$msg[0]="Ville trouvée pour votre saisie : <strong>".htmlentities(affiche_utf8($villes[0]["nom"],UTF8_OK))." (".$villes[0]["cp"].")</strong>.<br>
|
||||||
|
Si ce n'est pas la bonne, essayez une autre recherche.<input type='hidden' name='insee' id='insee' value='".$villes[0]["insee"]."'>
|
||||||
|
<input type='hidden' name='a_insee' id='a_insee' value=\"".$villes[0]["insee"]."\" >";//pour savoir si l'utilisateur a changé de ville (répercussion sur l'abonnement local).";
|
||||||
|
echo get_html_alerte_msg($msg,"alert-success");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$villes_select=$villes;
|
||||||
|
if(!$ajax_on)
|
||||||
|
$msg_form[]=str_replace("__NB__",count($villes),ERREUR_UTILISA_CP_PLUSIEURS_VILLES);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "<div class='form-group'>
|
||||||
|
<label for='insee' class='col-sm-3 control-label'> >> ".str_replace("__NB__",count($villes),ERREUR_UTILISA_CP_PLUSIEURS_VILLES).htmlentities($form["cp_ville"])."</label>
|
||||||
|
<div class='col-sm-9'><select name='insee' id='insee' autofocus class='form-control'>";
|
||||||
|
foreach ($villes_select as $ville_info)
|
||||||
|
echo "<option value='".$ville_info["insee"]."'>".htmlentities(affiche_utf8($ville_info["nom"],UTF8_OK))." (".$ville_info["cp"].").</option>";
|
||||||
|
echo "</select></div>
|
||||||
|
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'>Si votre ville n'est pas dans la liste, essayez une autre recherche.</p></div>
|
||||||
|
</div>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
56
ctrl/inscription.php
Executable file
56
ctrl/inscription.php
Executable file
@ -0,0 +1,56 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script contrôlant les données envoyées par le formulaire d'inscription du site
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_utilisateur.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if($user->test_session(false))
|
||||||
|
{
|
||||||
|
header("Location:".PAGE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(isset($_POST["pseudo"]))
|
||||||
|
include("../ctrl/compte_crea_tests.php");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($form["pseudo"]))//ça a pu foirer au-dessus...
|
||||||
|
{
|
||||||
|
if(isset($_GET["o"]))
|
||||||
|
$origine=htmlentities($_GET["o"],ENT_QUOTES);
|
||||||
|
else
|
||||||
|
$origine="inconnue";
|
||||||
|
//internautes venant d'un site tiers
|
||||||
|
if(!empty($_SESSION["email_abo"]))
|
||||||
|
{
|
||||||
|
$form["email"]=$_SESSION["email_abo"];
|
||||||
|
$pseudo=explode("@",$form["email"]);
|
||||||
|
$form["pseudo"]=$pseudo[0];
|
||||||
|
$origine="tiers";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$form["email"]=null;
|
||||||
|
$form["pseudo"]=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$mots=explode("|",FORMULAIRE_FILTRES_SPAM);
|
||||||
|
$hasard=array_rand($mots,1);
|
||||||
|
$_SESSION["mot"]=$mots[$hasard];
|
||||||
|
$max=min(strlen($_SESSION["mot"]),6);
|
||||||
|
$_SESSION["lettre"]=rand(2,$max);
|
||||||
|
$_SESSION["timeS"]=time();
|
||||||
|
//je créé un cookie pour savoir d'où vient l'utilisateur même si il ne s'inscrit pas aujourd'hui
|
||||||
|
if((empty($_COOKIE["origine"]))&&(!empty($origine)))
|
||||||
|
{
|
||||||
|
$date_expire_cookie=time()+(3600*24)*7;
|
||||||
|
setcookie("origine",$origine,$date_expire_cookie,"/",SITE_COOKIES_DOMAINE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$origine=$_COOKIE["origine"];
|
||||||
|
}
|
||||||
|
//formulaire d'inscription
|
||||||
|
include("../vues/inscription.php");
|
||||||
|
}
|
89
ctrl/liens_clic.php
Executable file
89
ctrl/liens_clic.php
Executable file
@ -0,0 +1,89 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script enregistrant dans un fichier les clics des utilisateurs
|
||||||
|
* et les redirigeant vers la page souhaitée
|
||||||
|
*
|
||||||
|
* exemple : http://www.hellofacteur.com/go/48/1041417/30
|
||||||
|
*
|
||||||
|
* Pour limiter les ressources consommées du fait de faux clics (spam),
|
||||||
|
* les infos de l'abonnement doivent être trouvées dans un fichier cache existant et l'id de l'utilisateur cohérent.
|
||||||
|
**/
|
||||||
|
set_time_limit(120);
|
||||||
|
require_once("../modele/journal_erreurs.php");
|
||||||
|
if((empty($page[1]))||(empty($page[2]))||(empty($page[3])))
|
||||||
|
{
|
||||||
|
header("location:".SITE_URL."/404.php");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
$id_abonnement=intval($page[1]);
|
||||||
|
$id_post=intval($page[2]);
|
||||||
|
$id_utilisateur=intval($page[3]);
|
||||||
|
$url_redirection="";
|
||||||
|
//je vérifie que l'abonnement existe et qu'il appartient bien à cet utilisateur
|
||||||
|
require_once("../modele/FclFlux_abonnement.php");
|
||||||
|
$abo=new FclFlux_abonnement();
|
||||||
|
$abo->id_abonnement=$id_abonnement;
|
||||||
|
$infos_abo=$abo->get_infos_cache(false);
|
||||||
|
if(!empty($infos_abo))
|
||||||
|
{
|
||||||
|
if($infos_abo["auteur_id"]==$id_utilisateur)
|
||||||
|
{
|
||||||
|
$posts_abo=$abo->get_liste_posts_cache(false,"mois");// version mois du fichier me permet de chercher un lien ancien (mail lu tardivement) - ici, pas de calcul du cache pour éviter de recharger des flux buggés à chaque clic.
|
||||||
|
if(!empty($posts_abo))
|
||||||
|
{
|
||||||
|
foreach($posts_abo as $post_infos)
|
||||||
|
{
|
||||||
|
if($post_infos["id_post"]==$id_post)
|
||||||
|
{
|
||||||
|
if(!empty($post_infos["auteur_id"]))
|
||||||
|
{// si une annonce a été saisie, on reste sur le site
|
||||||
|
$post=new FclFlux_post();
|
||||||
|
$post->id_post=$post_infos["id_post"];
|
||||||
|
$post_infos=$post->get_infos_cache(true);
|
||||||
|
if(!empty($post_infos["annonce"]))
|
||||||
|
$url_redirection=PAGE_REPERTOIRE_POST_INFO.$post->id_post;
|
||||||
|
unset($post);
|
||||||
|
}
|
||||||
|
if(empty($url_redirection)&&(!empty($post_infos["url"])))
|
||||||
|
$url_redirection=str_replace("&","&",$post_infos["url"]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unset($posts_abo);
|
||||||
|
//pas trouvé dans fichier, je cherche dans la bd
|
||||||
|
if((empty($url_redirection))&&(empty($MSG_MAINTENANCE)))
|
||||||
|
{
|
||||||
|
// je cherche dans la bd
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$cherche_post=FclFlux_post::recherche($id_post,"url,annonce");
|
||||||
|
if(!empty($cherche_post["annonce"]))
|
||||||
|
$url_redirection=PAGE_REPERTOIRE_POST_INFO.$id_post;
|
||||||
|
elseif(!empty($cherche_post["url"]))
|
||||||
|
$url_redirection=str_replace("&","&",$cherche_post["url"]);
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unset($infos_abo);
|
||||||
|
if(empty($url_redirection))
|
||||||
|
{
|
||||||
|
header("location:".SITE_URL."/404.php");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$post=new FclFlux_post();
|
||||||
|
$post->id_post=$id_post;
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
$user->id_utilisateur=$id_utilisateur;
|
||||||
|
if((!empty($page[4]))&&($page[4]=="s"))
|
||||||
|
$post->ajout_journal_clic($user,$abo,"site");
|
||||||
|
else
|
||||||
|
$post->ajout_journal_clic($user,$abo,"email");
|
||||||
|
//que cela aie marché ou pas, je redirige vers la page :
|
||||||
|
unset($post);unset($user);unset($abo);
|
||||||
|
echo "<html><head><meta charset=\"utf-8\"><meta http-equiv=\"refresh\" content=\"5;URL=$url_redirection\"><script>document.location.href='$url_redirection';</script><title>Hello facteur - redirection en cours.</title></head><body><h1>Si vous n'êtes pas redirigé(e) d'ici quelques secondes, <a href='$url_redirection'>cliquez-ici</a>.</h1></body></html>";
|
||||||
|
//header("location:".$url_redirection);
|
||||||
|
exit();
|
||||||
|
}
|
52
ctrl/liens_clic_annonce.php
Executable file
52
ctrl/liens_clic_annonce.php
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script enregistrant dans un fichier les clics des utilisateurs sur une annonce promotionnelle
|
||||||
|
* et les redirigeant vers l'url de l'annonce
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
set_time_limit(120);
|
||||||
|
if((empty($page[2]))||(empty($page[3]))||(empty($page[4])))
|
||||||
|
{
|
||||||
|
header("location:".SITE_URL."/404.html");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
$id_annonce=intval($page[2]);
|
||||||
|
$id_utilisateur=intval($page[3]);
|
||||||
|
$time_crea_annonce=intval($page[4]);
|
||||||
|
$url_redirection="";
|
||||||
|
//je vérifie que l'annonce existe
|
||||||
|
require_once("../modele/FclFlux_annonces.php");
|
||||||
|
$annonce=new FclFlux_annonce();
|
||||||
|
$annonce->id_annonce=$id_annonce;
|
||||||
|
$infos=$annonce->get_infos_cache(true);//force le calcul du fichier si nécessaire
|
||||||
|
if(!empty($infos))
|
||||||
|
{
|
||||||
|
if($infos["time_crea"]==$time_crea_annonce)
|
||||||
|
$url_redirection=$infos["lien_url"];
|
||||||
|
}
|
||||||
|
unset($infos);
|
||||||
|
//pas trouvé dans fichier, je cherche dans la bd
|
||||||
|
if((empty($url_redirection))&&(empty($MSG_MAINTENANCE)))
|
||||||
|
{
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$cherche_lien=FclFlux_annonce::recherche($id_annonce,"lien_url");
|
||||||
|
if($cherche_lien!==false)
|
||||||
|
$url_redirection=$cherche_lien["lien_url"];
|
||||||
|
$Bd=null;
|
||||||
|
}
|
||||||
|
if(empty($url_redirection))
|
||||||
|
{
|
||||||
|
unset($annonce);
|
||||||
|
header("location:".SITE_URL."/404.html");
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
$user->id_utilisateur=$id_utilisateur;
|
||||||
|
$annonce->ajout_journal_clic($user);
|
||||||
|
//que cela aie marché ou pas, je redirige vers la page :
|
||||||
|
unset($annonce);unset($user);
|
||||||
|
header("location:".$url_redirection);
|
||||||
|
exit();
|
||||||
|
}
|
24
ctrl/nouveau_passe.php
Executable file
24
ctrl/nouveau_passe.php
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script contrôlant les données envoyées par le formulaire de demande d'un nouveau mot de passe
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_utilisateur.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if($user->test_session(false))
|
||||||
|
{
|
||||||
|
header("Location:".PAGE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
unset($user);
|
||||||
|
if(isset($_POST["email"]))
|
||||||
|
include("../ctrl/compte_get_passe.php");
|
||||||
|
else
|
||||||
|
$form["email"]="";
|
||||||
|
//anti-bots
|
||||||
|
$_SESSION["timeS"]=time();
|
||||||
|
//formulaire
|
||||||
|
include("../vues/nouveau_passe.php");
|
||||||
|
}
|
54
ctrl/post_ajout.php
Executable file
54
ctrl/post_ajout.php
Executable file
@ -0,0 +1,54 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script contrôlant les données envoyées par le formulaire permettant à un internaute (connecté ou non) de soumettre une annonce.
|
||||||
|
* * ! les utilisateurs n'ayant pas encore validé leur compte ne doivent pas pouvoir soumettre d'actualité.
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_post.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
$user->test_session(false);//pour adapter le formulaire et les tests suivant si connecté ou non
|
||||||
|
if(isset($_POST["message"]))
|
||||||
|
include("../ctrl/post_ajout_tests.php");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$form["ancre"]=null;
|
||||||
|
$form["url"]="";
|
||||||
|
$form["annonce"]=null;
|
||||||
|
$form["type"]="annonce";
|
||||||
|
$form["insee"]=null;
|
||||||
|
if(!empty($user->connexion_ok))
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$infos_user=$user->recherche(intval($user->id_utilisateur),"id_utilisateur","time_validation,email,pseudo");
|
||||||
|
$Bd=null;
|
||||||
|
//$infos_user=$user->get_infos_cache(true);
|
||||||
|
if(empty($infos_user))//pas normal...
|
||||||
|
$user->supprime_session();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$form["email"]=$infos_user["email"];
|
||||||
|
$form["pseudo"]=$infos_user["pseudo"];
|
||||||
|
$form["ville"]["insee"]=null;
|
||||||
|
$form["ville"]["cp"]=null;
|
||||||
|
$form["ville"]["nom"]=null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(empty($user->connexion_ok))//j'ai pu me faire sauvagement déconnecté précédement...
|
||||||
|
{
|
||||||
|
$form["email"]=null;
|
||||||
|
$form["pseudo"]=null;
|
||||||
|
$form["ville"]["insee"]=null;
|
||||||
|
$form["ville"]["cp"]=null;
|
||||||
|
$form["ville"]["nom"]=null;
|
||||||
|
//antispam
|
||||||
|
$mots=explode("|",FORMULAIRE_FILTRES_SPAM);
|
||||||
|
$hasard=array_rand($mots,1);
|
||||||
|
$_SESSION["mot"]=$mots[$hasard];
|
||||||
|
$max=min(strlen($_SESSION["mot"]),6);//au-delà de 6, difficile à compter ?
|
||||||
|
$_SESSION["lettre"]=rand(2,$max);
|
||||||
|
$_SESSION["timeS"]=time();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//formulaire de contact
|
||||||
|
include("../vues/post_ajout.php");
|
38
ctrl/post_ajout_illustration.php
Executable file
38
ctrl/post_ajout_illustration.php
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Script permettant à un utilisateur de télécharger une illustration suite à la soumission d'un post.
|
||||||
|
*
|
||||||
|
**/
|
||||||
|
require_once("../modele/FclFlux_post.php");
|
||||||
|
$user=new FclFlux_utilisateur();
|
||||||
|
if(!$user->test_session(false))
|
||||||
|
{// en théorie, pas possible mais...
|
||||||
|
unset($user);
|
||||||
|
$redirige=PAGE_AJOUT_POST_ILLUSTRATION.$page[3];
|
||||||
|
FclFlux_utilisateur::crea_cookie_redirection($redirige,1);
|
||||||
|
header("Location:".PAGE_CONNEXION);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(!empty($_FILES['illustration']['tmp_name']))
|
||||||
|
include("../ctrl/post_illustration_maj.php");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(empty($Bd))
|
||||||
|
require("../modele/connexion-bd.php");
|
||||||
|
$post_infos=FclFlux_post::recherche(intval($page[3]),"ancre,auteur_id,time_validation");
|
||||||
|
if(empty($post_infos["ancre"])||(empty($post_infos["auteur_id"])))
|
||||||
|
{// pareil, en théorie, ce n'est pas possible.
|
||||||
|
header("Location:".PAGE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
elseif(($post_infos["auteur_id"]!=$user->id_utilisateur)||($post_infos["time_validation"]!=0))//!!! ajouter un test pour savoir si l'actu n'a pas été validée.
|
||||||
|
{// là, il y a un problème...
|
||||||
|
header("Location:".PAGE_ACCUEIL);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// le formulaire de téléchargement de l'illustration.
|
||||||
|
include("../vues/post_ajout_illustration.php");
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user