/** * Traiter * * @param int $id_article * @return array */ function formulaires_activer_petition_article_traiter_dist($id_article) { include_spip('inc/autoriser'); if (autoriser('modererpetition', 'article', $id_article)) { switch (_request('change_petition')) { case 'on': foreach (array('email_unique', 'site_obli', 'site_unique', 'message') as $k) { if (_request($k) != 'oui') { set_request($k, 'non'); } } include_spip('action/editer_petition'); if (!($id_petition = sql_getfetsel('id_petition', 'spip_petitions', 'id_article=' . intval($id_article)))) { $id_petition = petition_inserer($id_article); } petition_modifier($id_petition, array('email_unique' => _request('email_unique'), 'site_obli' => _request('site_obli'), 'site_unique' => _request('site_unique'), 'message' => _request('message'), 'texte' => _request('texte_petition'), 'statut' => 'publie')); break; case 'off': if ($id_petition = sql_getfetsel('id_petition', 'spip_petitions', 'id_article=' . intval($id_article))) { include_spip('action/editer_petition'); petition_modifier($id_petition, array('statut' => 'poubelle')); } break; } } return array('message_ok' => _T('config_info_enregistree')); }
function upgrade_index_signatures() { while ($rows = sql_allfetsel('DISTINCT id_article', 'spip_signatures', 'id_petition=-1', '', '', '0,100')) { $rows = array_map('reset', $rows); foreach ($rows as $id_article) { $id_petition = sql_getfetsel('id_petition', 'spip_petitions', 'id_article=' . intval($id_article)); if (!$id_petition) { include_spip('action/editer_petition'); $id_petition = petition_inserer($id_article); sql_updateq('spip_petitions', array('statut' => 'poubelle'), 'id_petition=' . $id_petition); } sql_updateq('spip_signatures', array('id_petition' => $id_petition), 'id_article=' . $id_article); } } }
function action_editer_petition_dist($arg = null) { if (is_null($arg)) { $securiser_action = charger_fonction('securiser_action', 'inc'); $arg = $securiser_action(); } // si id_petition n'est pas un nombre, c'est une creation // mais on verifie qu'on a toutes les donnees qu'il faut. if (!($id_petition = intval($arg))) { $id_article = _request('id_article'); if (!$id_article) { include_spip('inc/headers'); redirige_url_ecrire(); } $id_petition = petition_inserer($id_article); } // Enregistre l'envoi dans la BD if ($id_petition > 0) { $err = petition_modifier($id_petition); } return array($id_petition, $err); }