Merge commit 'origin/master' into fusionax
[platal.git] / include / rss.inc.php
index 3b07d78..f292fe8 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2008 Polytechnique.org                              *
+ *  Copyright (C) 2003-2009 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************/
 
-function _rss_encode_date($d) {
-    if (preg_match('/^\d{14}$/', $d)) {
-        $t = mktime(substr($d,8,2), substr($d,10,2), substr($d,12,2), substr($d,4,2), substr($d,6,2), substr($d,0,4));
-    } else {
-        $t = strtotime($d);
-    }
-    return date('r', $t);
-}
-
 function init_rss($template, $alias, $hash, $require_uid = true)
 {
     $page =& Platal::page();
     $page->changeTpl($template, NO_SKIN);
-    $page->register_modifier('rss_date', '_rss_encode_date');
-
-    $res = XDB::query(
-        'SELECT  a.id
-           FROM  aliases         AS a
-     INNER JOIN  auth_user_md5   AS u ON (a.id = u.user_id AND u.perms IN ("admin", "user"))
-     INNER JOIN  auth_user_quick AS q ON (a.id = q.user_id AND q.core_rss_hash = {?})
-          WHERE  a.alias = {?} AND a.type != "homonyme"', $hash, $alias);
-    $uid = $res->fetchOneCell();
-
-    if (empty($uid)) {
+    $user = Platal::session()->tokenAuth($alias, $hash);
+    if (is_null($user)) {
         if ($require_uid) {
             exit;
         } else {
-            $uid = null;
+            $user = null;
         }
     }
 
     if ($template) {
         $page->assign('rss_hash', $hash);
-        header('Content-Type: application/rss+xml; charset=utf8');
+        pl_content_headers("application/rss+xml");
     }
-    return $uid;
+    return is_null($user) ? null : $user->id();
 }
 
 // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: