Better email filter for user subscription
authorx2003bruneau <x2003bruneau@839d8a87-29fc-0310-9880-83ba4fa771e5>
Sat, 20 Jan 2007 09:33:23 +0000 (09:33 +0000)
committerx2003bruneau <x2003bruneau@839d8a87-29fc-0310-9880-83ba4fa771e5>
Sat, 20 Jan 2007 09:33:23 +0000 (09:33 +0000)
git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1367 839d8a87-29fc-0310-9880-83ba4fa771e5

classes/csvimporter.php
modules/axletter.php

index da8ed5a..bf5cfe2 100644 (file)
@@ -239,7 +239,8 @@ class CSVImporter
             return false;
         }
         foreach ($this->field_value as $key=>$value) {
-            unset($fields[$key]);
+            $search = array_search($key, $fields);
+            unset($fields[$search]);
         }
 
         $current = Env::v('csv_page');
@@ -288,6 +289,7 @@ class CSVImporter
             }
             foreach ($this->field_value as $key=>$value) {
                 $insert[$key] = $value;
+                $fields[]     = $key;
             }
             if ($current == 'valid' && Env::has('csv_valid')) {
                 $this->run(Env::v('csv_action'), $insert, $update);
index d1f1c44..4ef05de 100644 (file)
@@ -318,6 +318,7 @@ class AXLetterModule extends PLModule
     function idFromMail($line, $key)
     {
         static $field;
+        global $globals;
         if (!isset($field)) {
             $field = array('email', 'mail', 'login', 'bestalias', 'forlife', 'flag');
             foreach ($field as $fld) {
@@ -330,23 +331,29 @@ class AXLetterModule extends PLModule
         $email = $line[$field];
         if (strpos($email, '@') === false) {
             $user  = $email;
+            $domain = $globals->mail->domain2;
         } else {
-            global $globals;
             list($user, $domain) = explode('@', $email);    
-            if ($domain != $globals->mail->domain && $domain != $globals->mail->domain2
+        }
+        if ($domain != $globals->mail->domain && $domain != $globals->mail->domain2
                 && $domain != $globals->mail->alias_dom && $domain != $globals->mail->alias_dom2) {
-                return '0';
-            }
-            if ($domain == $globals->mail->alias_dom || $domain == $globals->mail->alias_dom2) {
-                $res = XDB::query("SELECT a.id
-                                     FROM virtual          AS v
-                               INNER JOIN virtual_redirect AS r USING(vid)
-                               INNER JOIN aliases          AS a ON (a.type = 'a_vie'
-                                                                AND r.redirect = CONCAT(a.alias, '@{$globals->mail->domain2}')
-                                    WHERE v.alias = CONCAT({?}, '@{$globals->mail->alias_dom}')", $user);
-                $id = $res->fetchOneCell();
-                return $id ? $id : '0';
+            $res = XDB::query("SELECT uid FROM emails WHERE email = {?}", $email);
+            if ($res->numRows() == 1) {
+                return $res->fetchOneCell();
             }
+            return '0';
+        }
+        list($user) = explode('+', $user);
+        list($user) = explode('_', $user);
+        if ($domain == $globals->mail->alias_dom || $domain == $globals->mail->alias_dom2) {
+            $res = XDB::query("SELECT a.id
+                                 FROM virtual          AS v
+                           INNER JOIN virtual_redirect AS r USING(vid)
+                           INNER JOIN aliases          AS a ON (a.type = 'a_vie'
+                                                            AND r.redirect = CONCAT(a.alias, '@{$globals->mail->domain2}'))
+                                WHERE v.alias = CONCAT({?}, '@{$globals->mail->alias_dom}')", $user);
+            $id = $res->fetchOneCell();
+            return $id ? $id : '0';
         }
         $res = XDB::query("SELECT id FROM aliases WHERE alias = {?}", $user);
         $id = $res->fetchOneCell();