function action_valider_signature_dist($id_signature = null) { if (!$id_signature) { $securiser_action = charger_fonction('securiser_action', 'inc'); $id_signature = $securiser_action(); } if (autoriser('publier', 'signature', $id_signature)) { include_spip('action/editer_signature'); signature_modifier($id_signature, array('statut' => 'publie')); } }
function action_supprimer_signature_dist($id_signature = null) { if (!$id_signature) { $securiser_action = charger_fonction('securiser_action', 'inc'); $id_signature = $securiser_action(); } if (autoriser('supprimer', 'signature', $id_signature)) { $id_article = sql_getfetsel('P.id_article', 'spip_signatures AS S JOIN spip_petitions AS P ON S.id_petition=P.id_petition', 'S.id_signature=' . intval($id_signature)); if ($id_article and autoriser('modererpetition', 'article', $id_article)) { include_spip('action/editer_signature'); signature_modifier($id_signature, array('statut' => 'poubelle')); } } }
function action_relancer_signature_dist($id_signature = null) { if (!$id_signature) { $securiser_action = charger_fonction('securiser_action', 'inc'); $id_signature = $securiser_action(); } if (autoriser('relancer', 'signature', $id_signature)) { $row = sql_fetsel('*', 'spip_signatures', 'id_signature=' . intval($id_signature)); $id_article = sql_getfetsel('id_article', 'spip_petitions', 'id_petition=' . intval($row['id_petition'])); if ($id_article = intval($id_article) and autoriser('mordererpetition', 'article', $id_article)) { include_spip('action/editer_signature'); include_spip('formulaires/signature'); $url = generer_url_entite_absolue($id_article, 'article', '', '', true); if (signature_a_confirmer($id_article, $url, $row['nom_email'], $row['ad_email'], $row['nom_site'], $row['url_site'], $row['message'], $row['lang'], $row['statut'])) { signature_modifier($id_signature, array("date_time" => date('Y-m-d H:i:s'))); } } } }
function inc_controler_signature_dist($id_article, $nom, $mail, $message, $site, $url_site, $url_page) { // 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)))) { return _T('petitions:form_pet_probleme_technique'); } $statut = ""; if (!($ret = signature_a_confirmer($id_article, $url_page, $nom, $mail, $site, $url_site, $message, 'fr', $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'); } signature_modifier($id_signature, array('statut' => $statut, 'nom_email' => $nom, 'ad_email' => $mail, 'message' => $message, 'nom_site' => $site, 'url_site' => $url_site)); return $ret; }
function revision_signature($id_signature, $c = false) { return signature_modifier($id_signature, $c); }
/** * Confirmer une signature * Retour a l'ecran du lien de confirmation d'une signature de petition. * var_confirm contient le hash de la signature. * Au premier appel on traite et on publie * Au second appel on retourne le resultat a afficher * * @staticvar string $confirm * @param <type> $var_confirm * @return string */ function action_confirmer_signature_dist($var_confirm = null) { static $confirm = null; // reponse mise en cache dans la session ? $code_message = 'signature_message_' . strval($var_confirm); if (isset($GLOBALS['visiteur_session'][$code_message])) { return $GLOBALS['visiteur_session'][$code_message]; } // reponse deja calculee depuis public/assembler.php if (isset($confirm)) { return $confirm; } if (is_null($var_confirm)) { $securiser_action = charger_fonction('securiser_action', 'inc'); $var_confirm = $securiser_action(); } if (!$var_confirm or $var_confirm == 'publie' or $var_confirm == 'poubelle') { return ''; } if (!spip_connect()) { $confirm = _T('petitions:form_pet_probleme_technique'); return ''; } include_spip('inc/texte'); include_spip('inc/filtres'); // Suppression d'une signature par un moderateur ? // Cf. plugin notifications if (isset($_GET['refus'])) { // verifier validite de la cle de suppression // l'id_signature est dans var_confirm include_spip('inc/securiser_action'); if ($id_signature = intval($var_confirm) and ($_GET['refus'] == _action_auteur("supprimer signature {$id_signature}", '', '', 'alea_ephemere') or $_GET['refus'] == _action_auteur("supprimer signature {$id_signature}", '', '', 'alea_ephemere_ancien'))) { include_spip('action/editer_signature'); signature_modifier($id_signature, array("statut" => 'poubelle')); $confirm = _T('petitions:info_signature_supprimee'); } else { $confirm = _T('petitions:info_signature_supprimee_erreur'); } return ''; } $row = sql_fetsel('*', 'spip_signatures', "statut=" . sql_quote($var_confirm), '', "1"); if (!$row) { $confirm = _T('petitions:form_pet_aucune_signature'); return ''; } $id_signature = $row['id_signature']; $id_petition = $row['id_petition']; $adresse_email = $row['ad_email']; $url_site = $row['url_site']; $row = sql_fetsel('email_unique, site_unique, id_article', 'spip_petitions', "id_petition=" . intval($id_petition)); $email_unique = $row['email_unique'] == "oui"; $site_unique = $row['site_unique'] == "oui"; $id_article = $row['id_article']; include_spip('action/editer_signature'); signature_modifier($id_signature, array('statut' => 'publie')); if ($email_unique) { $r = "id_petition=" . intval($id_petition) . " AND ad_email=" . sql_quote($adresse_email); if (signature_entrop($r)) { $confirm = _T('petitions:form_pet_deja_signe'); } } if ($site_unique) { $r = "id_petition=" . intval($id_petition) . " AND url_site=" . sql_quote($url_site); if (signature_entrop($r)) { $confirm = _T('petitions:form_pet_site_deja_enregistre'); } } include_spip('inc/session'); if (!$confirm) { $confirm = _T('petitions:form_pet_signature_validee'); // noter dans la session que l'email est valide // de facon a permettre de signer les prochaines // petitions sans refaire un tour d'email session_set('email_confirme', $adresse_email); // invalider les pages ayant des boucles signatures include_spip('inc/invalideur'); suivre_invalideur("id='signature/{$id_signature}'"); suivre_invalideur("id='article/{$id_article}'"); } // Conserver la reponse dans la session du visiteur if ($confirm) { session_set($code_message, $confirm); } }