- //
- // CNIL -- Informatique et libertes
- //
- // masquer le numero IP des vieilles réponses
- //
- ## date de reference = 4 mois
- ## definir a 0 pour desactiver
- ## même constante que pour les forums
- if (!defined('_CNIL_PERIODE')) {
- define('_CNIL_PERIODE', 3600*24*31*4);
- }
-
- if (_CNIL_PERIODE) {
- $critere_cnil = 'date<"'.date('Y-m-d', time()-_CNIL_PERIODE).'"'
- . ' AND statut != "spam"'
- . ' AND (ip LIKE "%.%" OR ip LIKE "%:%")'; # ipv4 ou ipv6
- $c = sql_countsel('spip_formulaires_reponses', $critere_cnil);
- if ($c>0) {
- spip_log("CNIL: masquer IP de $c réponses anciennes à formidable");
- sql_update('spip_formulaires_reponses', array('ip' => 'MD5(ip)'), $critere_cnil);
+ return $flux;
+}
+
+/**
+ * S'assurer que le traitement email ait lieu après le traitement enregistrement
+ *
+ * @pipeline formidable_traitements
+ * @param array $flux
+ * @return array $flux
+ **/
+function formidable_formidable_traitements($flux) {
+ if (isset($flux['data']['email']) and isset($flux['data']['enregistrement'])) {
+ $keys = array_keys($flux['data']);
+ $position_email = array_search('email', $keys);
+ $position_enregistrement = array_search('enregistrement', $keys);
+
+ if ($position_enregistrement > $position_email) { // si enregistrement après email
+ $nouveau_tab = array();
+ foreach ($keys as $key) { //on reconstruit le tableau, en inversant simplement email et enregistrement
+ if ($key == 'email') {
+ $nouveau_tab['enregistrement'] = $flux['data']['enregistrement'];
+ } elseif ($key == 'enregistrement') {
+ $nouveau_tab['email'] = $flux['data']['email'];
+ } else {
+ $nouveau_tab[$key] = $flux['data'][$key];
+ }
+ }
+ $flux['data'] = $nouveau_tab;