1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-03 05:07:27 +02:00

More work on ranking, minor forum bugfixes and improvements

This commit is contained in:
secretr
2011-04-26 11:27:36 +00:00
parent de27eaffc5
commit e34cd64541
3 changed files with 34 additions and 15 deletions

View File

@@ -202,24 +202,32 @@ class e_ranks
} }
$ret = array(); $ret = array();
$userData = e107::getSystemUser($userId)->getData(); //get_user_data($userId); if(is_array($userId))
{
$userData = $userId;
$userId = $userData['user_id'];
}
else
{
$userData = e107::getSystemUser($userId)->getData(); //get_user_data($userId);
}
if($userData['user_admin']) if($userData['user_admin'])
{ {
if($userData['user_perms'] == '0') if($userData['user_perms'] == '0')
{ {
//Main Site Admin //Main Site Admin
$data['special'] = "<img src='".$this->_getImage($this->ranks['special'][1])."' alt='".$this->_getName($this->ranks['special'][1])."' /><br />"; $data['special'] = "<img src='".$this->_getImage($this->ranks['special'][1])."' alt='".$this->_getName($this->ranks['special'][1])."' title='".$this->_getName($this->ranks['special'][1])."' />";
} }
else else
{ {
//Site Admin //Site Admin
$data['special'] = "<img src='".$this->_getImage($this->ranks['special'][2])."' alt='".$this->_getName($this->ranks['special'][2])."' /><br />"; $data['special'] = "<img src='".$this->_getImage($this->ranks['special'][2])."' alt='".$this->_getName($this->ranks['special'][2])."' title='".$this->_getName($this->ranks['special'][2])."' />";
} }
} }
elseif($moderator) elseif($moderator)
{ {
$data['special'] = "<img src='".$this->_getImage($this->ranks['special'][3])."' alt='".$this->_getName($this->ranks['special'][3])."' /><br />"; $data['special'] = "<img src='".$this->_getImage($this->ranks['special'][3])."' alt='".$this->_getName($this->ranks['special'][3])."' title='".$this->_getName($this->ranks['special'][3])."' />";
} }
$userData['user_daysregged'] = max(1, round((time() - $userData['user_join']) / 86400)); $userData['user_daysregged'] = max(1, round((time() - $userData['user_join']) / 86400));
@@ -241,7 +249,7 @@ class e_ranks
{ {
if($level >= $this->ranks['data'][$i]['thresh'] && $level < $this->ranks['data'][($i+1)]['thresh']) if($level >= $this->ranks['data'][$i]['thresh'] && $level < $this->ranks['data'][($i+1)]['thresh'])
{ {
$rank = $i; $rank = $i + 1;
break; break;
} }
} }
@@ -249,14 +257,15 @@ class e_ranks
if($rank !== false) if($rank !== false)
{ {
$data['name'] = $this->_getName($this->ranks['data'][$rank]); $data['name'] = $this->_getName($this->ranks['data'][$rank]);
$img_title = ($this->ranks['data'][$rank]['name'] ? "alt='{$data['name']}' title='{$data['name']}'" : ''); $img_title = ($this->ranks['data'][$rank]['name'] ? " alt='{$data['name']}' title='{$data['name']}'" : ' alt = ""');
$data['pic'] = "<img {$img_title} src='".$this->_getImage($this->ranks['data'][$rank])."' /><br />"; $data['pic'] = "<img {$img_title} src='".$this->_getImage($this->ranks['data'][$rank])."'{$img_title} />";
} }
$this->userRanks[$userId] = $data; $this->userRanks[$userId] = $data;
return $data; return $data;
} }
// TODO - custom ranking by array key - e.g. user_comments only
private function _calcLevel(&$userData) private function _calcLevel(&$userData)
{ {
$forumCount = varset($userData['user_plugin_forum_posts'], 0) * 5; $forumCount = varset($userData['user_plugin_forum_posts'], 0) * 5;

View File

@@ -58,7 +58,7 @@ class e107forum
*/ */
} }
function loadPermList() private function loadPermList()
{ {
$e107 = e107::getInstance(); $e107 = e107::getInstance();
if($tmp = $e107->ecache->retrieve_sys('forum_perms')) if($tmp = $e107->ecache->retrieve_sys('forum_perms'))
@@ -67,13 +67,19 @@ class e107forum
} }
else else
{ {
$this->getForumPermList(); $this->_getForumPermList();
$tmp = $e107->arrayStorage->WriteArray($this->permList, false); $tmp = $e107->arrayStorage->WriteArray($this->permList, false);
$e107->ecache->set_sys('forum_perms', $tmp); $e107->ecache->set_sys('forum_perms', $tmp);
} }
unset($tmp); unset($tmp);
} }
public function getForumPermList($what = null)
{
if(null !== $what) return (isset($this->permList[$what]) ? $this->permList[$what] : null);
return $this->permList;
}
private function setDefaults() private function setDefaults()
{ {
$this->prefs->set('show_topics', '1'); $this->prefs->set('show_topics', '1');
@@ -89,7 +95,7 @@ class e107forum
$this->prefs->set('highlightsticky', '1'); $this->prefs->set('highlightsticky', '1');
} }
function getForumPermList() private function _getForumPermList()
{ {
$e107 = e107::getInstance(); $e107 = e107::getInstance();
@@ -1003,14 +1009,13 @@ class e107forum
function threadIncView($id) function threadIncView($id)
{ {
$e107 = e107::getInstance();
$id = (int)$id; $id = (int)$id;
return $e107->sql->db_Update('forum_thread', 'thread_views=thread_views+1 WHERE thread_id='.$id); return e107::getDb()->db_Update('forum_thread', 'thread_views=thread_views+1 WHERE thread_id='.$id);
} }
function _forum_lp_update($lp_type, $lp_user, $lp_info, $lp_forum_id, $lp_forum_sub) function _forum_lp_update($lp_type, $lp_user, $lp_info, $lp_forum_id, $lp_forum_sub)
{ {
global $sql; $sql = e107::getDb();
$sql->db_Update('forum', "{$lp_type}={$lp_type}+1, forum_lastpost_user='{$lp_user}', forum_lastpost_info = '{$lp_info}' WHERE forum_id='".intval($lp_forum_id)."' "); $sql->db_Update('forum', "{$lp_type}={$lp_type}+1, forum_lastpost_user='{$lp_user}', forum_lastpost_info = '{$lp_info}' WHERE forum_id='".intval($lp_forum_id)."' ");
if($lp_forum_sub) if($lp_forum_sub)
{ {

View File

@@ -86,7 +86,7 @@ $pm_installed = plugInstalled('pm');
//Only increment thread views if not being viewed by thread starter //Only increment thread views if not being viewed by thread starter
if (USER && (USERID != $thread->threadInfo['thread_user'] || $thread->threadInfo['thread_total_replies'] > 0) || !$thread->noInc) if (USER && (USERID != $thread->threadInfo['thread_user'] || $thread->threadInfo['thread_total_replies'] > 0) || !$thread->noInc)
{ {
$forum->threadIncview($threadId); $forum->threadIncview($thread->threadInfo['thread_id']);
} }
define('e_PAGETITLE', $tp->toHTML($thread->threadInfo['thread_name'], true, 'no_hook, emotes_off').' / '.$e107->tp->toHTML($thread->threadInfo['forum_name'], true, 'no_hook, emotes_off').' / '.LAN_01); define('e_PAGETITLE', $tp->toHTML($thread->threadInfo['thread_name'], true, 'no_hook, emotes_off').' / '.$e107->tp->toHTML($thread->threadInfo['forum_name'], true, 'no_hook, emotes_off').' / '.LAN_01);
@@ -474,7 +474,12 @@ function rpg($user_join, $user_forums)
class e107ForumThread class e107ForumThread
{ {
var $message, $threadId, $forumId, $perPage, $noInc, $pages; public $message;
public $threadId;
public $forumId;
public $perPage;
public $noInc;
public $pages;
function init() function init()
{ {