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
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
  #1072  
Old 05-08-2005, 05:24 PM
calorie calorie is offline
 
Join Date: May 2003
Posts: 2,804
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

True, but I doubt I could find adequate time to provide consistent support, so I don't guarantee it. Anyway, what ideas would you integrate? I like the comments extension, but I'm thinking it might need a new layout, perhaps a while loop to template each comment, pagination on the view all list, maybe a link to comment instead of the comment box, blah blah. None too hard, just some of that time...

Quote:
Originally Posted by AndrewD
.. as do we all ...

Actually, I'm quite happy to integrate some of these ideas into the main code - this is has been happening all along for this hack.
Reply With Quote
  #1073  
Old 05-09-2005, 11:26 AM
Slave's Avatar
Slave Slave is offline
 
Join Date: Nov 2001
Posts: 439
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by AndrewD
Actually, I'm quite happy to integrate some of these ideas into the main code - this is has been happening all along for this hack.
Which is what I'll be waiting for .. I'd much perfer to see the comments subhack as part of the main hack .. with all of the intergration that would include (permissions etc) ..

Looking forward to it if it happens, but saying that I'm very happy with the hack as it is ..
Reply With Quote
  #1074  
Old 05-09-2005, 08:10 PM
calorie calorie is offline
 
Join Date: May 2003
Posts: 2,804
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

<font face="Courier New">
While I cannot guarantee completeness, accuracy, or support, here are some LFDB hack suggestions. The input is checked (intval, addslashes, etcetera) but there are spots that do not set default values or check permissions should someone save the HTML, mess with the HTML, and then submit changes to the script, or should someone alter or create a query string and submit changes that way. For example, a user who does not have permission to add a link could set $action to doaddlink and add a link even though, when $action is set to addlink, the user is told to bugger off. Another example is when $action is set to dosendtofriend. Pass the appropriate variables and send email even though, when $action is set to sendtofriend, permissions are checked. Suggestions, FWIW.
</font>
Reply With Quote
  #1075  
Old 05-09-2005, 08:43 PM
calorie calorie is offline
 
Join Date: May 2003
Posts: 2,804
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default


In local_links.php find:
Code:
if ($_REQUEST['action'] == "doeditlink") {
And afterwards find:
Code:
		foreach ($pcatid as $p) {
			$DB_site->query("
			INSERT INTO ".THIS_TABLE."linksltoc (linkid, catid)
			VALUES ('$viewlinkid', '$p')
			");
		}
And replace with:
Code:
		foreach ($pcatid as $p) {
			$DB_site->query("
			INSERT INTO ".THIS_TABLE."linksltoc (linkid, catid)
			VALUES ($viewlinkid, ".intval($p).")
			");
		}
Maybe it'd be better to check that $pcatid (and other variables) contain valid value(s) before getting to a query. FWIW.
Reply With Quote
  #1076  
Old 05-10-2005, 04:13 AM
AndrewD AndrewD is offline
 
Join Date: Jul 2002
Location: Scotland
Posts: 3,486
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Calorie - I'm very happy to have these suggestions, particularly to improve stability, etc. But it would probably be easier for others and for me if you simply PM me or email me with your comments rather than overloading this thread.

Thanks and OK?
Reply With Quote
  #1077  
Old 05-10-2005, 09:28 PM
Tradjick Tradjick is offline
 
Join Date: Jan 2004
Posts: 219
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

As I couldn´t find a ´m trying to set this up as a store directory where users can submit their articles and services, which they can trade with the ushop money OR with the money from a partner assossiation.

It seems to be very easy, but i just have the following questions:

Is it possible that a user can edit only his own links and not those submitted by others?

Is there a way to tell in the template the instruction that:

if the category is not one of the following (1,4,6,7,9), bypass this and that.

(i need such a conditional for having the rating feature only for selected categories, or f.ex. remove the "new link textfield box", etc.)

Or maybe there´s a better way for doing this? I don´t know.

I´d be very happy if someone can help me.
Reply With Quote
  #1078  
Old 05-11-2005, 04:17 AM
AndrewD AndrewD is offline
 
Join Date: Jul 2002
Location: Scotland
Posts: 3,486
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Tradjick
Is it possible that a user can edit only his own links and not those submitted by others?
This is already possible. A link can always be edited by the submitting user and *also* by users who are in groups that have *can_edit_link* privilege (go to the links admin page). By default, *can_edit_link* is set so that only members of the admin group have this privilege.

Quote:
Originally Posted by tradjick
Is there a way to tell in the template the instruction that:

if the category is not one of the following (1,4,6,7,9), bypass this and that.

(i need such a conditional for having the rating feature only for selected categories, or f.ex. remove the "new link textfield box", etc.)

Or maybe there?s a better way for doing this? I don?t know.

I?d be very happy if someone can help me.
I'll think about this and let you know.
Reply With Quote
  #1079  
Old 05-11-2005, 03:09 PM
Tradjick Tradjick is offline
 
Join Date: Jan 2004
Posts: 219
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks, Andrew!

I´m going on with the following condition in order to choose the available features per category:

<if condition="$viewcatid == X">action here...</if>

I´m currently trying to figure out how to create an attitional userfield in order to fetch the value into a template, but it´s not so easy. :hurt:
Reply With Quote
  #1080  
Old 05-11-2005, 07:06 PM
Tradjick Tradjick is offline
 
Join Date: Jan 2004
Posts: 219
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I just altered the links_linkbit a little bit. If anyone likes it, here?s the code:

HTML Code:
<tr>  <td class="alt$linkstyle" colspan="2">  <fieldset class="fieldset" style="margin: 0px 0px 0px 0px;">  <legend style="background: white; border: 2px;">    </legend>  <table cellpadding="0" cellspacing="0" border="0" width="100%"><tr>  <if condition="$linkimg">  <td width="$linkimgsize">  <if condition="$linkurl"><a <if condition="$linkmode<2">href="local_links.php?action=jump&amp;id=$linkid"<else />href="$linkurl"</if> target="_blank"></if>  <img src="local_resize.php?pic=$linkimg&amp;size=$linkimgsize" border="0" alt="" /><if condition="$linkurl"></a></if>  </td>  <td width="2">&nbsp;</td>  </if>  <td valign="bottom">      <fieldset class="fieldset" style="margin: 5px 0px 5px 10px;">  <legend><strong>  <if condition="$linkurl">$linktypebit <a <if condition="$linkmode<2">href="local_links.php?action=jump&amp;id=$linkid"<else />href="$linkurl"</if> target="_blank"></if>$linkname<if condition="$linkurl"></a></if>  <if condition="$linknew">$vbphrase[ll_new]</if>  </strong>  <if condition="$links_permissions[can_mark_link]">  <if condition="$linkfav">  <if condition="$viewcatid!=-2"> <span class="highlight">$vbphrase[ll_myfav]</span></if>  [<a href="local_links.php?action=dofavlink&amp;id=$linkid&amp;set=-1&amp;catid=$viewcatid&amp;page=$pagenumber" title="$vbphrase[ll_myfav_del]">$vbphrase[ll_ab_favminus]</a>]  <else />  [<a href="local_links.php?action=dofavlink&amp;id=$linkid&amp;set=1&amp;catid=$viewcatid&amp;page=$pagenumber" title="$vbphrase[ll_myfav_add]">$vbphrase[ll_ab_favplus]</a>]  </if>  <if condition="$links_permissions[can_send_tofriend]">  [<a href="local_links.php?action=sendtofriend&amp;id=$linkid" target="_blank" title="$vbphrase[ll_sendtofriend]">$vbphrase[ll_ab_send]</a>]  </if>  </if>  &nbsp;        <if condition="$viewcatid == 4"><span align = "right" style="color : green; align : right; text-decoration : underline;">==OFFRE==</span></if>  </legend>      <BR />  <span class="smallfont">  $linkdesc  <if condition="$linkshowothercatbit>0"><br /><br />$vbphrase[ll_seealso] $linkothercatsbit</if>  </span>  </td>    <td width="25%" align="right" valign="bottom">  <fieldset class="fieldset" style="margin: 5px 5px 5px 5px;">  $linkratebit  <span class="smallfont">  $linkdate  <if condition="$linkstatus>1"> [$linkstatus $vbphrase[ll_kb]]</if>  <if condition="$linkstatus==0"> [$vbphrase[ll_unknown_status]]</if>  <if condition="$links_permissions[can_view_hits]">  <br />$vbphrase[ll_submitby] <a href="member.php?u=$linkuserid">$linkusername</a>  <br />$vbphrase[ll_hits] $linkhits  </if>  <if condition="$links_permissions[can_rate_link]">  <br />$vbphrase[ll_rate]   <a href="local_links.php?action=doratelink&amp;vote=1&amp;id=$linkid&amp;catid=$viewcatid&amp;page=$pagenumber">1</a>/  <a href="local_links.php?action=doratelink&amp;vote=2&amp;id=$linkid&amp;catid=$viewcatid&amp;page=$pagenumber">2</a>/  <a href="local_links.php?action=doratelink&amp;vote=3&amp;id=$linkid&amp;catid=$viewcatid&amp;page=$pagenumber">3</a>/  <a href="local_links.php?action=doratelink&amp;vote=4&amp;id=$linkid&amp;catid=$viewcatid&amp;page=$pagenumber">4</a>/  <a href="local_links.php?action=doratelink&amp;vote=5&amp;id=$linkid&amp;catid=$viewcatid&amp;page=$pagenumber">5</a> *  </if>  <if condition="$links_permissions[can_moderate_links] and $linkstatus==$LINK_HIDDEN">  <br />  [$vbphrase[ll_hidden]]  </if>  <if condition="$links_permissions[can_edit_link] or $bbuserinfo[userid] == $linkuserid">  <br />  <a href="local_links.php?action=editlink&amp;linkid=$linkid&amp;catid=$viewcatid&amp;page=$pagenumber" title="$vbphrase[ll_edit]">$vbphrase[ll_editlc]</a>  </if>  </span>  </td>  </fieldset>  </fieldset>  </tr>  </table>  </fieldset>  </td>  </tr>
Does one have to make the line breaks manually in vB HTML code? I copied from Uedit.
Reply With Quote
  #1081  
Old 05-11-2005, 10:45 PM
Tradjick Tradjick is offline
 
Join Date: Jan 2004
Posts: 219
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

When i save the settings i run into the following error. It saves things correctly, but what is it that´s causing this?

Warning: implode(): Bad arguments. in /local_links_admin.php on line 730

Warning: implode(): Bad arguments. in /local_links_admin.php on line 837
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 06:27 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.06141 seconds
  • Memory Usage 2,354KB
  • 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
  • (3)bbcode_code
  • (1)bbcode_html
  • (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
  • (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