Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.7 > vBulletin 3.7 Add-ons

Reply
 
Thread Tools
Activity Modification Details »»
Activity Modification
Version: 3.03, by WetWired WetWired is offline
Developer Last Online: Sep 2014 Show Printable Version Email this Page

Category: Miscellaneous Hacks - Version: 3.7.x Rating:
Released: 04-27-2008 Last Update: 09-05-2008 Installs: 460
DB Changes Uses Plugins
Translations  
No support by the author.

This is the vB3.7/vB3.8 version of this modification.

Description
This hack adds an activity metric for users to your forum; this metric takes into account a variable number of weeks. Also provided is a Junior/Normal/Senior member system based on this metric, and a longevity metric (user registered time as a percent of the amount of time the first user has been registered).

Visiting each day and posting the configured amount of times per day for the configured number of weeks will yeild 100% activity. Posts are checked individually for each day, so days cannot be skipped then spammed up afterwards. The weight of visiting for the day relative to posting is configurable. Weeks are weighted so the most recent has a bigger impact on the activity percent than the most distant.

When a user logs in with activity above the configured threshold, they are promoted from Junior Member to Member. When they log in with the configured amount of time as Member, they are promoted to Senior Member. You can configure the mod to also add secondary usergroups when these promotions happen.

Complexity
This modification requires 1 XML import, uploading of images, and the addition of some CSS, depending on what options you choose

Technical
This hack adds 1 query to showthread for each user who posts in that page (or only 1 for the logged in user by configuration). In addition, the first time a member's post or profile is accessed during a day (GMT), 3 queries are performed to find that user's activity. By configuration, 1 query may be added to each page load to find the logged in user's "activity today". By configuration, 1 query may be added to each member profile view to find that member's "activity today".

Upgradability
This modification will import your settings and data from the 3.0/hack version
This modification will import your settings and data from the 3.5/3.6 mod version

Frequently Asked Questions
  • I don't see the Activity Settings section or Activity Maintenance link on the AdminCP navbar
    You're probably seeing a cached (old) copy of the navbar. Try pressing Ctrl-F5 in IE or FF, or whatever your browser requires to force it to load the current version of the page.
  • I installed this mod and nothing shows up
    First, go to AdminCP|Activity Settings|Display and make sure the dropdown settings are not set to None. If they aren't set to none, the most likely cause is using an old style which does not have template hooks; verify this by creating a new style without a parent and checking to see if the mod displays on it (the images probably won't load, though). If the mod displays on the default style but not your normal one, you need to add template hooks, otherwise post here for help.
  • I installed this mod using the Download/Upload Plugin page and there was an error/it doesn't seem to work
    To install this mod, you need to use the Add/Import Product link on the Manage Products page
  • I just installed and everyone's activity seems low
    1. Part of the activity calculation is what days users visited on. This information isn't collected before the mod is installed, so no user can have 100% activity untill you've been running the mod for the full period of time you have it set to monitor
    2. Please realize that there is no "roll over" for activity; if you have it set to look at 4 posts per day, your users must post 4 posts on each individual day to obtain 100%.
  • I founded this forum, but I don't have 100% longevity
    Somehow a user's join date has been set before yours. When you install, the mod looks for the earliest join date to use to find longevity, but you can change the baseline date. To change the "Start of board" time, go to Maintenance>Activity Maintenance>Set Start of Board, enter your user number in the text field, then click Set Start of Board
  • Why don't the images don't show up?/Why does the postcount have 's's in front of it?
    Be sure to upload one of the activity directories from activityimages.zip to the misc directory for each of your styles. To find a style's misc directory, goto the Style Manager, then from the dropdown next to the style, choose Stylevars. The setting Miscellaneous Images Folder contains the path to that style's misc directory, where you need to upload the activity directory
  • Can I use activity for promotions?
    The project to build a full-blown promotion hack for use with this mod has been cancelled, after losing all of my work, however a much simpler system that adds secondary groups based on two thresholds has been added to the main hack.
  • Can you make X number get split up into digits?
    I understand where you're coming from with this one, but I just can't figure out a way to work this that would be simple to use.
  • The tooltips don't wrap and get cut off with FireFox
    The same thing happens to other vB tooltips (the thumbnail ones, for example). If you know a way to add line breaks to FF tooltips without scripting, please let me know.
Change log

Note: To upgrade, with the old version still installed, go to the Add/Import Product link on the Manage Products page, select the XML file for the new version, choose Yes for overwrite, then click Import.

Update 3.03 release
  • Fixed a PHP error that some people were having

Update 3.01 release
  • Fixed a PHP warning that did not break anything. It should no longer be added to your error logs.

Update 3.00 release
No changes

Update 3.00 beta 3
  • Fixed template to use correct forumhome location
  • Separated text-version stat block into its own template
  • Moved settings into their own navigation group on the left (refresh AdminCP page after upgrading)
  • Added new customization reference page to install zip

Update 3.00 beta 2
  • Fixed a bug which prevented the postbit display option from working
  • Fixed a bug where the Top Activity link could be in the navbar without the Top Activity page being enabled
  • Fixed a bug where certain users have postcount of 'n/a' in Top Activity
  • Added diagnostic screen
  • Set minimum forum version

Version 3 (3.00 beta 1) vs Version 2 (2.80)
  • Added template hook and DOM based styling; manual template modification no longer needed
  • Split the options page into four options pages
  • Added many options to control the style of the mod
  • Added "Countdown to 100%" feature in the Top Activity page
  • All new profile page display for vB3.7
Support

Please click the install link if you install this hack
I will support this hack in this thread on about a weekly basis.

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #292  
Old 04-28-2009, 11:48 AM
robby-gr robby-gr is offline
 
Join Date: Oct 2008
Posts: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hello WetWired thanks for reply me.
I use VB3.8.2 and xcache and you have right!! I disabled the vB_Datastore_XCache and came back to vbulletin default vB_Datastore_Filecache and now is working ok.
But if you know (neither no) a way to work with xcache too I will appreciated you, so much.
With respect
Robby
Reply With Quote
  #293  
Old 05-03-2009, 03:51 PM
EmilGH EmilGH is offline
 
Join Date: Nov 2006
Posts: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hey -- GREAT mod -- it's become the lifeblood of a site I co-run. Two quick questions:

1. Is there a way to modify the "Top Activity" page to show last login instead of join date?

2. Is there a way to modify the "Top Activity" page to hide banned users (or users that are in a specific usergroup)?

We have an activity-based site, and when people fall below a certain activity level they get put into an inactive group. I'd like to be able to hide those folks from the top activity page so we see only the actives.

Thanks!
Reply With Quote
  #294  
Old 05-03-2009, 07:43 PM
dbirosel dbirosel is offline
 
Join Date: Feb 2007
Location: San Diego
Posts: 587
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Is this compatible with v3.8 yet? I would love to use this mod.
Reply With Quote
  #295  
Old 05-04-2009, 04:38 AM
WetWired's Avatar
WetWired WetWired is offline
 
Join Date: Jun 2002
Location: Texas
Posts: 669
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by EmilGH View Post
Hey -- GREAT mod -- it's become the lifeblood of a site I co-run. Two quick questions:

1. Is there a way to modify the "Top Activity" page to show last login instead of join date?

2. Is there a way to modify the "Top Activity" page to hide banned users (or users that are in a specific usergroup)?

We have an activity-based site, and when people fall below a certain activity level they get put into an inactive group. I'd like to be able to hide those folks from the top activity page so we see only the actives.

Thanks!
The problem with mucking with the top activity is that when you do it, the optimization to prevent checking everyone's activity breaks... since you are interested in the activity of a limited group of people, perhaps that is something you can deal with.

in the plugin marked "Top Activity" (for forumhome), find
Code:
  //**************************************** 
  // How old are we? how many users do we need to process? 
  if(MAX_NUM==0){ 
    $querylimit=1; 
  }else{//(MAX_NUM==0) 
    $daysold=($WWU002startOfDay-$statdata[0])/WWU002_ONE_DAY; 
    if(($daysold>=($vbulletin->options['WWU002weeks']*3.5))||($_REQUEST['oldway'])){ 
      //A complete reversal of activity is possible in this time period, we must check everyone 
      $querylimit='1'; 
    }else{//($daysold>=($vbulletin->options['WWU002weeks']*3.5)) 
      //What is the lowest activity that could surpass the lowest activity on the old list? 
      $acc=0; 
      DEVDEBUG('Days old='.$daysold); 
      for($i=1;$i<=$daysold;$i++){ 
        $acc+=$WWU002maxDay*$WWU002weekWeights[floor($i/7)]; 
      }//endfor($i=1;$i<$daysold;$i++) 
      $temp=$statdata[1]; 
      $temp=array_pop($temp); 
      DEVDEBUG('Activity lower limit='.$temp[3].'-'.($acc*2).'='.($temp[3]-($acc*2))); 
      $acc=$temp[3]-($acc*2); 
      if($acc<=0){ 
        //just use the simple where clause 
        $querylimit='1'; 
      }else{//($acc<=0) 
        $querylimit='wwu002activity>='.$acc; 
      }//endif($acc<=0) 
    }//endif($daysold>=($vbulletin->options['WWU002weeks']*3.5)) 
  }//endif(MAX_NUM==0)
replace with
Code:
$querylimit='usergroupid<>100';
This should (I'm not testing any of this) remove the optimization and instead only include people whose primary group is not group 100.

For the date thing, I think you should be able to
find (in the same plugin)
Code:
$longresult=$db->query_read('SELECT userid,username,joindate FROM '.TABLE_PREFIX.'user WHERE userid IN ('.$ids.')');
and replace with
Code:
$longresult=$db->query_read('SELECT userid,username,lastvisit AS joindate FROM '.TABLE_PREFIX.'user WHERE userid IN ('.$ids.')');
Reply With Quote
  #296  
Old 05-04-2009, 04:39 AM
WetWired's Avatar
WetWired WetWired is offline
 
Join Date: Jun 2002
Location: Texas
Posts: 669
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by dbirosel View Post
Is this compatible with v3.8 yet? I would love to use this mod.
It's my understanding that it is.
Reply With Quote
  #297  
Old 05-04-2009, 06:22 AM
robby-gr robby-gr is offline
 
Join Date: Oct 2008
Posts: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hello WetWired can you drop me one line answer?

I use VB3.8.2 and xcache and you have right!! I disabled the vB_Datastore_XCache and came back to vbulletin default vB_Datastore_Filecache and now is working ok.
But if you know (neither no) a way to work with xcache too I will appreciated you, so much.
With respect
Robby
Reply With Quote
  #298  
Old 05-04-2009, 01:34 PM
WetWired's Avatar
WetWired WetWired is offline
 
Join Date: Jun 2002
Location: Texas
Posts: 669
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I don't know anything about xcache or why it messes up the top activity caching. The error you gave was related to the datastore, so that was the prime suspect. TBH, if you're getting that error I'm not sure how anything can work on your forum, since everything uses the datastore. The top activity uses it in a non-standard way, though, since the usual way would require a separate file for the top activity page.

There are two relatively easy ways to solve the problem:
  1. Don't cache the top activity information This is a very simple edit, but probably not one you'd want to make, as you'd be re-calculating the activity for the entire forum with each view.
  2. Roll the updates back into the standalone file version While straight forward, this would still take some time to do. Ideally, this would include changes to the rest of the mod to allow the administrator to choose whether or not to use the external file.

The third option would be to find out what xcache is doing, but as I said I know nothing about it.
Reply With Quote
  #299  
Old 05-05-2009, 01:37 PM
robby-gr robby-gr is offline
 
Join Date: Oct 2008
Posts: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hello WetWired thanks for your answering me.
I understud these you wrote me.
I dont have other problems using xcache, datastore is working ok.
I will search and make some other combinations to find a way to work with xcache without this message on the top of page, I hope to find an answer
I like your mod very much, is good clever and clean job.
Thanks a lot.
Robby
Reply With Quote
  #300  
Old 05-05-2009, 03:49 PM
EmilGH EmilGH is offline
 
Join Date: Nov 2006
Posts: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by WetWired View Post
The problem with mucking with the top activity is that when you do it, the optimization to prevent checking everyone's activity breaks... since you are interested in the activity of a limited group of people, perhaps that is something you can deal with.

in the plugin marked "Top Activity" (for forumhome), find
Code:
  //**************************************** 
  // How old are we? how many users do we need to process? 
  if(MAX_NUM==0){ 
    $querylimit=1; 
  }else{//(MAX_NUM==0) 
    $daysold=($WWU002startOfDay-$statdata[0])/WWU002_ONE_DAY; 
    if(($daysold>=($vbulletin->options['WWU002weeks']*3.5))||($_REQUEST['oldway'])){ 
      //A complete reversal of activity is possible in this time period, we must check everyone 
      $querylimit='1'; 
    }else{//($daysold>=($vbulletin->options['WWU002weeks']*3.5)) 
      //What is the lowest activity that could surpass the lowest activity on the old list? 
      $acc=0; 
      DEVDEBUG('Days old='.$daysold); 
      for($i=1;$i<=$daysold;$i++){ 
        $acc+=$WWU002maxDay*$WWU002weekWeights[floor($i/7)]; 
      }//endfor($i=1;$i<$daysold;$i++) 
      $temp=$statdata[1]; 
      $temp=array_pop($temp); 
      DEVDEBUG('Activity lower limit='.$temp[3].'-'.($acc*2).'='.($temp[3]-($acc*2))); 
      $acc=$temp[3]-($acc*2); 
      if($acc<=0){ 
        //just use the simple where clause 
        $querylimit='1'; 
      }else{//($acc<=0) 
        $querylimit='wwu002activity>='.$acc; 
      }//endif($acc<=0) 
    }//endif($daysold>=($vbulletin->options['WWU002weeks']*3.5)) 
  }//endif(MAX_NUM==0)
replace with
Code:
$querylimit='usergroupid<>100';
This should (I'm not testing any of this) remove the optimization and instead only include people whose primary group is not group 100.

For the date thing, I think you should be able to
find (in the same plugin)
Code:
$longresult=$db->query_read('SELECT userid,username,joindate FROM '.TABLE_PREFIX.'user WHERE userid IN ('.$ids.')');
and replace with
Code:
$longresult=$db->query_read('SELECT userid,username,lastvisit AS joindate FROM '.TABLE_PREFIX.'user WHERE userid IN ('.$ids.')');
All worked perfectly -- thanks!!!
Reply With Quote
  #301  
Old 05-06-2009, 03:42 AM
WetWired's Avatar
WetWired WetWired is offline
 
Join Date: Jun 2002
Location: Texas
Posts: 669
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by robby-gr View Post
Hello WetWired thanks for your answering me.
I understud these you wrote me.
I dont have other problems using xcache, datastore is working ok.
I will search and make some other combinations to find a way to work with xcache without this message on the top of page, I hope to find an answer
I like your mod very much, is good clever and clean job.
Thanks a lot.
Robby
Try this:
Upload the attached file to your forum directory and access activitystat.php with xcache on. See if it works without giving an error message. If it doesn't give an error message, I will follow up with the template changes to integrate it propperly.
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 05:43 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.11474 seconds
  • Memory Usage 2,337KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (8)bbcode_code
  • (4)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete