[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins-dist / petitions / formulaires / signature.php
index 5a78eae..59cddf1 100644 (file)
  *  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;
 }
-
-?>