Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Full Releases
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Who Viewed This Thread - Enhanced Version Details »»
Who Viewed This Thread - Enhanced Version
Version: 1.3.1, by Ocean Ocean is offline
Developer Last Online: Nov 2023 Show Printable Version Email this Page

Version: 3.0.3 Rating:
Released: 08-29-2004 Last Update: 12-14-2004 Installs: 69
DB Changes
 
No support by the author.

Who Viewed This Thread - Enhanced Version v1.3.2


Version: 1.3.2
vB Version: 3.0.3
Developer: Ocean
Install Difficulty: Moderately Easy



The original hack this references was done by Gary King (https://vborg.vbsupport.ru/showthread.php?t=61222). I modified his hack in order to gain some additional functionality.

This hack is meant to be installed instead of Gary's original version - not in addition to it (for sanity's sake, as far as managing the code is concerned).


(This was submitted as a seperate hack with Gary's permission. If this belongs in a different group, I'm sure a Moderator will move it accordingly. )


Description:

This hack will allow you to see which users have viewed any given Thread. In addition, there is a second section that is resettable. What this means, is that there are two sections that show a list of users who have viewed the Thread in question.

The first section is a Master List - it shows all users who have viewed that thread at ANY point in time (since the hack was installed).

The second section works like your car's Trip Meter. You can Reset that second section at any time and it will then show only the users that have viewed that thread FROM THAT POINT ON. In addition, this second section will show you the Date/Time of the last Reset, so that you know from what point that second list is showing. This is useful, for example, if you want to be able to see which users have viewed a thread after you have updated it, or after a particular post of interest has been made.

You can choose which UserGroups can view the Who Viewed information, or even if you want all users to be able to see the first section - but only certain UserGroups to see the second.

You can also choose whether you want the Who Viewed information to be displayed directly on the ShowThread page, or if you would prefer to only show a link that opens a Pop Up Window with the Who Viewed information there.




Release Notes:


v1.3.2

Fixed the problem where the Pop-Up Link was visible to users who didn't have permission to view that information. (They still wouldn't be shown the information - but the link shouldn't have been visible to them in the first place)


v1.3.1

Minor modifications to the Aesthetics of the ShowThread page, as well as the Who Viewed Pop Up Window. No functional changes. If you are using v1.3.0, you do not need to upgrade, unless you wish to have the new aesthetics.


v1.3.0

Added the ability to choose whether you want the Who Viewed information to be displayed directly on the ShowThread page (as it was for all prior versions of this hack), or if you would prefer to only show a link that opens a Pop Up Window with the Who Viewed information there. Also consolidated and cleaned up the code.


v1.2.6

Fixed the problem with the "Who Viewed Since" table collapsing the wrong object


v1.2.5

Minor changes to optimize code. No functional changes. If you have v1.2.4, you do not need to upgrade to v1.2.5.


v1.2.4

Reworked the Security Sections so that they are exponentially easier to set. Now, other than choosing which UserGroups you want to have access to this hack, you only need to change ONE variable in order to choose which Security Layout you want to use.


v1.2.3

Updated all of the Security Sections to allow for more flexibility in selecting which UserGroups may view the WhoViewed Information.


v1.2.1

Upgrade Notes have been updated, and an Upgrade Script provided for those who have Gary's original version installed. If you have already successfully installed v1.2 of this hack, there is no need to do anything further.


v1.2

The original hack allowed you to see which users had viewed any particular thread on your board. It was and is an excellent hack - however, I desired some additional functionality, and so I made the following changes:


1. The format of stored User IDs has changed to a comma delineated format. This was done to optimize the code by stripping out the need for an additional explode() and implode().

2. An additional set of information is now being kept and maintained. However, unlike the first set (which will show you who has viewed a particular thread - ever), the second set is resettable at any time by Admins. This gives you a "tripmeter" of sorts, as you can now tell who has viewed a particular thread from the last time you reset that counter for that thread.

3. The date and time of the last reset for each thread is kept and displayed. Otherwise, it would be self-defeating, as you wouldn't remember when you last reset it.

4. This hack has been written so that all functions are for Admins only. Instructions are included for modifying this, if you wish. (Note: Even if you make ALL information viewable to ALL users, only Admins are allowed to Reset Counters. It is recommended that you do not change this)

5. I have the template additions being added at the bottom of the ShowThread page (right above the posting permissions). It seems to make more sense putting it there, as it doesn't get in the way, aesthetically speaking. Basically, if you want to check that section, it's there - if not, you'll never be bothered by it. If you prefer to have it somewhere else, feel free to insert the ShowThread Template portion of the code wherever you wish.



UPGRADE NOTES:

The instructions for this hack assume that you do NOT have any prior version installed.

At the moment, if you already have Gary's original 1.0 version installed, you will either need to completely clear out the existing data, before installing this hack - or you can download the "WhoViewedUpgradeFormat.php" script in order to convert the data format over to the new style.

Instructions are included for upgrading.

Show Your Support

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

Comments
  #92  
Old 02-11-2005, 12:00 PM
H2k H2k is offline
 
Join Date: Apr 2004
Posts: 177
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by rh2004
Hi, I did it this is my showthread.php file...


Code:
$whoviewed_group_approved = true;
	
	}
	else
	{
	
		$whoviewed_group_approved = false;
	
	}
	
	
	if ( ($whoviewed_group_approved == true) OR ($whoviewed_security_option == 1) OR ($whoviewed_security_option == 3))
	
	{
		
		
		$show_whoviewed = true; 
		
		
		
		// End Section - Security - Evaluate if user has permission to view "Who Viewed" information, and which sections they have permissions to access
		
		
		
		// Section - Get list of users who has viewed this thread - First Counter
		
		
		if (empty($currentthread['whoviewed'])) 
		{ 
		    $thread['viewers'] = '('.strtolower($vbphrase['none']).')'; 
		} 
		else 
		{ 
		    $result = $DB_site->query("SELECT userid, username FROM " . TABLE_PREFIX . "user WHERE userid IN ($currentthread[whoviewed])"); 
		    $viewers = array(); 
		    while ($user = $DB_site->fetch_array($result)) 
		    { 
		            array_push($viewers, "<a href=\"member.php?".$session['sessionurl'] . "u=".$user['userid'] . "\">" . htmlspecialchars($user['username']) .    "</a>"); 
		    } 
		    $thread['viewers'] = implode(", ", $viewers); 
		} 
		
	
		// End Section - Get list of users who has viewed this thread - First Counter
	
	
	
		// Section - Get list of users who has viewed this thread - Second Counter
	
		
		if (empty($currentthread2['whoviewedcounter'])) 
		{ 
		    $thread['viewerscounter'] = '('.strtolower($vbphrase['none']).')'; 
		} 
		else 
		{ 
		    $result2 = $DB_site->query("SELECT userid, username FROM " . TABLE_PREFIX . "user WHERE userid IN ($currentthread2[whoviewedcounter])"); 
		    $viewers2 = array(); 
		    while ($user = $DB_site->fetch_array($result2)) 
		    { 
		            array_push($viewers2, "<a href=\"member.php?".$session['sessionurl'] . "u=".$user['userid'] . "\">" . htmlspecialchars($user['username']) .    "</a>"); 
		    } 
		    $thread['viewerscounter'] = implode(", ", $viewers2); 
		} 
	
	
		// End Section - Get list of users who has viewed this thread - Second Counter
		
	
		
		// Section - Get the date/time of last reset
	
		
		if ($thread['whoviewedreset'] != '0')
		{
		
		//	$whoviewedreset = vbdate($vboptions[dateformat], '$thread[whoviewedreset]');
			$whoviewedreset = vbdate("m/d/Y - h:i a", $thread[whoviewedreset]);
		
		}
		
		else
		{
		
			$whoviewedreset = "Never";
		
		}
		
	
		// End Section - Get the date/time of last reset
		
		
	
	}
	
	else
	{
	
	        $show_whoviewed = false; 
	
	}
	
	
}


// End of Main "Who Viewed" Function





if ($whoviewed_display_option == 1)
{


	whoviewedfunction();


}




if ($_REQUEST['do'] == 'whoviewedpopup')
{
	// global.php handles $threadid..
	//$threadid = intval($threadid);

	$thread = verify_id('thread', $threadid, 1, 1);
	$forumperms = fetch_permissions($thread['forumid']);

	if (!($forumperms & CANVIEW))
	{
		print_no_permission();
	}
	if (!($forumperms & CANVIEWOTHERS) AND ($thread['postuserid'] != $bbuserinfo['userid'] OR !$bbuserinfo['userid']))
	{
		print_no_permission();
	}


	whoviewedfunction();


	unset($shutdownqueries['pmpopup']);
	eval('print_output("' . fetch_template('WhoViewedTemplate') . '");');



}



if ($_REQUEST['do'] == "resetwhoviewedcounter") 
{ 
	
	if(!is_member_of($bbuserinfo, 6)) // only admins may reset counter (usergroup: 6) 
	{ 
	
		print_no_permission(); 
	
	} 
	
	
	$threadid = addslashes($_REQUEST['threadid']); 
	
	//***insert mysql queries 
	$DB_site->query("UPDATE " . TABLE_PREFIX . "thread SET whoviewedcounter='' WHERE threadid=$threadid");
	$DB_site->query("UPDATE " . TABLE_PREFIX . "thread SET whoviewedreset = " . TIMENOW . " WHERE threadid = $threadid");
	
	
	if ($whoviewed_display_option == 1)
	{
	
		//redirect back to thread 
		$url = "showthread.php?$session[sessionurl]t=$threadid"; 
		eval(print_standard_redirect('redirecting')); 
	
	}
	
	
	if ($whoviewed_display_option == 1)
	{
	
		//redirect back to Pop Up Window 
		$url = "showthread.php?$session[sessionurl]do=whoviewedpopup&amp;t=$threadid"; 
		eval(print_standard_redirect('redirecting')); 
	
	}



}
//set thread last view
$threadview = fetch_bbarray_cookie('thread_lastview', $thread['threadid']);
if ($thread['pollid'] AND $vboptions['updatelastpost'] AND ($displayed_dateline == $thread['lastpost'] OR $threadview == $thread['lastpost']) AND $pollinfo['lastvote'] > $thread['lastpost'])
{
	$displayed_dateline = $pollinfo['lastvote'];
}

There is no errors but I can't see it anywhere....
ohhhhhhhhhhhhhh know i understand i have to copy the whole code..

thankyou very much .. sorry becz my english is really bad so that is why i can't understand
Reply With Quote
  #93  
Old 02-11-2005, 08:32 PM
Ocean's Avatar
Ocean Ocean is offline
 
Join Date: Mar 2004
Posts: 208
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Jadelit

Is there any way to add the usergroup colors to the list as well?

If it's not showing up as is, then I'll have to look into it. But I might not incorporate it until the next feature version.
Reply With Quote
  #94  
Old 02-11-2005, 08:32 PM
Ocean's Avatar
Ocean Ocean is offline
 
Join Date: Mar 2004
Posts: 208
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by H2k

ohhhhhhhhhhhhhh know i understand i have to copy the whole code..

thankyou very much .. sorry becz my english is really bad so that is why i can't understand


No problem.
Reply With Quote
  #95  
Old 02-12-2005, 12:33 AM
H2k H2k is offline
 
Join Date: Apr 2004
Posts: 177
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Ocean
No problem.
ok there is something maybe u need to fix .. like in my board i always make my self invisble .. some time i dont like the member see me in the thread.. so

can u make that if the invisble user or who make him self invisble dont show .. only for admin like in who is online

it will show only for the admin
like this *Admin

also if u can make a the color for the name it will be nice to know becz i havemake my board full of color for each groups..

and mabye this is good suggest

like u add

Admin {5} Admin6 {6} AdminD {18} this will be great i have see the saem this mod over at phpBB and IPB

it show for each user how many time they view like Admin {80} this mean he view it 80 Time

there is a MOD in phpBB it show a full list

like who is online when u check u see all gust where member view topic etc..

the same in who view topic

it take them to anther page and it show how many time this user view this thread and many time he reply It is called Hoistry Topic or something like this .. it have alot of Extra ..

Thankyou
Reply With Quote
  #96  
Old 02-16-2005, 12:12 AM
Ocean's Avatar
Ocean Ocean is offline
 
Join Date: Mar 2004
Posts: 208
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by H2k

ok there is something maybe u need to fix .. like in my board i always make my self invisble .. some time i dont like the member see me in the thread.. so

can u make that if the invisble user or who make him self invisble dont show .. only for admin like in who is online

it will show only for the admin
like this *Admin

It's been awhile since I looked at that particular function - but I believe that this hack respects the Invisibility flag, if I remember correctly...


Quote:
Originally Posted by H2k

also if u can make a the color for the name it will be nice to know becz i havemake my board full of color for each groups..

As I said earlier, if the colors don't translate now - I may add that in a future version. However, my initial priority would be to include date/time stamps.


Quote:
Originally Posted by H2k

and mabye this is good suggest

like u add

Admin {5} Admin6 {6} AdminD {18} this will be great i have see the saem this mod over at phpBB and IPB

it show for each user how many time they view like Admin {80} this mean he view it 80 Time

there is a MOD in phpBB it show a full list

like who is online when u check u see all gust where member view topic etc..

the same in who view topic

it take them to anther page and it show how many time this user view this thread and many time he reply It is called Hoistry Topic or something like this .. it have alot of Extra ..

Thankyou

Having a full history is definitely a lot more involved. I'm reluctant to add that in, simply due to the strain that would cause for the server. But I might add that in as an Admin-configurable option in a future version.
Reply With Quote
  #97  
Old 02-16-2005, 12:51 AM
H2k H2k is offline
 
Join Date: Apr 2004
Posts: 177
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hello

My brother use phpBB and he have over then 20000 Members with over then 250000 post etc..

and his board is fullymodded withphp mods.. and it's so fast here i giv eu some idea about View Hoistry for phpBB

In the forums play we have here.. Reply and view for each topic.. and for reply it will show who reply the user. but view it will not show here is for phpBB



for view it will show in pop up

after u enter the topic u wills ee one icons



after u check the icons it iwll take u to anther page and it willshow alll user who view and how many times and for the admin it will show for each user ips and also Anonymous it will show the how many tme they view and also the ips for the admins.



also there is options in the profiles for each user .. what topic they view in what forums and how many time they view it .. etc.. u can see the screen shot .



if u want to see this mods installing i will giv eu a link for phpbbfm and u can download it and see all options it have..

it dont slow the board or naything like what i said my brother use phpBB and he have over then 20000 user and every over then 500 user come at the same time and more.. and the board run fast :laugh:

Thankyou very much and i hope u really get tiime to thinka bout this and update your mods
Reply With Quote
  #98  
Old 02-18-2005, 05:20 PM
YLP1 YLP1 is offline
 
Join Date: Aug 2004
Posts: 417
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I am getting an error that says this when trying to do the queries:
An error occurred while attempting to execute your query. The following information was returned.
error number: 1146
error desc: Table 'ylpforums.thread' doesn't exist

How do I alter the queries to inlcude the name of my forums???
Reply With Quote
  #99  
Old 02-24-2005, 11:54 AM
H2k H2k is offline
 
Join Date: Apr 2004
Posts: 177
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

What error u got .. i think the same when i try at the first iu need to copy the whole code

thx :devious:
Reply With Quote
  #100  
Old 03-01-2005, 10:47 AM
Vampyre's Avatar
Vampyre Vampyre is offline
 
Join Date: Jun 2003
Location: Down Under
Posts: 24
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Works well.
Thanks for the nice work.
Reply With Quote
  #101  
Old 03-10-2005, 10:59 AM
shungo shungo is offline
 
Join Date: Nov 2002
Location: France
Posts: 42
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i installed it. all works fine excepted when i reset counter... i see
Quote:
Already viewed this thread since: m/d/Y - h:i a
instead of real date/time.

Help pls

regards and congrats for this useful hack !
Reply With Quote
Reply


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 07:10 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.10321 seconds
  • Memory Usage 2,340KB
  • 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
  • (1)bbcode_code
  • (8)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
  • (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