X-Git-Url: http://git.cyclocoop.org/?a=blobdiff_plain;f=www%2Fplugins-dist%2Fpetitions%2Fformulaires%2Fsignature.php;h=59cddf1f5d3fac93e9d1f61f47960dcc2121f76b;hb=4f443dce95ff6f8221c189880a70c74ce1c1f238;hp=5a78eae5a36fb2294abcdf7f2dc49b02706cd50f;hpb=4a628e9b277d3617535f99d663ca79fa2e891177;p=lhc%2Fweb%2Fwww.git diff --git a/www/plugins-dist/petitions/formulaires/signature.php b/www/plugins-dist/petitions/formulaires/signature.php index 5a78eae5..59cddf1f 100644 --- a/www/plugins-dist/petitions/formulaires/signature.php +++ b/www/plugins-dist/petitions/formulaires/signature.php @@ -10,95 +10,109 @@ * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ -if (!defined("_ECRIRE_INC_VERSION")) return; +if (!defined("_ECRIRE_INC_VERSION")) { + return; +} function formulaires_signature_charger_dist($id_article) { include_spip('base/abstract_sql'); // pas de petition, pas de signature - if (!$r = sql_fetsel('*','spip_petitions','id_article='.intval($id_article))) + if (!$r = sql_fetsel('*', 'spip_petitions', 'id_article=' . intval($id_article))) { return false; + } // pas de signature sur une petition fermee (TODO) ou poubelle - if (isset($r['statut']) AND in_array($r['statut'],array('off','poubelle'))) + if (isset($r['statut']) and in_array($r['statut'], array('off', 'poubelle'))) { return false; + } $id_petition = $r['id_petition']; $valeurs = array( 'id_petition' => $id_petition, 'id_article' => $id_article, # pour compat - 'session_nom' => isset($GLOBALS['visiteur_session']['session_nom'])?$GLOBALS['visiteur_session']['session_nom']:(isset($GLOBALS['visiteur_session']['nom'])?$GLOBALS['visiteur_session']['nom']:''), - 'session_email'=> isset($GLOBALS['visiteur_session']['session_email'])?$GLOBALS['visiteur_session']['session_email']:(isset($GLOBALS['visiteur_session']['email'])?$GLOBALS['visiteur_session']['email']:''), - 'signature_nom_site'=>'', - 'signature_url_site'=>'http://', - '_texte'=>$r['texte'], - '_message'=>($r['message'] == 'oui') ? ' ':'', - 'message'=>'', - 'site_obli' => ($r['site_obli'] == 'oui'?' ':''), - 'debut_signatures'=>'' // pour le nettoyer de l'url d'action ! + 'session_nom' => isset($GLOBALS['visiteur_session']['session_nom']) ? $GLOBALS['visiteur_session']['session_nom'] : (isset($GLOBALS['visiteur_session']['nom']) ? $GLOBALS['visiteur_session']['nom'] : ''), + 'session_email' => isset($GLOBALS['visiteur_session']['session_email']) ? $GLOBALS['visiteur_session']['session_email'] : (isset($GLOBALS['visiteur_session']['email']) ? $GLOBALS['visiteur_session']['email'] : ''), + 'signature_nom_site' => '', + 'signature_url_site' => 'http://', + '_texte' => $r['texte'], + '_message' => ($r['message'] == 'oui') ? ' ' : '', + 'message' => '', + 'site_obli' => ($r['site_obli'] == 'oui' ? ' ' : ''), + 'debut_signatures' => '' // pour le nettoyer de l'url d'action ! ); if ($c = _request('var_confirm')) { $valeurs['_confirm'] = $c; $valeurs['editable'] = false; } + return $valeurs; } + function affiche_reponse_confirmation($confirm) { - if (!$confirm) return ''; - $confirmer_signature = charger_fonction('confirmer_signature','action'); + if (!$confirm) { + return ''; + } + $confirmer_signature = charger_fonction('confirmer_signature', 'action'); + return $confirmer_signature($confirm); # calculee plus tot: cf petitions_options } function formulaires_signature_verifier_dist($id_article) { $erreurs = array(); - $oblis = array('session_nom','session_email'); + $oblis = array('session_nom', 'session_email'); include_spip('base/abstract_sql'); - $row = sql_fetsel('*','spip_petitions','id_article='.intval($id_article)); - if (!$row) + $row = sql_fetsel('*', 'spip_petitions', 'id_article=' . intval($id_article)); + if (!$row) { $erreurs['message_erreur'] = _T('petitions:form_pet_probleme_technique'); + } $id_petition = $row['id_petition']; - if ($row['site_obli'] == 'oui'){ + if ($row['site_obli'] == 'oui') { $oblis[] = 'signature_nom_site'; $oblis[] = 'signature_url_site'; set_request('signature_url_site', vider_url(_request('signature_url_site'))); } - foreach ($oblis as $obli) - if (!_request($obli)) + foreach ($oblis as $obli) { + if (!_request($obli)) { $erreurs[$obli] = _T('info_obligatoire'); - - if ($nom = _request('session_nom') AND strlen($nom) < 2) - $erreurs['session_nom'] = _T('form_indiquer_nom'); + } + } + + if ($nom = _request('session_nom') and strlen($nom) < 2) { + $erreurs['session_nom'] = _T('form_indiquer_nom'); + } include_spip('inc/filtres'); - if (($mail=_request('session_email')) == _T('info_mail_fournisseur')) + if (($mail = _request('session_email')) == _T('info_mail_fournisseur')) { $erreurs['session_email'] = _T('form_indiquer_email'); - elseif ($mail AND !email_valide($mail)) + } elseif ($mail and !email_valide($mail)) { $erreurs['session_email'] = _T('form_email_non_valide'); - elseif (strlen(_request('nobot')) - OR (@preg_match_all(',\bhref=[\'"]?http,i', // bug PHP - _request('message') - # , PREG_PATTERN_ORDER - ) - >2)) { + } elseif (strlen(_request('nobot')) + or (@preg_match_all(',\bhref=[\'"]?http,i', // bug PHP + _request('message') + # , PREG_PATTERN_ORDER + ) + > 2) + ) { #$envoyer_mail = charger_fonction('envoyer_mail','inc'); #envoyer_mail('email_moderateur@example.tld', 'spam intercepte', var_export($_POST,1)); $erreurs['message_erreur'] = _T('petitions:form_pet_probleme_liens'); } - if ($row['site_obli'] == 'oui'){ + if ($row['site_obli'] == 'oui') { if (!vider_url($url_site = _request('signature_url_site'))) { $erreurs['signature_url_site'] = _T('form_indiquer_nom_site'); - } - elseif (!count($erreurs)) { + } elseif (!count($erreurs)) { include_spip('inc/distant'); - if (!recuperer_page($url_site, false, true, 0)) + if (!recuperer_page($url_site, false, true, 0)) { $erreurs['signature_url_site'] = _T('petitions:form_pet_url_invalide'); + } } } - if (!count($erreurs)){ + if (!count($erreurs)) { // tout le monde est la. - $email_unique = $row['email_unique'] == "oui"; - $site_unique = $row['site_unique'] == "oui"; + $email_unique = $row['email_unique'] == "oui"; + $site_unique = $row['site_unique'] == "oui"; // Refuser si deja signe par le mail ou le site quand demande // Il y a un acces concurrent potentiel, @@ -106,13 +120,19 @@ function formulaires_signature_verifier_dist($id_article) { // On traite donc le probleme a la confirmation. if ($email_unique) { - $r = sql_countsel('spip_signatures', "id_petition=".intval($id_petition)." AND ad_email=" . sql_quote($mail) . " AND statut='publie'"); - if ($r) $erreurs['message_erreur'] = _T('petitions:form_pet_deja_signe'); + $r = sql_countsel('spip_signatures', + "id_petition=" . intval($id_petition) . " AND ad_email=" . sql_quote($mail) . " AND statut='publie'"); + if ($r) { + $erreurs['message_erreur'] = _T('petitions:form_pet_deja_signe'); + } } if ($site_unique) { - $r = sql_countsel('spip_signatures', "id_petition=".intval($id_petition)." AND url_site=" . sql_quote($url_site) . " AND (statut='publie' OR statut='poubelle')"); - if ($r) $erreurs['message_erreur'] = _T('petitions:form_pet_site_deja_enregistre'); + $r = sql_countsel('spip_signatures', + "id_petition=" . intval($id_petition) . " AND url_site=" . sql_quote($url_site) . " AND (statut='publie' OR statut='poubelle')"); + if ($r) { + $erreurs['message_erreur'] = _T('petitions:form_pet_site_deja_enregistre'); + } } } @@ -125,12 +145,12 @@ function formulaires_signature_traiter_dist($id_article) { if (spip_connect()) { $controler_signature = charger_fonction('controler_signature', 'inc'); $reponse = $controler_signature($id_article, - _request('session_nom'), _request('session_email'), - _request('message'), _request('signature_nom_site'), - _request('signature_url_site'), _request('url_page')); + _request('session_nom'), _request('session_email'), + _request('message'), _request('signature_nom_site'), + _request('signature_url_site'), _request('url_page')); } - return array('message_ok'=>$reponse); + return array('message_ok' => $reponse); } // @@ -143,26 +163,32 @@ function inc_controler_signature_dist($id_article, $nom, $mail, $message, $site, // tout le monde est la. // cela a ete verifie en amont, dans formulaires_signature_verifier() - if (!$row = sql_fetsel('*', 'spip_petitions', "id_article=".intval($id_article))) + if (!$row = sql_fetsel('*', 'spip_petitions', "id_article=" . intval($id_article))) { return _T('petitions:form_pet_probleme_technique'); + } $statut = ""; - if (!$ret = signature_a_confirmer($id_article, $url_page, $nom, $mail, $site, $url_site, $message, $lang, $statut)) + if (!$ret = signature_a_confirmer($id_article, $url_page, $nom, $mail, $site, $url_site, $message, 'fr'/*inutilise*/, + $statut) + ) { return _T('petitions:form_pet_probleme_technique'); + } include_spip('action/editer_signature'); $id_signature = signature_inserer($row['id_petition']); - if (!$id_signature) return _T('petitions:form_pet_probleme_technique'); + if (!$id_signature) { + return _T('petitions:form_pet_probleme_technique'); + } signature_modifier($id_signature, array( - 'statut' => $statut, - 'nom_email' => $nom, - 'ad_email' => $mail, - 'message' => $message, - 'nom_site' => $site, - 'url_site' => $url_site + 'statut' => $statut, + 'nom_email' => $nom, + 'ad_email' => $mail, + 'message' => $message, + 'nom_site' => $site, + 'url_site' => $url_site ) ); @@ -170,8 +196,7 @@ function inc_controler_signature_dist($id_article, $nom, $mail, $message, $site, } // https://code.spip.net/@signature_a_confirmer -function signature_a_confirmer($id_article, $url_page, $nom, $mail, $site, $url, $msg, $lang, &$statut) -{ +function signature_a_confirmer($id_article, $url_page, $nom, $mail, $site, $url, $msg, $lang, &$statut) { include_spip('inc/texte'); include_spip('inc/filtres'); @@ -181,16 +206,16 @@ function signature_a_confirmer($id_article, $url_page, $nom, $mail, $site, $url, if ( // Cas 1: on est loge et on signe avec son vrai email ( - isset($GLOBALS['visiteur_session']['statut']) - AND $GLOBALS['visiteur_session']['session_email'] == $GLOBALS['visiteur_session']['email'] - AND strlen($GLOBALS['visiteur_session']['email']) + isset($GLOBALS['visiteur_session']['statut']) + and $GLOBALS['visiteur_session']['session_email'] == $GLOBALS['visiteur_session']['email'] + and strlen($GLOBALS['visiteur_session']['email']) ) // Cas 2: on a deja signe une petition, et on conserve le meme email - OR ( - isset($GLOBALS['visiteur_session']['email_confirme']) - AND $GLOBALS['visiteur_session']['session_email'] == $GLOBALS['visiteur_session']['email_confirme'] - AND strlen($GLOBALS['visiteur_session']['session_email']) + or ( + isset($GLOBALS['visiteur_session']['email_confirme']) + and $GLOBALS['visiteur_session']['session_email'] == $GLOBALS['visiteur_session']['email_confirme'] + and strlen($GLOBALS['visiteur_session']['session_email']) ) ) { // Si on est en ajax on demande a reposter sans ajax, car il faut @@ -211,32 +236,39 @@ function signature_a_confirmer($id_article, $url_page, $nom, $mail, $site, $url, // // Cas normal : envoi d'une demande de confirmation // - $row = sql_fetsel('titre,lang', 'spip_articles', "id_article=".intval($id_article)); + $row = sql_fetsel('titre,lang', 'spip_articles', "id_article=" . intval($id_article)); $lang = lang_select($row['lang']); $titre = textebrut(typo($row['titre'])); - if ($lang) lang_select(); + if ($lang) { + lang_select(); + } - if (!strlen($statut)) + if (!strlen($statut)) { $statut = signature_test_pass(); + } - if ($lang != $GLOBALS['meta']['langue_site']) - $url_page = parametre_url($url_page, "lang", $lang,'&'); + if ($lang != $GLOBALS['meta']['langue_site']) { + $url_page = parametre_url($url_page, "lang", $lang, '&'); + } $url_page = parametre_url($url_page, 'var_confirm', $statut, '&') - . "#sp$id_article"; + . "#sp$id_article"; $r = _T('petitions:form_pet_mail_confirmation', - array('titre' => $titre, - 'nom_email' => $nom, - 'nom_site' => $site, - 'url_site' => $url, - 'url' => $url_page, - 'message' => $msg)); - - $titre = _T('petitions:form_pet_confirmation')." ". $titre; - $envoyer_mail = charger_fonction('envoyer_mail','inc'); - if ($envoyer_mail($mail,$titre, $r)) - return _T('petitions:form_pet_envoi_mail_confirmation',array('email'=>$mail)); + array( + 'titre' => $titre, + 'nom_email' => $nom, + 'nom_site' => $site, + 'url_site' => $url, + 'url' => $url_page, + 'message' => $msg + )); + + $titre = _T('petitions:form_pet_confirmation') . " " . $titre; + $envoyer_mail = charger_fonction('envoyer_mail', 'inc'); + if ($envoyer_mail($mail, $titre, $r)) { + return _T('petitions:form_pet_envoi_mail_confirmation', array('email' => $mail)); + } return false; # erreur d'envoi de l'email } @@ -252,5 +284,3 @@ function signature_test_pass() { return $passw; } - -?>