X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;ds=sidebyside;f=include%2Fbanana%2Fforum.inc.php;h=17f2efccd5b95ad7f886a72e77571e834e3cee33;hb=e23d21c1588a9ffa0697aef08e9ebdada4fe167e;hp=c609d4a6d4a7751a3177e3c8d6ecdff43442b686;hpb=4f247453ac4a734953df893117b72168c60dd22e;p=platal.git diff --git a/include/banana/forum.inc.php b/include/banana/forum.inc.php index c609d4a..17f2efc 100644 --- a/include/banana/forum.inc.php +++ b/include/banana/forum.inc.php @@ -1,6 +1,6 @@ user = &$user; global $globals; Banana::$msgedit_canattach = false; - Banana::$spool_root = $globals->banana->spool_root; + Banana::$spool_root = $globals->spoolroot . '/spool/banana/'; array_push(Banana::$msgparse_headers, 'x-org-id', 'x-org-mail'); - Banana::$nntp_host = 'news://web_' . $user->login() - . ":{$globals->banana->password}@{$globals->banana->server}:{$globals->banana->port}/"; - if (S::has_perms()) { + Banana::$nntp_host = self::buildURL($user->login()); + if (S::admin()) { Banana::$msgshow_mimeparts[] = 'source'; } Banana::$debug_nntp = ($globals->debug & DEBUG_BT); @@ -54,6 +52,22 @@ class ForumsBanana extends Banana } } + public static function buildURL($login = null) + { + global $globals; + $scheme = ($globals->banana->port == 563) ? "nntps" : "news"; + $user = $globals->banana->web_user; + if ($login != null) { + $user .= '_' . $login; + $pass = $globals->banana->password; + } else { + $pass = $globals->banana->web_pass; + } + return $scheme . '://' . $user + . ":{$pass}@{$globals->banana->server}:{$globals->banana->port}/"; + + } + private function fetchProfile() { // Get user profile from SQL @@ -90,7 +104,7 @@ class ForumsBanana extends Banana $time = null; if (!is_null($this->params) && isset($this->params['updateall'])) { $time = intval($this->params['updateall']); - S::set('banana_last', $time); + $this->user->banana_last = $time; } $infos = $this->fetchProfile(); @@ -108,7 +122,7 @@ class ForumsBanana extends Banana Banana::$profile['signature'] = $infos['sig']; Banana::$profile['display'] = $infos['threads']; Banana::$profile['autoup'] = $infos['maj']; - Banana::$profile['lastnews'] = S::v('banana_last'); + Banana::$profile['lastnews'] = $this->user->banana_last; Banana::$profile['subscribe'] = $req->fetchColumn(); Banana::$tree_unread = $infos['tree_unread']; Banana::$tree_read = $infos['tree_read']; @@ -120,8 +134,8 @@ class ForumsBanana extends Banana WHERE uid = {?}', $time, $this->user->id()); if (XDB::affectedRows() == 0) { - XDB::execute('INSERT INTO forum_profiles (uid, last_seen) - VALUES ({?}, FROM_UNIXTIME({?}))', + XDB::execute('INSERT IGNORE INTO forum_profiles (uid, last_seen) + VALUES ({?}, FROM_UNIXTIME({?}))', $this->user->id(), $time); } } @@ -133,7 +147,7 @@ class ForumsBanana extends Banana } else { // Register custom Banana links and tabs if (!Banana::$profile['autoup']) { - Banana::$page->registerAction('registerAction('path . '", "updateall", ' . time() . ')\'>' . 'Marquer tous les messages comme lus' . '', array('forums', 'thread', 'message')); @@ -224,8 +238,10 @@ class ForumsBanana extends Banana } else { $last_seen = '0000-00-00'; } - XDB::execute('REPLACE INTO forum_profiles (uid, sig, mail, name, flags, tree_unread, tree_read, last_seen) - VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?})', + XDB::execute('INSERT INTO forum_profiles (uid, sig, mail, name, flags, tree_unread, tree_read, last_seen) + VALUES ({?}, {?}, {?}, {?}, {?}, {?}, {?}, {?}) + ON DUPLICATE KEY UPDATE sig = VALUES(sig), mail = VALUES(mail), name = VALUES(name), flags = VALUES(flags), + tree_unread = VALUES(tree_unread), tree_read = VALUES(tree_read), last_seen = VALUES(last_seen)', $this->user->id(), Post::v('bananasig'), Post::v('bananamail'), Post::v('banananame'), $flags, $unread, $read, $last_seen); @@ -234,14 +250,14 @@ class ForumsBanana extends Banana } $infos = $this->fetchProfile(); - $page->assign('nom' , $infos['name']); - $page->assign('mail', $infos['mail']); - $page->assign('sig', $infos['sig']); - $page->assign('disp', $infos['threads']); - $page->assign('maj', $infos['maj']); - $page->assign('xface', $infos['xface']); + $page->assign('nom' , $infos['name']); + $page->assign('mail', $infos['mail']); + $page->assign('sig', $infos['sig']); + $page->assign('disp', $infos['threads']); + $page->assign('maj', $infos['maj']); + $page->assign('xface', $infos['xface']); $page->assign('unread', $infos['tree_unread']); - $page->assign('read', $infos['tree_read']); + $page->assign('read', $infos['tree_read']); return null; } }