hellofacteurV1/vues/post_ajout.php

259 lines
16 KiB
PHP
Raw Permalink Normal View History

2021-11-02 11:23:49 +01:00
<?php
/**
* Vue affichant le formulaire de soumission d'une annonce.
* + scripts ajax testant la saisie
*
**/
$header_title="Annoncez votre actualité sur ".SITE_NOM." : spectacles, conférences, marchés, etc.";
$hearder_description=SITE_NOM." : proposez gratuitement votre actualité. Si elle est acceptée, elle sera diffusée par email aux abonnés de votre ville.";
$header_robots="index,follow";
$body_title="Proposez une actualité.";
$ariane_items[0]["txt"]="<li><b>Proposez une actualité.</b></li>";
$ariane_items[0]["form"]=false;
$ariane_items[0]["actif"]=false;
if(!empty($_SESSION["message"]))
{
$msg_infos[0]="<strong>".$_SESSION["message"]."</strong>";
$_SESSION["message"]="";
}
$form_hs="<strong>Bonjour,<br><br>Il n'est plus possible de proposer des actualités sur Hello facteur.<br>
Les dates qui ont déjà été validées seront diffusées jusqu'à leur expiration.<br><br>Merci de votre compréhension.</strong>";
if(!empty($form_hs))
{
$msg_infos[0]=$form_hs;
unset($form);
}
elseif(MSG_MAINTENANCE!="")
{
$msg_infos[0]=MSG_MAINTENANCE;
unset($form);
}
elseif((!empty($user->connexion_ok))&&(empty($infos_user["time_validation"])))
{
$msg_infos[0]="<strong>Vous devez d'abord valider votre compte avant de pouvoir proposer une actualité.</strong><br>Pour ce faire cliquez sur le lien de validation que vous avez reçu sur votre adresse : <strong>".htmlspecialchars($form["email"])."</strong>.<br>Si vous ne trouvez pas ce message (même après avoir vérifié le dossier \"spam\" de votre messagerie) ou encore que vous vous êtes trompé lors de la saisie de votre email, <a href='".PAGE_CONTACT."'>contactez-nous</a> pour obtenir de l'aide.";
unset($form);
}
else
{
if(!empty($user->connexion_ok))
$msg_infos[0]="Hello ".htmlspecialchars($form["pseudo"])."!<br>Le formulaire ci-dessous vous permet de <b>proposer gratuitement une actualité</b> à diffuser par email aux autres abonnés du site Hello facteur de la ville concernée.<br>
<b>Avant de proposer votre première actualité, merci de lire <u><a href='".PAGE_AJOUT_POST_CONSIGNES."' target='_blank'>les règles d'acceptation</a></u></b>.";
else
$msg_infos[0]="Le formulaire ci-dessous vous permet de <b>proposer gratuitement une actualité</b> à diffuser par email aux abonnés du site Hello facteur de la ville concernée.<br>
Si ce n'est déjà le cas, <b>un compte Hello facteur vous sera créé</b> et vous serez abonné aux actualités locales de la région dans laquelle vous soumettez votre actualité.<br>
De ce fait, <b><u>veillez bien à saisir une adresse email correcte</u></b> car elle sera nécessaire à la validation de votre annonce.<br>
<b>Avant de proposer votre première actualité, merci de lire <u><a href='".PAGE_AJOUT_POST_CONSIGNES."' target='_blank'>les règles d'acceptation</a></u></b>.";
$form["nom"]="Proposez une actualité.";
$form["champs"]="<form method='post' id='post_ajout' action='".PAGE_AJOUT_POST."' role='form' class='form-horizontal'>
<div class='form-group'><label for='hub' class='col-sm-3 control-label'>Type d'actualité :</label>
<label class='checkbox-inline'><input type='radio' name='hub' value='agenda' checked='checked'> Agenda.</label>
<label class='checkbox-inline'><input type='radio' name='hub' value='annonce'> Petite annonce.</label>
<label class='checkbox-inline'><input type='radio' name='hub' value='cp'> Autre actualité locale.</label>
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire</b>. Permet de diffuser votre actualité aux abonnés Hello facteur intéressés par ce type d'actualités.</p></div>
</div>
<div class='form-group'>
<label for='cp_ville' class='col-sm-3 control-label'>Ville :</label>
<div class='col-sm-9'><input class='form-control' type='text' maxlength='45' name='cp_ville' id='cp_ville' value=\"".$form["ville"]["cp"]."\" ></div>
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire</b>. Saisir <b>le code postal ou au moins 3 caractères du nom de la ville concernée</b> par l'actualité proposée.</p></div>
</div>";
if(!empty($villes_select))
{
$form["champs"].="<div id='sup_villes' class='form-group'>
<label for='insee' class='col-sm-3 control-label'>Merci de préciser la ville</label>
<div class='col-sm-9'><select name='insee' autofocus class='form-control'>";
foreach ($villes_select as $ville_info)
$form["champs"].="<option value='".$ville_info["insee"]."'>".htmlentities(affiche_utf8($ville_info["nom"],UTF8_OK))."</option>";
$form["champs"].="</select></div>
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'>Si la ville concernée n'est pas dans la liste, essayez un autre code postal.</p></div>
</div>";
}
else if(!empty($form["ville"]["insee"]))
{
$msg[0]="Ville associée à votre compte : <b>".htmlentities(affiche_utf8($form["ville"]["nom"],UTF8_OK))."</b>. Si ce n'est pas celle de votre actualité, saisissez un autre code postal ci-dessus.";
$form["champs"].="<div id='sup_villes'><div class='col-sm-12'>".get_html_alerte_msg($msg,"alert-success")."</div><input type='hidden' name='insee' id='insee' value=\"".$form["ville"]["insee"]."\" ></div>";
}
else
$form["champs"].="<div id='sup_villes'></div>";
$form["champs"].="<div class='form-group'>
<label for='ancre' class='col-sm-3 control-label'>Titre / accroche :</label>
<div class='col-sm-9'><input class='form-control' type='text' maxlength='".POST_MAX_ANCRE."' name='ancre' id='ancre' value=\"".htmlspecialchars($form["ancre"])."\" required></div>
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire</b>. Texte d'accroche diffusé par email. Doit compter au maximum ".POST_MAX_ANCRE." caractères.</p></div>
</div>
<div class='form-group'>
<label for='url' class='col-sm-3 control-label'>Lien :</label>
<div class='col-sm-9'><input class='form-control' type='url' maxlength='".POST_MAX_URL."' name='url' id='url' value=\"".$form["url"]."\"></div>
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire <u>si vous ne saisissez pas</u> une annonce détaillée ci-dessous</b>. Adresse d'une page internet (ex : http://www.votre-site.com/votre-actu.html) détaillant l'actualité proposée.</p></div>
</div>
<div class='form-group'>
<label for='annonce' class='col-sm-3 control-label'>Annonce détaillée :</label>
<div class='col-sm-9'><textarea class='form-control' rows='8' name='annonce' id='annonce'>".htmlspecialchars($form["annonce"])."</textarea></div>
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire <u>si vous n'avez pas saisi</u> l'adresse d'un lien ci-dessus</b>. Si il n'est pas vide, ce texte doit compter entre ".POST_MIN_ANNONCE." et ".POST_MAX_ANNONCE." caractères.</p></div>
</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=''></div>
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Facultatif</b>. Par défaut votre actualité commencera à être diffusée dès sa validation (généralement sous 24H). Mais vous pouvez choisir une date <b>plus tardive</b> par exemple si vous annoncez un événement éloigné. Format ".DATE_FORMAT.".</p></div>
</div>";
if(!empty($user->connexion_ok))
$form["champs"].="<input type='hidden' name='email' id='email' value=\"".htmlspecialchars($form["email"])."\">
<input type='hidden' name='pseudo' id='pseudo' value=\"".htmlspecialchars($form["pseudo"])."\">";
else
{
$form["champs"].="<div class='form-group'>
<label for='peudo' 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["pseudo"])."\" 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='email' class='col-sm-3 control-label'>Votre adresse email :</label>
<div class='col-sm-9'><input class='form-control' type='email' maxlength='".UTILISATEUR_MAX_EMAIL."' name='email' id='email' value=\"".htmlspecialchars($form["email"])."\" required></div>
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire</b>. Attention! votre adresse email doit être correcte car un lien vous permettant de valider votre actualité vous y sera envoyé.</p></div>
</div>
<div class='form-group'>
<label for='test' class='col-sm-3 control-label'>Antispam :</label>
<div class='col-sm-9'><input class='form-control' type='text' maxlength='5' name='test' id='test' required></div>
<div class='col-sm-offset-3 col-sm-9'><p class='help-block'><b>Obligatoire</b>. Merci de saisir ci-dessus <b>la ".$_SESSION["lettre"]."<sup>ième</sup> lettre du mot : <u style='letter-spacing:0.3em'>".$_SESSION["mot"]."</u></b>.</p></div>
</div>
<div class='form-group'>
<div class='col-sm-offset-3 col-sm-9'>
<div class='checkbox'>
<label for='cgu_ok'><input name='cgu_ok' type='checkbox' id='cgu_ok' value='1' required> En proposant une actualité sur ".SITE_NOM.", j'accepte ses <a href='".PAGE_CGU."' target='_blank' title='Lire les CGU'>Conditions Générales dUtilisation</a>.</a></label>
</div></div></div>";
}
$form["champs"].="<div id='msg_post_ajout'></div>
<div class='form-group'><div class='col-sm-offset-3 col-sm-9'><button type='submit' class='btn btn-success btn-lg'>Envoyer mon actualité !</button></div></div>
<input type='hidden' name='id_auteur' id='id_auteur' value='".$user->id_utilisateur."'>";
if(isset($id_annonce))
$form["champs"].="<input type='hidden' name='id_annonce' id='id_annonce' value='$id_annonce'>";
$form["champs"].="</form>";
$body_content="<div class=\"share-buttons\">Partagez : <a target=\"_blank\" title=\"Twitter\" href=\"https://twitter.com/share?url=".PAGE_AJOUT_POST."&amp;text=Votre actualité comme une lettre à la poste.\" rel=\"nofollow\" onclick=\"javascript:window.open(this.href,'','menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=400,width=700');return false;\"><img src=\"".SITE_URL."/images/icones/big/twitter_icon.png\" alt=\"Twitter\"></a>
<a target=\"_blank\" title=\"Facebook\" href=\"https://www.facebook.com/sharer.php?u=".PAGE_AJOUT_POST."&amp;t=Votre actualité comme une lettre à la poste.\" rel=\"nofollow\" onclick=\"javascript:window.open(this.href,'','menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=500,width=700');return false;\"><img src=\"".SITE_URL."/images/icones/big/facebook_icon.png\" alt=\"Facebook\"></a>
<a target=\"_blank\" title=\"Google +\" href=\"https://plus.google.com/share?url=".PAGE_AJOUT_POST."&amp;hl=fr\" rel=\"nofollow\" onclick=\"javascript:window.open(this.href,'','menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=450,width=650');return false;\"><img src=\"".SITE_URL."/images/icones/big/gplus_icon.png\" alt=\"Google Plus\"></a>
<a target=\"_blank\" title=\"Linkedin\" href=\"https://www.linkedin.com/shareArticle?mini=true&amp;url=".PAGE_AJOUT_POST."&amp;title=Votre actualité comme une lettre à la poste.\" rel=\"nofollow\" onclick=\"javascript:window.open(this.href,'','menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=450,width=650');return false;\"><img src=\"".SITE_URL."/images/icones/big/linkedin_icon.png\" alt=\"Linkedin\"></a>
<a target=\"_blank\" title=\"Pinterest\" href=\"https://pinterest.com/pin/create/button/?url=".PAGE_AJOUT_POST."&amp;description=Votre actualité comme une lettre à la poste.\" rel=\"nofollow\" onclick=\"javascript:window.open(this.href,'','menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=450,width=650');return false;\"><img src=\"".SITE_URL."/images/icones/big//pinterest_icon.png\" alt=\"Pinterest\"></a>
<a target=\"_blank\" title=\"Scoop.it!\" href=\"https://www.scoop.it/bookmarklet?url=".PAGE_AJOUT_POST."\" rel=\"nofollow\" onclick=\"javascript:window.open(this.href,'','menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=450,width=650');return false;\"><img src=\"".SITE_URL."/images/icones/big/scoopit_icon.png\" alt=\"Scoop.it!\"></a>
<a target=\"_blank\" title=\"Diaspora\" href=\"http://sharetodiaspora.github.io/?title=Votre actualité comme une lettre à la poste.&amp;url=".PAGE_AJOUT_POST."\"><img src=\"".SITE_URL."/images/icones/big/diaspora_icon.png\" alt=\"Diaspora\"></a></div>";
//le code pour ajax
ob_start();
?>
<script src="<?=SITE_URL;?>/themes/seb/assets/js/pickadate/picker.js"></script>
<script src="<?=SITE_URL;?>/themes/seb/assets/js/pickadate/picker.date.js"></script>
<script src="<?=SITE_URL;?>/themes/seb/assets/js/pickadate/picker.time.js"></script>
<script src="<?=SITE_URL;?>/themes/seb/assets/js/pickadate/legacy.js"></script>
<script src="<?=SITE_URL;?>/themes/seb/assets/js/pickadate/fr_FR.js"></script>
<script>
function is_int(value)
{//source : http://www.inventpartners.com/javascript_is_int
if((parseFloat(value)==parseInt(value))&&!isNaN(value))
{
return true;
}
else
{
return false;
}
return true;
}
$(document).ready(function()
{
$("#time_diffusion").pickadate();
$('#cp_ville').blur(function()
{
var $this=$(this);
var cp=$this.val();
var ln=cp.length;
if((ln!==0)&&(ln<3))
{
$('#sup_villes').html('<?php echo str_replace("'","\"",get_html_alerte_msg((array) ERREUR_UTILISA_CP_LONG));?>');
}
else if(ln!==0)
{
$.ajax(
{
url:'<?=SITE_URL;?>/JS/get_ville_cp',
type:'POST',
data:'cp_ville='+cp+'&ajax=1',
success:function(code)
{
$('#sup_villes').html(code);
}
});
}
});
$('#post_ajout').on('submit', function(e)
{
e.preventDefault();
var $this=$(this);
var hub=$('input[type=radio][name=hub]:checked').attr('value');
var insee=$('#insee').val();
var ancre=$('#ancre').val();
var url=$('#url').val();
var annonce=$('#annonce').val();
<?php
if(empty($user->connexion_ok))
{
?>
var email=$('#email').val();
var pseudo=$('#pseudo').val();
var test=$('#test').val();
var cgu_ok=$("input[name=cgu_ok]:checked").val();
if((pseudo=='')||(email=='')||(test=='')||(cgu_ok==undefined)||(hub=='')||(insee==undefined)||(insee=='')||(ancre=='')||((annonce=='')&&(url=='')))
{
$('#msg_post_ajout').html("<?php echo str_replace("\"","'",get_html_alerte_msg((array) ERREUR_UTILISA_CHAMPS_ABSENTS));?>");
}
<?php
}
else
{
?>
if((hub=='')||(insee==undefined)||(insee=='')||(ancre=='')||((annonce=='')&&(url=='')))
{
$('#msg_post_ajout').html("<?php echo str_replace("\"","'",get_html_alerte_msg((array) ERREUR_UTILISA_CHAMPS_ABSENTS));?>");
}
<?php
}
?>
else
{
$.ajax(
{
url:'<?=SITE_URL;?>/JS/post_ajout_tests',
type:'POST',
data:$this.serialize()+'&ajax=1',
success:function(code)
{
if(is_int(code))
{
window.location="<?=PAGE_AJOUT_POST_ILLUSTRATION;?>"+code;
}
else if(code=="<?php echo str_replace("\"","'",MSG_UTILISA_ENVOI_POST_VALID);?>")
{
$('#form').html("<?php echo str_replace("\"","'",get_html_alerte_msg((array) MSG_UTILISA_ENVOI_POST_VALID,"alert-success"));?>");
$('html,body').animate({scrollTop: $("#page-header").offset().top}, 'slow');
}
else if(code=="<?php echo str_replace("\"","'",MSG_UTILISA_ENVOI_POST_VALID_CREA_COMPTE);?>")
{
$('#form').html("<?php echo str_replace("\"","'",get_html_alerte_msg((array) MSG_UTILISA_ENVOI_POST_VALID_CREA_COMPTE,"alert-success"));?>");
$('html,body').animate({scrollTop: $("#page-header").offset().top}, 'slow');
}
else
{
$('#msg_post_ajout').html(code);
}
}
});
}
});
});
</script>
<?php
$footer_JS=ob_get_contents();
ob_end_clean();
}
require(TEMPLATE_REP."/page.php");