pending commit, finished during MQ/S download ...
[platal.git] / include / newsletter.inc.php
index 9e960d3..06d3e54 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2004 Polytechnique.org                              *
+ *  Copyright (C) 2003-2006 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -50,16 +50,14 @@ class NewsLetter
     
     function NewsLetter($id=null)
     {
-       global $globals;
-
        if (isset($id)) {
            if ($id == 'last') {
-               $res = $globals->xdb->query("SELECT MAX(id) FROM newsletter WHERE bits!='new'");
+               $res = XDB::query("SELECT MAX(id) FROM newsletter WHERE bits!='new'");
                 $id  = $res->fetchOneCell();
            }
-           $res = $globals->xdb->query("SELECT * FROM newsletter WHERE id={?}", $id);
+           $res = XDB::query("SELECT * FROM newsletter WHERE id={?}", $id);
        } else {
-           $res = $globals->xdb->query("SELECT * FROM newsletter WHERE bits='new'");
+           $res = XDB::query("SELECT * FROM newsletter WHERE bits='new'");
        }
        $nl = $res->fetchOneAssoc();
 
@@ -68,12 +66,12 @@ class NewsLetter
        $this->_title = $nl['titre'];
        $this->_head  = $nl['head'];
 
-       $res = $globals->xdb->iterRow("SELECT cid,titre FROM newsletter_cat ORDER BY pos");
+       $res = XDB::iterRow("SELECT cid,titre FROM newsletter_cat ORDER BY pos");
        while (list($cid, $title) = $res->next()) {
            $this->_cats[$cid] = $title;
        }
        
-       $res = $globals->xdb->iterRow(
+       $res = XDB::iterRow(
                 "SELECT  a.title,a.body,a.append,a.aid,a.cid,a.pos
                    FROM  newsletter_art AS a
              INNER JOIN  newsletter     AS n USING(id)
@@ -90,8 +88,7 @@ class NewsLetter
 
     function setSent()
     {
-       global $globals;
-       $globals->xdb->execute("UPDATE  newsletter SET bits='sent' WHERE id={?}", $this->_id);
+       XDB::execute("UPDATE  newsletter SET bits='sent' WHERE id={?}", $this->_id);
     }
 
     // }}}
@@ -99,9 +96,8 @@ class NewsLetter
 
     function save()
     {
-       global $globals;
-       $globals->xdb->execute('UPDATE newsletter SET date={?},titre={?},head={?} WHERE id={?}',
-                $this->_date, $this->_title, $this->_head, $this->_id);
+       XDB::execute('UPDATE newsletter SET date={?},titre={?},head={?} WHERE id={?}',
+                     $this->_date, $this->_title, $this->_head, $this->_id);
     }
 
     // }}}
@@ -134,15 +130,14 @@ class NewsLetter
 
     function saveArticle(&$a)
     {
-       global $globals;
        if ($a->_aid>=0) {
-           $globals->xdb->execute('REPLACE INTO  newsletter_art (id,aid,cid,pos,title,body,append)
+           XDB::execute('REPLACE INTO  newsletter_art (id,aid,cid,pos,title,body,append)
                                           VALUES  ({?},{?},{?},{?},{?},{?},{?})',
                                           $this->_id, $a->_aid, $a->_cid, $a->_pos,
                                           $a->_title, $a->_body, $a->_append);
            $this->_arts['a'.$a->_aid] = $a;
        } else {
-           $globals->xdb->execute(
+           XDB::execute(
                'INSERT INTO  newsletter_art
                      SELECT  {?},MAX(aid)+1,{?},'.($a->_pos ? intval($a->_pos) : 'MAX(pos)+1').',{?},{?},{?}
                        FROM  newsletter_art AS a
@@ -157,8 +152,7 @@ class NewsLetter
     
     function delArticle($aid)
     {
-       global $globals;
-       $globals->xdb->execute('DELETE FROM newsletter_art WHERE id={?} AND aid={?}', $this->_id, $aid);
+       XDB::execute('DELETE FROM newsletter_art WHERE id={?} AND aid={?}', $this->_id, $aid);
        foreach ($this->_arts as $key=>$art) {
            unset($this->_arts[$key]["a$aid"]);
        }
@@ -175,18 +169,18 @@ class NewsLetter
        if ($html) {
            return '<div class="foot">Cette lettre est envoyée à tous les Polytechniciens sur Internet par l\'intermédiaire de Polytechnique.org.</div>'
            .  '<div class="foot">'
-           .  "[<a href=\"$url/newsletter/\">archives</a>&nbsp;|&nbsp;"
-           .  "<a href=\"$url/newsletter/submit.php\">écrire dans la NL</a>&nbsp;|&nbsp;"
-           .  "<a href=\"$url/newsletter/?out=1\">ne plus recevoir</a>]"
+           .  "[<a href=\"$url/nl\">archives</a>&nbsp;|&nbsp;"
+           .  "<a href=\"$url/nl/submit\">écrire dans la NL</a>&nbsp;|&nbsp;"
+           .  "<a href=\"$url/nl/out\">ne plus recevoir</a>]"
            .  '</div>';
        } else {
            return "\n\n--------------------------------------------------------------------\n"
                 . "Cette lettre est envoyée à tous les Polytechniciens sur Internet par\n"
                 . "l'intermédiaire de Polytechnique.org.\n"
                 . "\n"
-                . "archives : [$url/newsletter/]\n"
-                . "écrire   : [$url/newsletter/submit.php]\n"
-                . "ne plus recevoir: [$url/newsletter/?out=1]\n";
+                . "archives : [$url/nl]\n"
+                . "écrire   : [$url/nl/submit]\n"
+                . "ne plus recevoir: [$url/nl/out]\n";
        }
     }
 
@@ -252,6 +246,7 @@ class NewsLetter
         }
 
        $i = 1;
+       $res .= "<a id='top_lnk'></a>";
        foreach ($this->_arts as $cid=>$arts) {
            $res .= "<div class='lnk'><a href='#cat$cid'><strong>$i. {$this->_cats[$cid]}</strong></a>";
            foreach ($arts as $art) {
@@ -264,7 +259,8 @@ class NewsLetter
        foreach ($this->_arts as $cid=>$arts) {
            $res .= "<h1><a id='cat$cid'></a><span>".$this->_cats[$cid].'</span></h1>';
            foreach($arts as $art) {
-               $res .= $art->toHtml();
+               $res .= $art->toHtml();
+               $res .= "<p><a href='#top_lnk'>Revenir au sommaire</a></p>";
            }
        }
 
@@ -438,43 +434,37 @@ class NLArticle
 
 function insert_new_nl()
 {
-    global $globals;
-    $globals->xdb->execute("INSERT INTO newsletter SET bits='new',date=NOW(),titre='to be continued'");
+    XDB::execute("INSERT INTO newsletter SET bits='new',date=NOW(),titre='to be continued'");
 }
 
 function get_nl_slist()
 {
-    global $globals;
-    $res = $globals->xdb->query("SELECT id,date,titre FROM newsletter ORDER BY date DESC");
+    $res = XDB::query("SELECT id,date,titre FROM newsletter ORDER BY date DESC");
     return $res->fetchAllAssoc();
 }
 
 function get_nl_list()
 {
-    global $globals;
-    $res = $globals->xdb->query("SELECT id,date,titre FROM newsletter WHERE bits!='new' ORDER BY date DESC");
+    $res = XDB::query("SELECT id,date,titre FROM newsletter WHERE bits!='new' ORDER BY date DESC");
     return $res->fetchAllAssoc();
 }
 
 function get_nl_state()
 {
-    global $globals;
-    $res = $globals->xdb->query('SELECT 1 FROM newsletter_ins WHERE user_id={?}', Session::getInt('uid'));
+    $res = XDB::query('SELECT 1 FROM newsletter_ins WHERE user_id={?}', S::v('uid'));
     return $res->fetchOneCell();
 }
  
 function unsubscribe_nl()
 {
-    global $globals;
-    $globals->xdb->execute('DELETE FROM newsletter_ins WHERE user_id={?}', Session::getInt('uid'));
+    XDB::execute('DELETE FROM newsletter_ins WHERE user_id={?}', S::v('uid'));
 }
  
 function subscribe_nl($uid=-1)
 {
-    global $globals;
-    $user = ($uid == -1) ? Session::getInt('uid') : $uid;
-    $globals->xdb->execute('REPLACE INTO  newsletter_ins (user_id,last)
-                                 VALUES  ({?}, 0)', $user);
+    $user = ($uid == -1) ? S::v('uid') : $uid;
+    XDB::execute('REPLACE INTO  newsletter_ins (user_id,last)
+                        VALUES  ({?}, 0)', $user);
 }
  
 function justify($text,$n)