A few fixes on upgrade scripts.
[platal.git] / include / newsletter.inc.php
index b03b419..d15d64e 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2009 Polytechnique.org                              *
+ *  Copyright (C) 2003-2010 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -41,9 +41,9 @@ class NewsLetter extends MassMailer
         } else {
             $res = XDB::query("SELECT * FROM newsletter WHERE bits='new'");
             if (!$res->numRows()) {
-                Newsletter::create();
+                NewsLetter::create();
             }
-            $res = XDB::query("SELECT * FROM newsletter WHERE bits='new'");
+            $res = XDB::query("SELECT * FROM newsletter WHERE bits='new' ORDER BY id DESC LIMIT 1");
         }
         if ($res->numRows() != 1) {
             throw new MailNotFound();
@@ -133,7 +133,7 @@ class NewsLetter extends MassMailer
         $user = is_null($uid) ? S::v('uid') : $uid;
         $res = XDB::query("SELECT  1
                              FROM  newsletter_ins
-                            WHERE  user_id={?}", $user);
+                            WHERE  uid={?}", $user);
         return $res->fetchOneCell();
     }
 
@@ -141,14 +141,14 @@ class NewsLetter extends MassMailer
     {
         $user = is_null($uid) ? S::v('uid') : $uid;
         XDB::execute("DELETE FROM  newsletter_ins
-                            WHERE  user_id={?}", $user);
+                            WHERE  uid={?}", $user);
     }
 
     static public function subscribe($uid = null)
     {
         $user = is_null($uid) ? S::v('uid') : $uid;
-        XDB::execute("REPLACE INTO  newsletter_ins (user_id,last)
-                            VALUES  ({?}, 0)", $user);
+        XDB::execute("REPLACE INTO  newsletter_ins (uid,last)
+                            VALUES  ({?}, NULL)", $user);
     }
 
     protected function subscriptionWhere()
@@ -308,7 +308,7 @@ class NLArticle
     // }}}
     // {{{ function getLinkIps()
 
-    public function getLinkIps(&$gethostbyname_count)
+    public function getLinkIps(&$blacklist_host_resolution_count)
     {
         $matches = $this->parseUrlsFromArticle();
         $article_ips = array();
@@ -322,14 +322,13 @@ class NLArticle
                     list(, $host) = explode('@', $match);
                 }
 
-                if ($gethostbyname_count < $globals->mail->blacklist_host_resolution_limit) {
+                if ($blacklist_host_resolution_count >= $globals->mail->blacklist_host_resolution_limit) {
                    break;
                 }
 
-                if ($host != $globals->mail->alias_dom && $host != $globals->mail->alias_dom2
-                    && $host != $globals->mail->domain && $host != $globals->mail->domain2) {
+                if (!preg_match('/^(' . str_replace(' ', '|', $globals->mail->domain_whitelist) . ')$/i', $host)) {
                     $article_ips = array_merge($article_ips, array(gethostbyname($host) => $host));
-                    ++$gethostbyname_count;
+                    ++$blacklist_host_resolution_count;
                 }
             }
         }