SimplePortal

Customization => Blocks and Modifications => Mod Requests => Topic started by: lazo50 on September 03, 2013, 06:34:41 AM

Title: Professional statistics
Post by: lazo50 on September 03, 2013, 06:34:41 AM
Greetings to all .... it would be possible to create a mod like this used by MyBB?
http://prostats.wordpress.com/

Of course, even with the block for SP

Many TNX
Title: Re: Professional statistics
Post by: Burke Knight on September 03, 2013, 07:41:54 AM
VB Also has something like this.

I'd suggest making a similar Mod Request at the SMF site for this. :)
Title: Re: Professional statistics
Post by: Mick. on September 03, 2013, 01:28:08 PM
I believe there is a mod for SMF. I just dont know the name to search it.
Title: Re: Professional statistics
Post by: Burke Knight on September 03, 2013, 02:21:24 PM
Try searching the SMF Mod Site (http://custom.simplemachines.org/mods/index.php) for VB since this is also a VB mod that I do believe was made for SMF, as Mick. says.
 
Title: Re: Professional statistics
Post by: lazo50 on September 04, 2013, 02:23:52 AM
Thanks for the replies.
Search SMF-Mod was the first thing that I did but I did not find anything.
Title: Re: Professional statistics
Post by: Divecall on September 04, 2013, 03:04:20 AM
For SMF 2.0.x

try this:

Title: Re: Professional statistics
Post by: Burke Knight on September 04, 2013, 05:18:23 AM
It looks good, but are there any settings for it?
Installed it onto test site, and can't find any settings.

Also, would love to have it above the board list.
A block for SP for this also would be great, if can tell how to make one. :)
Title: Re: Professional statistics
Post by: Divecall on September 05, 2013, 12:14:31 PM
If you have this Mod installed, you can use this code as a Block for starting. But it didnt show the actuall part, only the Top10-Stats, i dont know why...

Code: [Select]
   global $context, $smcFunc, $txt, $db_prefix, $scripturl, $modSettings;
         // Newest members top 10
   $members_result =  $smcFunc['db_query']('', '
      SELECT id_member, real_name, posts
      FROM {db_prefix}members
      ORDER BY id_member DESC
      LIMIT 10',
      array(
      )
   );
   $context['new_members'] = array();
   while ($row_members = $smcFunc['db_fetch_assoc']($members_result))
   {
      $context['new_members'][] = array(
         'name' => $row_members['real_name'],
         'id' => $row_members['id_member'],
         'href' => $scripturl . '?action=profile;u=' . $row_members['id_member'],
         'link' => '<a href="' . $scripturl . '?action=profile;u=' . $row_members['id_member'] . '">' . $row_members['real_name'] . '</a>'
      );
   }
   $smcFunc['db_free_result']($members_result);


// karma
   
   //  Top 10 karma
   $members_result = $smcFunc['db_query']('', '
      SELECT id_member, real_name, karma_good
      FROM {db_prefix}members
      ORDER BY karma_good DESC
      LIMIT 10');
   $context['repkarma'] = array();
   while ($row_members = $smcFunc['db_fetch_assoc']($members_result))
   {
      $context['repkarma'][] = array(
         'name' => $row_members['real_name'],
         'id' => $row_members['id_member'],
         'karma' => $row_members['karma_good'],
         'href' => $scripturl . '?action=profile;u=' . $row_members['id_member'],
         'link' => '<a href="' . $scripturl . '?action=profile;u=' . $row_members['id_member'] . '">' . $row_members['real_name'] . '</a>'
      );
   }
   $smcFunc['db_free_result']($members_result);

   if (empty($context['repkarma']))
      return;

// karma finished

   //// Newest members top 10 Finish
    // Poster top 10.
   $members_result = $smcFunc['db_query']('', '
      SELECT id_member, real_name, posts
      FROM {db_prefix}members
      WHERE posts > {int:no_posts}
      ORDER BY posts DESC
      LIMIT 10',
      array(
         'no_posts' => 0,
      )
   );
   $context['top_posters'] = array();
   $max_num_posts = 1;
   $context['MemberColor_ID_MEMBER'] = array();
   while ($row_members = $smcFunc['db_fetch_assoc']($members_result))
   {
      $context['top_posters'][] = array(
         'name' => $row_members['real_name'],
         'id' => $row_members['id_member'],
         'num_posts' => $row_members['posts'],
         'href' => $scripturl . '?action=profile;u=' . $row_members['id_member'],
         'link' => '<a href="' . $scripturl . '?action=profile;u=' . $row_members['id_member'] . '">' . $row_members['real_name'] . '</a>'
      );

      if ($max_num_posts < $row_members['posts'])
         $max_num_posts = $row_members['posts'];
      if (!empty($modSettings['MemberColorStats']) && !empty($row_members['id_member']))
         $context['MemberColor_ID_MEMBER'][$row_members['id_member']] = $row_members['id_member'];
   }
   $smcFunc['db_free_result']($members_result);

   foreach ($context['top_posters'] as $i => $poster)
   {
      $context['top_posters'][$i]['post_percent'] = round(($poster['num_posts'] * 100) / $max_num_posts);
      $context['top_posters'][$i]['num_posts'] = comma_format($context['top_posters'][$i]['num_posts']);
   }

   // Board top 10.
   $boards_result = $smcFunc['db_query']('', '
      SELECT id_board, name, num_posts
      FROM {db_prefix}boards AS b
      WHERE {query_see_board}' . (!empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0 ? '
         AND b.id_board != {int:recycle_board}' : '') . '
         AND b.redirect = {string:blank_redirect}
      ORDER BY num_posts DESC
      LIMIT 10',
      array(
         'recycle_board' => $modSettings['recycle_board'],
         'blank_redirect' => '',
      )
   );
   $context['top_boards'] = array();
   $max_num_posts = 1;
   while ($row_board = $smcFunc['db_fetch_assoc']($boards_result))
   {
      $context['top_boards'][] = array(
         'id' => $row_board['id_board'],
         'name' => $row_board['name'],
         'num_posts' => $row_board['num_posts'],
         'href' => $scripturl . '?board=' . $row_board['id_board'] . '.0',
         'link' => '<a href="' . $scripturl . '?board=' . $row_board['id_board'] . '.0">' . $row_board['name'] . '</a>'
      );

      if ($max_num_posts < $row_board['num_posts'])
         $max_num_posts = $row_board['num_posts'];
   }
   $smcFunc['db_free_result']($boards_result);

   foreach ($context['top_boards'] as $i => $board)
   {
      $context['top_boards'][$i]['post_percent'] = round(($board['num_posts'] * 100) / $max_num_posts);
      $context['top_boards'][$i]['num_posts'] = comma_format($context['top_boards'][$i]['num_posts']);
   }
      // Are you on a larger forum?  If so, let's try to limit the number of topics we search through.
   if ($modSettings['totalMessages'] > 100000)
   {
      $request = $smcFunc['db_query']('', '
         SELECT id_topic
         FROM {db_prefix}topics
         WHERE num_replies != {int:no_replies}' . ($modSettings['postmod_active'] ? '
            AND approved = {int:is_approved}' : '') . '
         ORDER BY num_replies DESC
         LIMIT 100',
         array(
            'no_replies' => 0,
            'is_approved' => 1,
         )
      );
      $topic_ids = array();
      while ($row = $smcFunc['db_fetch_assoc']($request))
         $topic_ids[] = $row['id_topic'];
      $smcFunc['db_free_result']($request);
   }
   else
      $topic_ids = array();
   // Topic views top 10.
   $topic_view_result = $smcFunc['db_query']('', '
      SELECT m.subject, t.num_views, t.id_board, t.id_topic, b.name
      FROM {db_prefix}topics AS t
         INNER JOIN {db_prefix}messages AS m ON (m.id_msg = t.id_first_msg)
         INNER JOIN {db_prefix}boards AS b ON (b.id_board = t.id_board' . (!empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0 ? '
         AND b.id_board != {int:recycle_board}' : '') . ')
      WHERE {query_see_board}' . (!empty($topic_ids) ? '
         AND t.id_topic IN ({array_int:topic_list})' : ($modSettings['postmod_active'] ? '
         AND t.approved = {int:is_approved}' : '')) . '
      ORDER BY t.num_views DESC
      LIMIT 10',
      array(
         'topic_list' => $topic_ids,
         'recycle_board' => $modSettings['recycle_board'],
         'is_approved' => 1,
      )
   );
   $context['top_topics_views'] = array();
   $max_num_views = 1;
   while ($row_topic_views = $smcFunc['db_fetch_assoc']($topic_view_result))
   {
      censorText($row_topic_views['subject']);
$row_topic_views['subject'] = shorten_subject($row_topic_views['subject'], 20);
      $context['top_topics_views'][] = array(
         'id' => $row_topic_views['id_topic'],
         'board' => array(
            'id' => $row_topic_views['id_board'],
            'name' => $row_topic_views['name'],
            'href' => $scripturl . '?board=' . $row_topic_views['id_board'] . '.0',
            'link' => '<a href="' . $scripturl . '?board=' . $row_topic_views['id_board'] . '.0">' . $row_topic_views['name'] . '</a>'
         ),
         'subject' => $row_topic_views['subject'],
         'num_views' => $row_topic_views['num_views'],
         'href' => $scripturl . '?topic=' . $row_topic_views['id_topic'] . '.0',
         'link' => '<a href="' . $scripturl . '?topic=' . $row_topic_views['id_topic'] . '.0">' . $row_topic_views['subject'] . '</a>'
      );

      if ($max_num_views < $row_topic_views['num_views'])
         $max_num_views = $row_topic_views['num_views'];
   }
   $smcFunc['db_free_result']($topic_view_result);

   foreach ($context['top_topics_views'] as $i => $topic)
   {
      $context['top_topics_views'][$i]['post_percent'] = round(($topic['num_views'] * 100) / $max_num_views);
      $context['top_topics_views'][$i]['num_views'] = comma_format($context['top_topics_views'][$i]['num_views']);
   }

   // Try to cache this when possible, because it's a little unavoidably slow.
   if (($members = cache_get_data('stats_top_starters', 360)) == null)
   {
      $request = $smcFunc['db_query']('', '
         SELECT id_member_started, COUNT(*) AS hits
         FROM {db_prefix}topics' . (!empty($modSettings['recycle_enable']) && $modSettings['recycle_board'] > 0 ? '
         WHERE id_board != {int:recycle_board}' : '') . '
         GROUP BY id_member_started
         ORDER BY hits DESC
         LIMIT 10',
         array(
            'recycle_board' => $modSettings['recycle_board'],
         )
      );
      $members = array();
      while ($row = $smcFunc['db_fetch_assoc']($request))
         $members[$row['id_member_started']] = $row['hits'];
      $smcFunc['db_free_result']($request);

      cache_put_data('stats_top_starters', $members, 360);
   }

   if (empty($members))
      $members = array(0 => 0);

   // Topic poster top 10.
   $members_result = $smcFunc['db_query']('', '
      SELECT id_member, real_name
      FROM {db_prefix}members
      WHERE id_member IN ({array_int:member_list})
      ORDER BY FIND_IN_SET(id_member, {string:top_topic_posters})
      LIMIT 10',
      array(
         'member_list' => array_keys($members),
         'top_topic_posters' => implode(',', array_keys($members)),
      )
   );
   $context['top_starters'] = array();
   $max_num_topics = 1;
   while ($row_members = $smcFunc['db_fetch_assoc']($members_result))
   {
      $context['top_starters'][] = array(
         'name' => $row_members['real_name'],
         'id' => $row_members['id_member'],
         'num_topics' => $members[$row_members['id_member']],
         'href' => $scripturl . '?action=profile;u=' . $row_members['id_member'],
         'link' => '<a href="' . $scripturl . '?action=profile;u=' . $row_members['id_member'] . '">' . $row_members['real_name'] . '</a>'
      );

      if ($max_num_topics < $members[$row_members['id_member']])
         $max_num_topics = $members[$row_members['id_member']];
      if (!empty($modSettings['MemberColorStats']))
         $context['MemberColor_ID_MEMBER'][$row_members['id_member']] = $row_members['id_member'];
   }
   $smcFunc['db_free_result']($members_result);

   foreach ($context['top_starters'] as $i => $topic)
   {
      $context['top_starters'][$i]['post_percent'] = round(($topic['num_topics'] * 100) / $max_num_topics);
      $context['top_starters'][$i]['num_topics'] = comma_format($context['top_starters'][$i]['num_topics']);
   }
   
   //Yeah baby give me some colors =).
   if (!empty($modSettings['MemberColorLinkInstalled']) && !empty($context['MemberColor_ID_MEMBER'])) {
      $colorDatas = load_onlineColors($context['MemberColor_ID_MEMBER']);
      $cmemcolid = null;
      if (!empty($modSettings['MemberColorStats'])) {
         // First the Top Posters =)
         foreach($context['top_posters'] as $key => $value) {
            $cmemcolid = $context['top_posters'][$key]['id'];
            if(!empty($colorDatas[$cmemcolid]['colored_link']))
               $context['top_posters'][$key]['link'] = $colorDatas[$cmemcolid]['colored_link'];
         }
         // First the Top Starter =)     
         foreach($context['top_starters'] as $key => $value) {
            $cmemcolid = $context['top_starters'][$key]['id'];
            if(!empty($colorDatas[$cmemcolid]['colored_link']))
               $context['top_starters'][$key]['link'] = $colorDatas[$cmemcolid]['colored_link'];
         }
         // First the New Members =)     
         foreach($context['new_members'] as $key => $value) {
            $cmemcolid = $context['new_members'][$key]['id'];
            if(!empty($colorDatas[$cmemcolid]['colored_link']))
               $context['new_members'][$key]['link'] = $colorDatas[$cmemcolid]['colored_link'];
         }
         // First the Top Karma =)     
         foreach($context['repkarma'] as $key => $value) {
            $cmemcolid = $context['repkarma'][$key]['id'];
            if(!empty($colorDatas[$cmemcolid]['colored_link']))
               $context['repkarma'][$key]['link'] = $colorDatas[$cmemcolid]['colored_link'];
         }
      }
      if (!empty($modSettings['latestMember']) && !empty($modSettings['MemberColorLatestMember'])) {
         if(!empty($colorDatas[$modSettings['latestMember']]['colored_link']))
            $context['latest_member']['link'] = $colorDatas[$modSettings['latestMember']]['colored_link'];
      }
   }

      // Full Top 10 by smfmod.com

echo '<br />
   <span class="clear upperframe"><span></span></span>
   <div class="roundframe"><div class="innerframe">
      <div class="cat_bar">
         <h3 class="catbg">
         <a href="http://www.smfmod.com">' . $txt['hhyfull1'] . '</a>
         </h3>
      </div>
      <div class="smalltext">
<table border="0" width="100%" cellspacing="1" cellpadding="2">
<tr class="titlebg">
<td width="20%"><span class="smalltext">' . $txt['hhyfull2'] . '</span></td>
<td width="18%"><span class="smalltext">' . $txt['hhyfull3'] . '</span></td>
<td width="18%"><span class="smalltext">' . $txt['hhyfull4'] . '</span></td>
<td width="30%"><span class="smalltext">' . $txt['hhyfull5'] . '</span></td>
<td width="14%"><span class="smalltext">' . $txt['hhyfull6'] . '</span></td></tr>

<tr>
<td width="20%" valign="top"><table width="100%"><tr>
<td width="75%"><span class="smalltext"><b>' . $txt['hhyfull7'] . '</b></span></td>
<td width="25%" align="right"><span class="smalltext"><b>' . $txt['hhyfull8'] . '</b></span></td></tr>';
foreach ($context['top_posters'] as $poster)
{echo '
<tr><td width="75%"><img alt="" src="', $settings['default_theme_url'], '/images/hhyfull1.gif" /><span class="smalltext">', $poster['link'], '</span></td>
<td width="25%" align="right"><span class="smalltext">', $poster['num_posts'], '</span></td></tr>';
}echo '</table></td>

<td width="18%" valign="top"><table width="100%"><tr>
<td width="75%"><span class="smalltext"><b>' . $txt['hhyfull7'] . '</b></span></td>
<td width="25%" align="right"><span class="smalltext"><b>' . $txt['hhyfull9'] . '</b></span></td></tr>';
foreach ($context['repkarma'] as $member)
{echo '
<tr><td width="75%" valign="top"><img alt="" src="', $settings['default_theme_url'], '/images/hhyfull2.gif" /><span class="smalltext">', $member['link'], '</span></td>
<td width="25%" align="right" valign="top"><span class="smalltext">', $member['karma'], '</span></td></tr>';
}echo '</table></td>

<td width="18%" valign="top"><table width="100%"><tr>
<td width="75%"><span class="smalltext"><b>' . $txt['hhyfull7'] . '</b></span></td>
<td width="25%" align="right"><span class="smalltext"><b>' . $txt['hhyfull10'] . '</b></span></td></tr>';
foreach ($context['top_starters'] as $poster)
{echo '
<tr><td width="75%" valign="top"><img alt="" src="', $settings['default_theme_url'], '/images/hhyfull3.gif" /><span class="smalltext">', $poster['link'], '</span></td>
<td width="25%" align="right" valign="top"><span class="smalltext">', $poster['num_topics'], '</span></td></tr>';
}echo '</table></td>

<td width="30%" valign="top"><table width="100%"><tr>
<td width="80%"><span class="smalltext"><b>' . $txt['hhyfull10'] . '</b></span></td>
<td width="20%" align="right"><span class="smalltext"><b>' . $txt['hhyfull11'] . '</b></span></td></tr>';
foreach ($context['top_topics_views'] as $topic)
{
echo '
<tr><td width="80%" valign="top"><img alt="" src="', $settings['default_theme_url'], '/images/hhyfull4.gif" /><span class="smalltext">', $topic['link'], '</span></td>
<td width="20%" align="right" valign="top"><span class="smalltext">', $topic['num_views'], '</span><img alt="" src="', $settings['default_theme_url'], '/images/hit.gif" /></td></tr>';
}
echo '</table></td>

<td width="14%" valign="top"><table width="100%"><tr>
<td width="100%"><span class="smalltext"><b>' . $txt['hhyfull7'] . '</b></span></td></tr>';
foreach ($context['new_members'] as $poster)
{echo '
<tr><td width="100%" valign="top"><img alt="" src="', $settings['default_theme_url'], '/images/hhyfull5.gif" /><span class="smalltext">',$poster['link'], '</span></td></tr>';
}echo '</table></td></tr>

<tr>
<td width="100%" colspan="5" height="0"><table width="100%">
<tr class="titlebg">
<td width="30%"><span class="smalltext"><b>' . $txt['hhyfull12'] . '</b></span></td>
<td width="30%"><span class="smalltext"><b>' . $txt['hhyfull13'] . '</b></span></td>
<td width="17%"><span class="smalltext"><b>' . $txt['hhyfull14'] . '</b></span></td>
<td width="23%"><span class="smalltext"><b>' . $txt['hhyfull15'] . '</b></span></td></tr></table>
<table cellspacing="1" width="100%" cellpadding="0"  border="0">';
if (!empty($context['latest_posts']))
foreach ($context['latest_posts'] as $post)
echo '
<tr><td valign="top" width="30%"><img alt="" src="', $settings['default_theme_url'], '/images/hhyfull6.gif" /><span class="smalltext">', $post['board']['link'],  '</span></td>
<td valign="top" width="30%"><img alt="" src="', $settings['default_theme_url'], '/images/hhyfull7.gif" /><span class="smalltext"><a href="',$post['href'],'">', $post['short_subject'], '</a></span></td>
<td valign="top" width="17%"><img alt="" src="', $settings['default_theme_url'], '/images/hhyfull8.gif" /><span class="smalltext">', $post['poster']['link'],'</span></td>
<td valign="top" width="23%"><img alt="" src="', $settings['default_theme_url'], '/images/hhyfull9.gif" /><span class="smalltext">', $post['time'], '</span></td></tr>';
echo '</table></td></tr></table>
</div>
</div></div>
   <span class="lowerframe"><span></span></span>
<br />';

// Full Top 10 by smfmod.com

[was copying the code from the Mod]
 
Title: Re: Professional statistics
Post by: Burke Knight on September 05, 2013, 03:03:30 PM
Could it be due to the fact that that part replaces the recent posts in the info center?
Maybe there is something missing there for using it in a block.
SimplePortal 2.3.8 © 2008-2024, SimplePortal