Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.6 > vBulletin 3.6 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Links and Downloads Manager Details »»
Links and Downloads Manager
Version: 2.2.8, by AndrewD AndrewD is offline
Developer Last Online: Apr 2010 Show Printable Version Email this Page

Category: Major Additions - Version: 3.6.x Rating:
Released: 06-18-2006 Last Update: 02-03-2008 Installs: 661
DB Changes Uses Plugins
Additional Files Translations  
No support by the author.

Version 2.3.0 of LDM is now the official release. This works with both VB3.7 and VB3.8. You can obtain it here

Version 2.2.8 remains available here, with limited support.

04.02.08: patch-cat.xml 'extra' uploaded - see first post for information

27.10.07: Version 2.2.8-post1 uploaded
French translation of product installer uploaded (other language translations are in the main release zip)

Remember to back up your current database tables before upgrading.

What this is and does

LDM is a general-purpose link and file manager, which handles user uploads and downloads in a flexible way. A range of media players is integrated into LDM and others are included as plugin extras. LDM is described below in the first post of this thread, which also contains a brief list of the currently-known bugs.

This release of LDM works correctly with all VB versions 3.6.x and recent versions of vbadvanced.

Documentation, screen shots, etc, are provided as a Wiki at http://www.eirma.org/wikis/index.php...nloads_Manager

Thank you to everyone who has tested, given suggestions, helped with the translations, etc.

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.
Благодарность от:
VIP Hawaii

Comments
  #2252  
Old 08-16-2007, 05:58 AM
IrPr IrPr is offline
 
Join Date: Mar 2005
Posts: 351
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi Andrew, im just tryin Hack/Modify LDM
and i've one question
why u seprated the catid and keywordid from _linkslink table into _linksltok and linksltoc instead of a field inside _linkslink table? whats this kind of relationship? is that standard?

im creating my own artist and track tables but donno how to make its relationship into _linkslink table
i can add fields called artistid and trackid into _linkslinks structure, and also can use ur method, creating another tables named _linksltoa and _linksltot

but which one is better? im newbie in MySQL database designin

Special thanks for this AWESOME Mod, LDM, even u dont reply this post

PS: sorry if my grammar sux:P
PS2: sorry misspelling, its 10:36 AM here and im still awake
Reply With Quote
  #2253  
Old 08-16-2007, 06:22 AM
AndrewD AndrewD is offline
 
Join Date: Jul 2002
Location: Scotland
Posts: 3,486
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by IrPr View Post
Hi Andrew, im just tryin Hack/Modify LDM
just a Q, why u seprated the catid and keywordid from _linkslink table into _linksltok and linksltoc instead if a field inside _linkslink table? whats this kind of relationship? is that standard?

im creating my own artist and track tables but donno how to make its relationship into _linkslink table
i can add fields called artistid and trackid into _linkslinks structure, and also can use ur method, creating another tables named _linksltoa and _linksltot

but which one is better? im newbie in MySQL database designin

Special thanks for this AWESOME Mode, LDM, even u dont reply this post

PS: sorry if my grammar sux:P
The basic question in designing database tables is whether the relationship between an entry and its data is 'one-to-one' or 'one-to-many'. If it's one-to-one (e.g. a category has only one name and always has one name), then you can keep the category name as a column in the same table as the categoryid. However, if it's one-to-many (an entry can be in one or several categories), you can't. Also, ideally, *everything* in a table row should be logically connected and required - a classic example is that a table of professors should not include the courses they teach, because you would lose the ability to deal with new professors and emerti or to efficiently find courses with no professor assigned. (See http://en.wikipedia.org/wiki/Database_normalization if you want the background )

So in LDM the table structure reflects the fundamental data types - a category, an entry, a keyword, a hit, etc, and the 'XtoY' tables allow you join these together - find all the keywords associated with an entry and vice-versa, all the entries associated with a category, etc.

What you are trying to do is add a feature to LDM that people have suggested for some time (and I haven't had time to deal with), i.e. add extra data to the system. There are pros and cons to doing it in different ways:

- If you add one new column to the 'entries' table (links), then the logic is easy to implement but very inflexible. There are ways of forcing several different data items into the one columns (use the php serialize function, for example), but it becomes a mess.
- If you add a new column for each new datatype, it become a mess very quickly.
- If you handle it in a different table, then the logic is much cleaner, but it can become quite tricky to construct efficient SQL queries.

In LDM, the hairiest piece of code are the routine that build the linkbits (the individual rows which show each entry) [get_linklistbit] and the routine that works out the required SQL query [get_mainsql]. get_mainsql constructs the required 'joins' on tables to pull in the required information. Unfortunately, joins can easily get very expensive, and you can end up killing your server if you are not careful.

For your purposes, I think it would be easiest to create new tables which have this form:

1) artistid, artistname, etc

and 2) linkid, artistid

or

1) trackid, trackname, etc

and 2) linkid

Hope that helps!
Reply With Quote
  #2254  
Old 08-16-2007, 06:31 AM
IrPr IrPr is offline
 
Join Date: Mar 2005
Posts: 351
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by AndrewD View Post
The basic question in designing database tables is whether the relationship between an entry and its data is 'one-to-one' or 'one-to-many'. If it's one-to-one (e.g. a category has only one name and always has one name), then you can keep the category name as a column in the same table as the categoryid. However, if it's one-to-many (an entry can be in one or several categories), you can't. Also, ideally, *everything* in a table row should be logically connected and required - a classic example is that a table of professors should not include the courses they teach, because you would lose the ability to deal with new professors and emerti or to efficiently find courses with no professor assigned. (See http://en.wikipedia.org/wiki/Database_normalization if you want the background )

So in LDM the table structure reflects the fundamental data types - a category, an entry, a keyword, a hit, etc, and the 'XtoY' tables allow you join these together - find all the keywords associated with an entry and vice-versa, all the entries associated with a category, etc.

What you are trying to do is add a feature to LDM that people have suggested for some time (and I haven't had time to deal with), i.e. add extra data to the system. There are pros and cons to doing it in different ways:

- If you add one new column to the 'entries' table (links), then the logic is easy to implement but very inflexible. There are ways of forcing several different data items into the one columns (use the php serialize function, for example), but it becomes a mess.
- If you add a new column for each new datatype, it become a mess very quickly.
- If you handle it in a different table, then the logic is much cleaner, but it can become quite tricky to construct efficient SQL queries.

In LDM, the hairiest piece of code are the routine that build the linkbits (the individual rows which show each entry) [get_linklistbit] and the routine that works out the required SQL query [get_mainsql]. get_mainsql constructs the required 'joins' on tables to pull in the required information. Unfortunately, joins can easily get very expensive, and you can end up killing your server if you are not careful.

For your purposes, I think it would be easiest to create new tables which have this form:

1) artistid, artistname, etc

and 2) linkid, artistid

or

1) trackid, trackname, etc

and 2) linkid

Hope that helps!
You rock Andrew
Yeah, got ya
Special Thanks to you Andrew,
Reply With Quote
  #2255  
Old 08-16-2007, 09:19 AM
itsblack itsblack is offline
 
Join Date: Dec 2005
Location: Augsburg
Posts: 148
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Andrew, I have a question about vba_moudule ldm_tot.module.
It seems that the "served" option only display with a integer number. But think about that when we have number end with Gbytes, it will probably not so suitable. I hope it can display the resulat like this: "served 2.xx Gbytes". Is it thinkable?
Reply With Quote
  #2256  
Old 08-16-2007, 11:00 AM
AndrewD AndrewD is offline
 
Join Date: Jul 2002
Location: Scotland
Posts: 3,486
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by itsblack View Post
Andrew, I have a question about vba_moudule ldm_tot.module.
It seems that the "served" option only display with a integer number. But think about that when we have number end with Gbytes, it will probably not so suitable. I hope it can display the resulat like this: "served 2.xx Gbytes". Is it thinkable?
Quite thinkable, and even quite do-able, I'm sure. This evening...
Reply With Quote
  #2257  
Old 08-16-2007, 11:51 AM
Myra Myra is offline
 
Join Date: Nov 2006
Posts: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I don't know if this question has already been answered and I'm sorry if it is, but can you also set permissions based on user's post count and title/ranks?
Reply With Quote
  #2258  
Old 08-16-2007, 12:23 PM
AndrewD AndrewD is offline
 
Join Date: Jul 2002
Location: Scotland
Posts: 3,486
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Myra View Post
I don't know if this question has already been answered and I'm sorry if it is, but can you also set permissions based on user's post count and title/ranks?
The 'extras' directory in the release zipfile contains plugins that can block user access and/or limit their download rights according to post count, reputation and some other parameters.
Reply With Quote
  #2259  
Old 08-16-2007, 03:08 PM
Alfa1's Avatar
Alfa1 Alfa1 is offline
 
Join Date: Dec 2005
Location: Netherlands
Posts: 3,537
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by AndrewD View Post
I imagine you uploaded the code, but did not rerun the installer. Go to VB/admincp/products and plugins and upload the 2.2.8 LDM product installer.
Thanks, that did it. I edited the init file to correct my DB prefix, while I didn't upload the 2.2.8 product installer again after that.
Reply With Quote
  #2260  
Old 08-16-2007, 03:43 PM
obmob obmob is offline
 
Join Date: Nov 2001
Posts: 580
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by AndrewD View Post
Was busy thinking and replacing a busted graphics card.

I'll add a new plugin in the next 2.2.8 upload which does this job.
Thanks!

I'm always complaining.

Installing RC2 and testing, did i say thanks?
Reply With Quote
  #2261  
Old 08-16-2007, 05:42 PM
AndrewD AndrewD is offline
 
Join Date: Jul 2002
Location: Scotland
Posts: 3,486
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by itsblack View Post
Andrew, I have a question about vba_moudule ldm_tot.module.
It seems that the "served" option only display with a integer number. But think about that when we have number end with Gbytes, it will probably not so suitable. I hope it can display the resulat like this: "served 2.xx Gbytes". Is it thinkable?
Replace the ldm_tot.php file in your forum/modules directory with the attached and let me know if this is ok. I've tried to make it a bit smarter.
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 01:09 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.06983 seconds
  • Memory Usage 2,331KB
  • 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
  • (7)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
  • (5)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (1)post_thanks_box_bit
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (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
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • 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