View Single Post
  #72  
Old 12-01-2004, 01:30 PM
rh2004 rh2004 is offline
 
Join Date: Nov 2004
Posts: 154
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi im confused I done the phrase but and all upto number 6 then I have no idea
what this is talking about, is it a New template, a new file


Code:
6.  Above, Add:



**********







################################################################################
########################## Who Viewed This Thread ##############################

##########################      CONFIGURATION     ##############################
################################################################################







/* 



By default, only Admins can see either of the two sections of "Who Viewed" information, and only Admins can Reset the second section.  





There are three ways you can deviate from this default setup (Regardless of which deviation you may choose, ONLY admins can Reset the second section):





OPTION 1:  If you want ALL users to be able to see BOTH sections of "Who Viewed" information...



	Located immediately below these three options, you will find a line that starts with "$whoviewed_security_option = ".  The number that follows the equals sign indicates which Security Option you wish to use (It is set to "2" by default).  For Option 1, change the number "2" to a "1".





OPTION 2:  If you want to specify ONLY certain UserGroups IN ADDITION to Admins that can see BOTH sections of "Who Viewed" information...



	Located immediately below these three options, you will find a line that starts with "$whoviewed_security_option = ".  The number that follows the equals sign indicates which Security Option you wish to use (It is set to "2" by default).  For Option 2, change the number to "2", if it is not already set that way.



	In addition, in the following section of code, insert the Usergroup IDs of the User Groups that you want this hack to work for.  Each UserGroup ID needs to be surrounded by single-quotes ( ' ), and all but the last one needs to have a comma after each entry.  In the following example, UserGroups 6 and 5 have been specified (although the actual code to be executed only specifies UserGroup 6). Change this to suit your needs.



**********************************************

EXAMPLE

**********************************************



$whoviewed_selective_usergroups = array( 

    '6', 

    '5' 

); 



**********************************************

END OF EXAMPLE

**********************************************



*/







// List of Approved UserGroups

$whoviewed_selective_usergroups = array( 

    '6' 

); 











/*



OPTION 3:  If you want ALL users to see the first section of "Who Viewed" information, but wish to specify that ONLY certain UserGroups can see the second section of "Who Viewed" information...



	Located immediately below these three options, you will find a line that starts with "$whoviewed_security_option = ".  The number that follows the equals sign indicates which Security Option you wish to use (It is set to "2" by default).  For Option 3, change the number "2" to a "3".



	In addition, set the List of Approved UserGroups above as described in Option 2.





*/









// Set the number on this line equal to which Security Option you chose.  It is set to 2, by default.
$whoviewed_security_option = 2;







/*



DISPLAY METHOD:



Display Option 1:	All "Who Viewed" information is displayed right on the ShowThread page.



Display Option 2:	The ShowThread page will have a link which opens a Pop Up Window with the "Who Viewed" information.



*/





// Set the number on this line equal to which Display Option you chose.  It is set to 1, by default.

$whoviewed_display_option = 1;






################################################################################

##########################         End of         ##############################
########################## Who Viewed This Thread ##############################

##########################      CONFIGURATION     ##############################
################################################################################


















// Section - Check if user has already viewed thread, and add UserID if they have not





$showinvisible = 1; 



// Get who has already viewed this thread 

$currentthread = $DB_site->query_first("SELECT whoviewed FROM ".TABLE_PREFIX."thread WHERE threadid = $threadid"); 

$currentthread2 = $DB_site->query_first("SELECT whoviewedcounter FROM ".TABLE_PREFIX."thread WHERE threadid = $threadid"); 

$userinfo = fetch_userinfo($bbuserinfo['userid']); 



if (!$userinfo['invisible'] OR $showinvisible) 

{ 

    if (!empty($currentthread['whoviewed'])) 

    { 

        $vieweduserids = explode(",", $currentthread['whoviewed']); 

        if (!in_array($bbuserinfo['userid'], $vieweduserids)) 

        { 

            $adduserid = ",".$bbuserinfo[userid]; 

            $DB_site->query("UPDATE " . TABLE_PREFIX . "thread SET whoviewed = CONCAT(whoviewed, '$adduserid') WHERE threadid = $threadid"); 

        } 

    } 

    else 

    { 

        $DB_site->query("UPDATE " . TABLE_PREFIX . "thread SET whoviewed = $bbuserinfo[userid] WHERE threadid = $threadid"); 

    } 





// Duplicate Set



    if (!empty($currentthread2['whoviewedcounter'])) 

    { 

        $vieweduserids2 = explode(",", $currentthread2['whoviewedcounter']); 

        if (!in_array($bbuserinfo['userid'], $vieweduserids2)) 

        { 

            $adduserid = ",".$bbuserinfo[userid]; 

            $DB_site->query("UPDATE " . TABLE_PREFIX . "thread SET whoviewedcounter = CONCAT(whoviewedcounter, '$adduserid') WHERE threadid = $threadid"); 

        } 

    } 

    else 

    { 

        $DB_site->query("UPDATE " . TABLE_PREFIX . "thread SET whoviewedcounter = $bbuserinfo[userid] WHERE threadid = $threadid"); 

    } 





} 


	

// End Section - Check if user has already viewed thread, and add UserID if they have not








// Main "Who Viewed" Function



function whoviewedfunction()
{


	// Globalize all variables to that external variables are available within the function, and so internal variables are available outside the function



	global $showinvisible, $DB_site, $threadid, $userinfo, $bbuserinfo, $currentthread, $thread, $vbphrase, $user, $session;

	global $currentthread, $currentthread2, $vieweduserids, $adduserid, $vieweduserids2, $whoviewed_selective_usergroups, $whoviewed_security_option, $whoviewed_group_approved, $show_whoviewed, $result, $viewers, $result2, $viewers2, $whoviewedreset, $whoviewed_display_option;

	

	

	

	

	

	

	

	// Section - Security - Evaluate if user has permission to view "Who Viewed" information, and which sections they have permissions to access

	
	
	
	if ((in_array($bbuserinfo['usergroupid'], $whoviewed_selective_usergroups)) OR (in_array($bbuserinfo['membergroupids'], $whoviewed_selective_usergroups)))
	{
	
		$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 == 2)

	{

	

		//redirect back to Pop Up Window 

		$url = "showthread.php?$session[sessionurl]do=whoviewedpopup&amp;t=$threadid"; 

		eval(print_standard_redirect('redirecting')); 

	

	}







}





********************************





7.  Optional Step:  In the code you just added in the previous step, there is a Configuration Section. If you wish, you can modify this hack's behavior and permissions there.  Instructions can be found within the Configuration Section.





********************************



8.  Open the "SHOWTHREAD" template and Find:



**********





<!-- forum rules and admin links -->

<table cellpadding="0" cellspacing="0" border="0" width="100%" align="center">





********************************



9.  Above, Add:



**********







<br/>



<!-- Section - If the Display Option is set to Pop Up, show the Pop Up Link -->





<if condition="$whoviewed_display_option == 2">





	<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">

	<tr>

		<td class="tcat" colspan="2">

			

		<a href="showthread.php?$session[sessionurl]do=whoviewedpopup&amp;t=$threadid" target="threadpop" onclick="window.open(this.href, this.target, 'width=640, height=400, resizable'); return false;">List users who viewed this thread</a> 



		</td>

	</tr>

	</table>



	<br/>

	<br/>





</if>





<!-- End Section - If the Display Option is set to Pop Up, show the Pop Up Link -->









<!-- Section - If the Display Option is set to ShowThread, show the Who Viewed information right on the ShowThread page -->





<if condition="$whoviewed_display_option == 1">

	





<!-- Master Section - Display Who Viewed information, based on permissions. -->

<!-- Section Note:  "WhoViewedTemplate" Template has a mirror of this section -->

	



	<if condition="$show_whoviewed">

		



	

		<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">

		<tbody>

		<tr>

			<td class="tcat" colspan="2">

			<a style="float:right" href="#top" onclick="return toggle_collapse('whoviewed1')"><img id="collapseimg_whoviewed1" src="images/buttons/collapse_tcat.gif" alt="" border="0" /></a>

	

				$vbphrase[already_viewed_this_thread]

	

			</td>

		</tr>

	

		</tbody>

		<tbody id="collapseobj_whoviewed1" style="">

	

		<tr>

			<td class="alt1" colspan="2">

				<span class="smallfont">$thread[viewers]</span>

			</td>

		</tr>

		</tbody>

		</table>



		<br />

		

		

	</if>

	

	

	

	

	<if condition="$whoviewed_group_approved OR $whoviewed_security_option == 1">

	

		

	

		<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">

		<tbody>

		<tr>

			<td class="tcat" colspan="2">

			<a style="float:right" href="#top" onclick="return toggle_collapse('whoviewed2')"><img id="collapseimg_whoviewed2" src="images/buttons/collapse_tcat.gif" alt="" border="0" /></a>

	

	

			$vbphrase[already_viewed_this_thread_since] &nbsp $whoviewedreset &nbsp &nbsp 

			

			

			<if condition="is_member_of($bbuserinfo,6)">

			

				(<a href="showthread.php?$session[sessionurl]do=resetwhoviewedcounter&amp;t=$threadid">Reset Counter</a>)

			

			</if>

			

	

	

			</td>

		</tr>

	

		</tbody>

		<tbody id="collapseobj_whoviewed2" style="">

	

		<tr>

			<td class="alt1" colspan="2">

				<span class="smallfont">$thread[viewerscounter]</span>

			</td>

		</tr>

		</tbody>

		</table>



		<br />

		<br />

		

	

	

	

	</if>





<!-- End Master Section - Display Who Viewed information, based on permissions. -->

	



</if>







<!-- End Section - If the Display Option is set to ShowThread, show the Who Viewed information right on the ShowThread page -->





********************************



10.  In the Parent Style of your choice, create a New Template (Style Manager/<Pulldown Menu> Add New Template) with the following information:



**********





New Template Title:  WhoViewedTemplate





********************************



11.  For the contents of this New Template - "WhoViewedTemplate", enter the following:



**********







$stylevar[htmldoctype]

<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">

<head>

	<title>Who Viewed this Thread? - $vboptions[bbtitle]</title>

	$headinclude

</head>

<body onload="self.focus()" style="margin:0px">



<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%">

<tr>

	<td class="tcat" colspan="1">



		Who Viewed this Thread?

		<div class="smallfont">Thread: <a href="showthread.php?$session[sessionurl]t=$thread[threadid]">$thread[title]</a></div>



	</td>

</tr>



</table>



<br/>

<br/>







<!-- Mirror Section - Display Who Viewed information, based on permissions. -->

<!-- Section Note:  This is a mirror of the Master Section, located in the ShowThread Template addition.  -->









	<if condition="$show_whoviewed">

		



	

		<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">

		<tbody>

		<tr>

			<td class="tcat" colspan="2">

			<a style="float:right" href="#top" onclick="return toggle_collapse('whoviewed1')"><img id="collapseimg_whoviewed1" src="images/buttons/collapse_tcat.gif" alt="" border="0" /></a>

	

				$vbphrase[already_viewed_this_thread]

	

			</td>

		</tr>

	

		</tbody>

		<tbody id="collapseobj_whoviewed1" style="">

	

		<tr>

			<td class="alt1" colspan="2">

				<span class="smallfont">$thread[viewers]</span>

			</td>

		</tr>

		</tbody>

		</table>



		<br />

		

		

	</if>

	

	

	

	

	<if condition="$whoviewed_group_approved OR $whoviewed_security_option == 1">

	

		

	

		<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%" align="center">

		<tbody>

		<tr>

			<td class="tcat" colspan="2">

			<a style="float:right" href="#top" onclick="return toggle_collapse('whoviewed2')"><img id="collapseimg_whoviewed2" src="images/buttons/collapse_tcat.gif" alt="" border="0" /></a>

	

	

			$vbphrase[already_viewed_this_thread_since] &nbsp $whoviewedreset &nbsp &nbsp 

			

			

			<if condition="is_member_of($bbuserinfo,6)">

			

				(<a href="showthread.php?$session[sessionurl]do=resetwhoviewedcounter&amp;t=$threadid">Reset Counter</a>)

			

			</if>

			

	

	

			</td>

		</tr>

	

		</tbody>

		<tbody id="collapseobj_whoviewed2" style="">

	

		<tr>

			<td class="alt1" colspan="2">

				<span class="smallfont">$thread[viewerscounter]</span>

			</td>

		</tr>

		</tbody>

		</table>



		<br />

		<br />

		

	

	

	

	</if>









<!-- End Mirror Section - Display Who Viewed information, based on permissions. -->







<table class="tborder" cellpadding="$stylevar[cellpadding]" cellspacing="$stylevar[cellspacing]" border="0" width="100%">



<tr>

	<td class="tfoot" colspan="1" align="center"><div class="smallfont">

		<a href="#" onclick="self.close();"><strong>$vbphrase[close_this_window]</strong></a>

	</div></td>

</tr>

</table>



</body>

</html>







********************************











Installation Complete!

Can someone explain please
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01217 seconds
  • Memory Usage 1,895KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • 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
  • showpost_complete