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;
}
}