Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Full Releases
Links and Files Database Details »»
Links and Files Database
Version: 1.60, by AndrewD AndrewD is offline
Developer Last Online: Apr 2010 Show Printable Version Email this Page

Version: 3.0.7 Rating:
Released: 01-17-2004 Last Update: 07-25-2005 Installs: 238
DB Changes Template Edits
 
No support by the author.

The VB3.0 version is no longer supported although there have been no reported problems for some time

See here for the VB 3.6 version of this hack, which is now the supported version. This version currently also works with VB 3.5
See here for the VB 3.5 thread for this hack.

What's new in v1.60?

Option to display associated thumbnail images
Option to accept/not accept new entries if these already exists in database
Code for mass edits (accessed via admincp) tidied up
VB phrasing completed
Includes a full French and a partial German translation (thanks to cclaerhout, Allan and LeeWicKeD), handled properly by installation script.
Various bugs fixed and tested against php4 and php5:
Better database validation (on startup/in admincp: links with invalid associated forumids, categories with invalid parentids)
Alternative linkbit templates provided (default uses a fieldset, the other is the old-style table row)
Alternative category selection templates (pull down menu/list of checkboxes),
Star rating displayed using standard VB stars rather than in text form
Series of minor bug fixes
See file change.txt in zip file

What it is/does

- Provides a searchable database of weblinks and/or downloadable files, for example manuals, music files, pictures, etc.
- Integrates within VBulletin, without requiring any code changes.
- Transparently handles links and file downloads. (If you want to provide downloads from your own site, you need a separate tool to upload these files. This hack does not and will not include a file uploader.)
- Provides unlimited nested categories.
- Each link/file can be a member of multiple categories.
- Link and category title and descriptions can use all BBCODEs, giving the possibility to add images, colouring, etc, as you wish
- Viewing/access permissions controlled using VBulletin forum system
- Users can rate links, in a similar manner to VB thread rating.
- File downloads are semi-leechproof, i.e. the user does not see where the file is stored and can only access the link if she has access to the associated forum.
- Audio files playable via Windows Media Player can be offered as a jukebox .
- Tracks who downloads what
- Validates links on entry/editing, and provides admin facility to validate the entire database.

Installation/upgrading instructions

Read instructions.txt in the zip file. Installation script works out whether to install or upgrade.

To upgrade from an earlier release of this hack, simply re-run the installation script. If you modified the templates in the top styles, you will lose these modifications unless you back up and re-edit.

PLEASE BACK UP YOUR DATABASE

See also

For screen shots, see attachments.

Tested with

VBulletin 3.0 and higher
PHP 4.1.1 and 4.3.4, should work with all 4.x versions, seems ok with 5.0.4
MySQL 4.0.
Reported ok with MySQL 4.1 but not exhaustively tested

Credits

Initially inspired by drkFusion's vb2 hack "vb Link Directory" v.2 and discussion about v.3 on Vbulletin.org. This is a complete rewrite with many more features. Every credit to the VBulletin folks for providing the infrastructure and to those on vbulletin.org who have helped with testing.

Integrations/Conversions

Natch has written extensions to integrate this hack with VBindex and VBAdvanced.

For convenience, this hack includes fully integrates with, but does not install, his VBIndex hack - i.e. the required template and code are provided, and the admin panel handles the configuration settings. Please refer to his thread for instructions.

Integration with VBadvanced is described in thread 1319 at vbadvanced.com.

The zip file includes a script and instructions for converting from vbLinks v2 (see thread 44551

Show Your Support

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

Comments
  #522  
Old 07-21-2004, 10:41 AM
Natch's Avatar
Natch Natch is offline
 
Join Date: Nov 2002
Location: Australia
Posts: 851
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I have moved over to using vBa CMPS - here is my new module for tha tportal to show the last month's most popular links: Link to original posting of this module on vBa homepage

My members requested a different count of the hits - one that "reset" every month to show the current most popular links, not just the All time most popular links...

So I did it.

Replace your current hotlinks.php / install a hotlinks.php module with the following contents:
Code:
<?
// ######################## USER-EDITABLE VAR ############################
// If you want to use the standard VBulletin database table prefix, comment out
// the following line and uncomment the line after it
define('THIS_TABLE', 'local_');
// define ('THIS_TABLE', TABLE_PREFIX); 
//
// ######################### REQUIRE BACK-END ############################
require_once('./global.php');
require_once('./includes/functions_misc.php');

	global $DB_site, $vboptions, $forumcache;

	$limit = "3";  // default number of HotLinks to display in case not set in database

	$links_permissions = array();
	$links_defaults	= array();

	$asb = $DB_site->query("SELECT * FROM ".THIS_TABLE."linksadmin");
	while ($admin_settings = $DB_site->fetch_array($asb)) {
		if (substr($admin_settings["settingname"],0,3) == "can") {
			$array = preg_split("/[\s,]+/", $admin_settings["setting"]);
			$links_permissions[$admin_settings["settingname"]] = iif(in_array($bbuserinfo[usergroupid], $array), 1, 0);
		} else {
			$links_defaults[$admin_settings["settingname"]] = $admin_settings["setting"];
		}
	}

	if (isset($links_permissions[can_see_protected_links_on_portal])) {
		$cansee = $links_permissions[can_see_protected_links_on_portal];
	} else {
		$cansee = 0;
	}
	
	$thismonth = vbdate("n")-1;
	$thisyear = vbdate("Y");
	$lastmonth = vbmktime("6","0","0",$thismonth,"1",$thisyear);

	$filter = "WHERE link.linkmoderate = 0 AND ldown.usertime > $lastmonth ";

	if (!$cansee) {
		$limitfids = array(0);
		$forumperms = array();
		foreach ($forumcache AS $forum) {
			$forumperms["$forum[forumid]"] = fetch_permissions($forum['forumid']);
			if (!($forumperms["$forum[forumid]"] & CANVIEW) || !($forumperms["$forum[forumid]"] & CANVIEWOTHERS)) {
				$limitfids[] = $forum['forumid'];
			}
		}
		$filter .= 'AND link.linkforum NOT IN ('.implode(',', $limitfids).') ';
	}

	if (isset($links_defaults[categories_seen_on_portal])) {
		$catsee = $links_defaults[categories_seen_on_portal];
	} else {
		$catsee = '';
	}
	if ($catsee != '') $filter .= 'AND ltoc.catid IN ('.$catsee.')';

	if (isset($links_defaults[links_seen_on_portal])) {
		$linksee = $links_defaults[links_seen_on_portal];
	} else {
		$linksee = $limit;
	}

	$hotquery = "
		SELECT DISTINCT link.linkid AS linkid, link.linkname AS linkname, link.linkdesc AS linkdesc, 
			COUNT(ldown.usertime) AS linkhits, link.linkstatus AS linkstatus, 
			ltoc.catid AS linkcatid, link.linkhits AS olinkhits 
		FROM ".THIS_TABLE."linkslink AS link
		LEFT JOIN ".THIS_TABLE."linksdownloads AS ldown
			ON link.linkid = ldown.linkid
		LEFT JOIN ".THIS_TABLE."linksltoc AS ltoc
			ON link.linkid = ltoc.linkid
		$filter
		GROUP BY olinkhits ORDER BY linkhits DESC
		LIMIT $linksee
	";

	$hotties = $DB_site->query($hotquery);

	while ($myrow=$DB_site->fetch_array($hotties)) {
		$linkid	 	= $myrow["linkid"];
		$linkname	= parse_bbcode2($myrow["linkname"], 1, 1, 1, 1);
		$linkdesc	= parse_bbcode2($myrow["linkdesc"], 1, 1, 1, 1);
		$linkhits	= $myrow["olinkhits"];
		$monthhits	= $myrow["linkhits"];
		$linkstatus	= $myrow["linkstatus"];
		if ($linkstatus > 1)  {  // filesize, convert to KB
			$linkstatus = intval (round($linkstatus / 1024));
		}
		eval('$hotlinksbits .= "' . fetch_template('adv_portal_hotlinksbits') . '";');
		$nhits++;
	}
	eval('$home[$mods[\'modid\']][\'content\'] = "' . fetch_template('adv_portal_hotlinks') . '";');
?>
Enjoy!
Reply With Quote
  #523  
Old 07-21-2004, 12:01 PM
digicreations digicreations is offline
 
Join Date: Mar 2004
Posts: 15
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

is there anyway to get this nice system to handle ftp protocol for public ftp's?
Reply With Quote
  #524  
Old 07-26-2004, 04:08 AM
AndrewD AndrewD is offline
 
Join Date: Jul 2002
Location: Scotland
Posts: 3,486
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by digicreations
is there anyway to get this nice system to handle ftp protocol for public ftp's?
I think this will be possible - the php routine the hack uses can handle FTP exactly as HTTP. Next version.
Reply With Quote
  #525  
Old 07-26-2004, 04:10 AM
AndrewD AndrewD is offline
 
Join Date: Jul 2002
Location: Scotland
Posts: 3,486
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by vonedaddy
I installed an it works great. Thanks... ONE QUICK QUESTION... Where in the templates is the forum jump?? I would like to remove the forums jump drop down menu.

See it here : http://hereyah.com/forums/local_links.php?action=links
Sorry for the delay - vacation time . It's in the links_header template
Reply With Quote
  #526  
Old 07-26-2004, 04:11 AM
AndrewD AndrewD is offline
 
Join Date: Jul 2002
Location: Scotland
Posts: 3,486
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by EnriqueHavoc
Hi Andrew thanks for this awesome script.

*note- Im using 1.22 because my php/mysql is not up to date so i apologize if this has been address in 1.25

Question: How can I alternate the linkbit TD colors for each link and category displayed?

Ive tried editing the linkbit using if conditions with $linkid and it works but when the links are sorted, it throws off the alternating sequence. How can I edit the templates so that the links/categories will always alternate color regardless of how they are sorted?
I'll deal with this in the next version. Thanks.
Reply With Quote
  #527  
Old 07-29-2004, 07:54 PM
EnriqueHavoc EnriqueHavoc is offline
 
Join Date: May 2002
Posts: 22
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks very much.. hope you had a good vacation!

Another question:

When linking to an external file, it appears the file is using twice the bandwidth I would expect.. First when its pulled from the external host, and then again when it goes through local_links on my host... is this by design?
Reply With Quote
  #528  
Old 08-02-2004, 04:29 AM
AndrewD AndrewD is offline
 
Join Date: Jul 2002
Location: Scotland
Posts: 3,486
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by EnriqueHavoc
Thanks very much.. hope you had a good vacation!

Another question:

When linking to an external file, it appears the file is using twice the bandwidth I would expect.. First when its pulled from the external host, and then again when it goes through local_links on my host... is this by design?
That's probably right, as each file is read by the server and then re-written to the client. It's by design as part of the "anti leech" process. It is easy to change if necessary, but bandwidth is less of a concern for our site than theft.

On your earlier question, it's straightfoward to have alternating "alt1" and "alt2" bands in the link and category displays. A few lines of code (in get_linklistbit, etc) keep a variable in even/odd sequence, and the link and category templates have to be modified to use that variable when setting the style.
Reply With Quote
  #529  
Old 08-02-2004, 05:33 AM
Natch's Avatar
Natch Natch is offline
 
Join Date: Nov 2002
Location: Australia
Posts: 851
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Could you post the modification (or add it as an option) to provide the anti-leech facade but without the passthru (if possible)?
Reply With Quote
  #530  
Old 08-02-2004, 01:21 PM
SandsUSA SandsUSA is offline
 
Join Date: Oct 2002
Location: DELETETHISACCOUNT
Posts: 24
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Natch
Could you post the modification (or add it as an option) to provide the anti-leech facade but without the passthru (if possible)?
Yes, I'd be interested in reducing my bandwidth also.....
Reply With Quote
  #531  
Old 08-02-2004, 07:06 PM
AndrewD AndrewD is offline
 
Join Date: Jul 2002
Location: Scotland
Posts: 3,486
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Natch
Could you post the modification (or add it as an option) to provide the anti-leech facade but without the passthru (if possible)?
Will do. Give me a few days to check the side effects...
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 11:12 AM.


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.08470 seconds
  • Memory Usage 2,321KB
  • 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
  • (6)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
  • (4)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