Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Full Releases

Reply
 
Thread Tools
Who Downloaded This Attachment - for Gold Details »»
Who Downloaded This Attachment - for Gold
Version: 1.00, by Mr Blunt Mr Blunt is offline
Developer Last Online: Sep 2006 Show Printable Version Email this Page

Version: 3.0.0 Rating:
Released: 04-04-2004 Last Update: Never Installs: 12
 
No support by the author.

// **********************************************
// **********************************************
// Hack to track Who Downloaded attachments
// Old vb2 hack modified to vbulletin 3.0 Gold
// Credit to TWTCommish for the original vb2 hack
// https://vborg.vbsupport.ru/showthread.php?t=36900
// **********************************************
// **********************************************
4 new templates
2 modified templates
1 modified php file
1 new php file

This hack allows admins, supermods, and mods to see who downloads each file. If you want to allow other groups, just add/subtract them from whodownloaded.php on the top line as desired.

Although I rewrote and tested this myself, and it works like a charm now, I'm not offering support for this. I'm just a Joe Average. This is an old old hack. I just had to change some words like "gettemplate" to "fetch_template" and "dooutput" to "print_output" and one instance of "post" changed to "attachment". Also had to modify table structures and of course figure out where to put everything. I'm fairly certain that this is up-to-snuff but don't take my word for it.

It doesn't track IP's or how many times a user may have downloaded. It just brings up a popup window with the usernames that have downloaded this atachment. Who knows, maybe someone else will build upon this.

Forgive me if I posted this in the wrong place or if it shouldn't be here at all.
Mods, feel free to do what you wish with this.
Just trying to give a little back to those who have taught me.


// **********************************************
// create a new template - whodownloads
// **********************************************
Code:
<html>
<head>
<title>Who Downloaded This?</title>
$headinclude
<script language="JavaScript">self.focus();</script>
</head>
<body>

<table cellpadding="10" cellspacing="0" border="0" width="100%"><tr><td>

<table cellpadding="4" cellspacing="$stylevar[cellspacing]" border="0" width="100%">
	<tr>
		<td class="tcat" width="100%"><b>Total Downloads: $total</b></td>
	</tr>
	<tr>
		<td class="alt1" width="100%"><b>User</b></td>
	</tr>

$whodownloadsbit

	<tr id="cat">
		<td class="thead" width="100%" align="center"><a href="javascript:window.close();">Close Window</a></td>
	</tr>
</table>

</td></tr></table>
</body>
</html>

// **********************************************
// **********************************************
// create a new template - whodownloadsbit
// **********************************************
Code:
<tr>
		<td class="thead"><a href="member.php?s=$session[sessionhash]&action=getinfo&userid=$download[userid]" target="_blank">$download[username]</a></td>
</tr>

// **********************************************
// **********************************************
// create a new template - whodownloads_error
// **********************************************
Code:
<tr>
		<td class="thead">No downloads found.</td>
</tr>

// **********************************************
// **********************************************
// create a new template - whodownloads_error_nop
// **********************************************
Code:
<tr>
		<td class="thead">Sorry, no Permisson.</td>
</tr>

// **********************************************
// **********************************************
// Find this in template - headinclude
// **********************************************
Code:
<script type="text/javascript" src="clientscript/vbulletin_global.js"></script>
<if condition="$show['popups']"><script type="text/javascript" src="clientscript/vbulletin_menu.js"></script></if>
// **********************************************
// Change it to this
// **********************************************
Code:
<script type="text/javascript" src="clientscript/vbulletin_global.js"></script>
<if condition="$show['popups']"><script type="text/javascript" src="clientscript/vbulletin_menu.js"></script></if>
<script language="JavaScript">
	<!-- START HIDE
function whodownloaded(attachmentid)
{
	window.open
	("whodownloaded.php?s=$session[sessionhash]&attachmentid=" + attachmentid, "whodownloaded", "toolbar=no, scrollbars=yes, resizable=no, width=240, height=300, top=50, left=50");
}
  -->
</script>

// **********************************************
// **********************************************
// Find this in template - postbit_attachment
// **********************************************
Code:
<tr>
	<td><img class="inlineimg" src="$stylevar[imgdir_attach]/$attachment[attachmentextension].gif" alt="<phrase 1="$attachment[attachmentextension]">$vbphrase[file_type_x]</phrase>" width="16" height="16" border="0" style="vertical-align:baseline" /></td>
	<td><a href="attachment.php?$session[sessionurl]attachmentid=$attachment[attachmentid]" target="_blank">$attachment[filename]</a> ($attachment[filesize], <phrase 1="$attachment[counter]">$vbphrase[x_views]</phrase></td>
</tr>
// **********************************************
// Change it to this
// **********************************************
Code:
<tr>
	<td><img class="inlineimg" src="$stylevar[imgdir_attach]/$attachment[attachmentextension].gif" alt="<phrase 1="$attachment[attachmentextension]">$vbphrase[file_type_x]</phrase>" width="16" height="16" border="0" style="vertical-align:baseline" /></td>
	<td><a href="attachment.php?$session[sessionurl]attachmentid=$attachment[attachmentid]" target="_blank">$attachment[filename]</a> ($attachment[filesize], <phrase 1="$attachment[counter]">$vbphrase[x_views], </phrase></td>
	<td><a href="javascript:whodownloaded($attachment[attachmentid])">Who Downloaded This?</a>)</td>
</tr>

// **********************************************
// **********************************************
// create a new php file - whodownloaded.php
// place it in the main forum (upload) directory
// (same directory that has attachment.php)
// **********************************************
Code:
<?php
require("./global.php");

if (($bbuserinfo[usergroupid] == 6 OR $bbuserinfo[usergroupid] == 5 OR $bbuserinfo[usergroupid] == 7) AND $attachmentid)
{
	$downloads = $DB_site->query("SELECT u.userid, u.username FROM user u WHERE u.downloads LIKE \"$attachmentid%\" OR u.downloads LIKE \"%$attachmentid%\" OR u.downloads LIKE \"%$attachmentid\" ORDER BY u.username ASC");
	$total     = $DB_site->query_first("SELECT counter FROM attachment WHERE attachmentid = $attachmentid");
	$total     = $total[counter];

	if (!$DB_site->num_rows($downloads))
	{
		eval("\$whodownloadsbit .= \"".fetch_template("whodownloads_error",1,0)."\";");
	}
	else
	{
		while ($download = $DB_site->fetch_array($downloads))
		{
			eval("\$whodownloadsbit .= \"".fetch_template("whodownloadsbit",1,0)."\";");
		}
	}
}
else
{
	eval("\$whodownloadsbit .= \"".fetch_template("whodownloads_error_nop",1,0)."\";");
}

eval('print_output("' . fetch_template('whodownloads') . '");');

?>

// **********************************************
// **********************************************
// Find this in attachment.php
// **********************************************
Code:
			// or doing it once an hour
			$DB_site->shutdown_query("
				INSERT INTO " . TABLE_PREFIX . "attachmentviews (attachmentid)
				VALUES ($attachmentid)
			");
		}
	}
// **********************************************
// Change it to this
// **********************************************
Code:
			// or doing it once an hour
			$DB_site->shutdown_query("
				INSERT INTO " . TABLE_PREFIX . "attachmentviews (attachmentid)
				VALUES ($attachmentid)
			");
		}
	}
	// here's the who downloaded hack
	$dl    = $DB_site->query_first("SELECT downloads FROM user WHERE userid = $bbuserinfo[userid]");
	$comma = ($dl[downloads]) ? ',' : '';
	$DB_site->query("
		UPDATE user
		SET downloads = '$dl[downloads]$comma$attachmentid'
		WHERE userid = $bbuserinfo[userid]
	");

// **********************************************
// **********************************************
// Run this SQL Query from Admincp
// **********************************************
Code:
ALTER TABLE user ADD COLUMN downloads TEXT NOT NULL;
If you had this installed previously, like for vb2, then don't rerun the query.
The query didn't change so I'D SUSPECT the old and new data is compatible.

And make sure you have completely removed the old vb2 hack beforehand or I suspect this would create a conflict.

Show Your Support

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

Comments
  #12  
Old 04-05-2004, 06:15 PM
Fi_InCogNiTo Fi_InCogNiTo is offline
 
Join Date: Jan 2003
Posts: 112
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I couldnt find any of that code in my attachment.php file....

Where should I add this code since it's not in the file?
Reply With Quote
  #13  
Old 04-05-2004, 06:22 PM
Mr Blunt Mr Blunt is offline
 
Join Date: Jan 2004
Posts: 133
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Fi_InCogNiTo
I couldnt find any of that code in my attachment.php file....

Where should I add this code since it's not in the file?
Unless you have another hack installed, that code I listed is in there.
It's right above this line.....

Code:
	$extension = strtolower(file_extension($attachmentinfo['filename']));
Are you sure your using vb3 Gold??
Reply With Quote
  #14  
Old 04-05-2004, 06:35 PM
Fi_InCogNiTo Fi_InCogNiTo is offline
 
Join Date: Jan 2003
Posts: 112
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

No, ur right. I found it. I was looking in admincp/attachment.php. I used my text scanner and it didnt find it at all.....

[high]* Fi_InCogNiTo goes off to look for another good scanner
[/high]

EDIT: Works
Reply With Quote
  #15  
Old 04-06-2004, 12:03 AM
Vivi Ornitier's Avatar
Vivi Ornitier Vivi Ornitier is offline
 
Join Date: Nov 2001
Location: Black Mage Village
Posts: 442
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I had to change the postbit code a bit in order for the template ot work.

<a href="java_script_:whodownloaded($attachment[attachmentid])">Who Downloaded This?</a>

The java_script_:whodownloaded($attachment[attachmentid]) should be changed to javascript:whodownloaded($attachment[attachmentid]);
Reply With Quote
  #16  
Old 04-06-2004, 12:38 AM
Mr Blunt Mr Blunt is offline
 
Join Date: Jan 2004
Posts: 133
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Vivi, I'm confused.
What do you click now to get the popup??

That href line you modified is the click.
The phrase "who downloaded this?" is the text I click to get the popup.

Or are you saying you just added a semi-colon inbetween ) and "
And if this semi colon is neccessary, then wouldn't it go after the question mark in the phrase??

Forgive me for questioning you.
I'm just trying to learn why.
And moreso, why mine works for me.
Reply With Quote
  #17  
Old 04-06-2004, 03:14 AM
Link14716's Avatar
Link14716 Link14716 is offline
 
Join Date: Jun 2002
Location: Georgia, USA
Posts: 2,519
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It's already been done for vB3...
Reply With Quote
  #18  
Old 04-06-2004, 05:11 PM
Mr Blunt Mr Blunt is offline
 
Join Date: Jan 2004
Posts: 133
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Link14716
It's already been done for vB3...
May I ask where??
I pulled all kinds of searches here over the last few months.
I'd love to see a more advanced version if there is one floating around.
Reply With Quote
  #19  
Old 04-26-2004, 04:49 PM
JaNa's Avatar
JaNa JaNa is offline
 
Join Date: Apr 2004
Location: U.S, Maryland
Posts: 60
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I wouldn't call this a "Major Addition" But it's useful.

/me Clicks install
Reply With Quote
  #20  
Old 05-01-2004, 11:27 PM
XJeepguy XJeepguy is offline
 
Join Date: Aug 2003
Posts: 28
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi

Seems all members can see this , where do u delete the usergroup that you do NOT want to see this ? Im looking around the .php file but wanna make sure I do this correct .

Thanks

XJ
Reply With Quote
  #21  
Old 02-06-2005, 05:28 PM
Rambo Rambo is offline
 
Join Date: Oct 2003
Location: Scotland, UK
Posts: 58
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hrm..

Anyone manage to get this working on Version 3.0.6? o_o
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:19 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05142 seconds
  • Memory Usage 2,319KB
  • Queries Executed 27 (?)
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
  • (13)bbcode_code
  • (2)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
  • (2)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_postinfo_query
  • fetch_postinfo
  • 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