Patch for member profile info for 2.3.0:
1. Add to cache_
templates hook:
PHP Code:
if (THIS_SCRIPT == 'member')
{
if($vbulletin->options['helpans_stats_ten']) {
$cache[] = 'helpful_statsbit_ten';
} else {
$cache[] = 'helpful_statsbit';
}
}
2. Delete
member_build_blocks_start hook and make
member_profileblock_fetch_unwrapped hook with the following contents instead:
PHP Code:
<plugin active="1" executionorder="100">
<title>Helpful Answers -- Profile Stats</title>
<hookname>member_profileblock_fetch_unwrapped</hookname>
<phpcode><![CDATA[
if ($this->registry->options['helpans_stats_votes'] OR $this->registry->options['helpans_stats_ranks'] OR $this->registry->options['helpans_stats_ten']){
// if we're using standard 0/1 voting show counts
if(!$this->registry->options['helpans_rank_ten']){
if ($this->registry->options['helpans_stats_votes']){
$helpfulanswer = $this->registry->db->query_first_slave("
SELECT COUNT(helpfulanswerid) as count
FROM " . TABLE_PREFIX . "helpfulanswer as helpfulanswer
WHERE userid = " . intval($userinfo['userid']) . "
");
}
if ($this->registry->options['helpans_stats_ranks']){
$helpfulposts = $this->registry->db->query_first_slave("
SELECT SUM(helpfulpost.goodrank) as goodranks,SUM(helpfulpost.totalrank) as totalranks
FROM " . TABLE_PREFIX . "helpfulpost as helpfulpost
INNER JOIN " . TABLE_PREFIX . "post AS post ON(post.postid = helpfulpost.postid)
WHERE post.userid = " . intval($userinfo['userid']) . "
GROUP by post.userid
");
}
$helpfulposts['badranks'] = $helpfulposts['totalranks'] - $helpfulposts['goodranks'];
if($helpfulposts['goodranks'] > 0 AND $helpfulposts['totalranks'] > 0){ $helpfulposts['average'] = ($helpfulposts['goodranks'] / $helpfulposts['totalranks']); }
($hook = vBulletinHook::fetch_hook('helpfulanswers_user_stats')) ? eval($hook) : false;
$templater = vB_Template::create('helpful_statsbit');
$templater->register('helpfulanswer_count', $helpfulanswer['count']);
$templater->register('helpfulanswer_goodranks', $helpfulposts['goodranks']);
$templater->register('helpfulanswer_totalranks', $helpfulposts['totalranks']);
$templater->register('helpfulanswer_badranks', $helpfulposts['badranks']);
$templater->register('helpfulanswer_average', $helpfulposts['average']);
$template_hook['profile_stats_last'] .= $templater->render();
// if we're using 10 scale votes show different
} else {
if ($this->registry->options['helpans_stats_ten']){
$helpfulposts = $this->registry->db->query_first_slave("
SELECT SUM(helpfulpost.goodrank) as goodrank, SUM(helpfulpost.totalrank) as totalranks
FROM " . TABLE_PREFIX . "helpfulpost as helpfulpost
INNER JOIN " . TABLE_PREFIX . "post AS post ON(post.postid = helpfulpost.postid)
WHERE post.userid = " . intval($userinfo['userid']) . "
GROUP by post.userid
");
if($helpfulposts['goodrank'] && $helpfulposts['totalranks'] > 0){ $helpfulposts['avgrank'] = $helpfulposts['goodrank'] / $helpfulposts['totalranks']; }
$helpfulposts['avgrank'] = number_format($helpfulposts['avgrank'], 1, '.', ' ');
$templater = vB_Template::create('helpful_statsbit_ten');
$templater->register('helpfulanswer_goodranks', $helpfulposts['goodranks']);
$templater->register('helpfulanswer_totalranks', $helpfulposts['totalranks']);
$templater->register('helpfulanswer_badranks', $helpfulposts['badranks']);
$templater->register('helpfulanswer_average', $helpfulposts['average']);
$template_hook['profile_stats_last'] .= $templater->render();
}
}
}
]]></phpcode>
</plugin>
Also you can find ideas for next versions here:
https://vborg.vbsupport.ru/showpost....&postcount=362