Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.7 > vBulletin 3.7 Add-ons
Links and Downloads Manager Details »»
Links and Downloads Manager
Version: 2.3.0, by AndrewD AndrewD is offline
Developer Last Online: Apr 2010 Show Printable Version Email this Page

Category: Major Additions - Version: 3.7.0 Rating:
Released: 12-24-2007 Last Update: 06-13-2009 Installs: 576
DB Changes Uses Plugins
Re-useable Code Additional Files Translations  
No support by the author.

What this is and does

LDM is a general-purpose tool for managing libraries of links and files, and handling uploads and downloads in a flexible way, while tracking and control user access. It has a range of integrated media players and a large library of 'plugin' extras.

Installation and Usage Explained in the on-line Wiki, with a brief explanation in the file instructions.txt in the release zip. The recent revision history is given in the first post of this thread.

Please use carefully and always backup your database before upgrading. Post reports of problems and suggestions for enhancements in this thread.

14.06.09 Version 2.3.0 is now the the officially-supported version. Works with 3.7 and vb 3.8. Please post comments in this thread

22.06.08 Version 2.2.9-post1 - This is the previous supported version. Works fine with all versions of vb 3.6 and vb 3.7. All standard features except profile integration and forum prefix selection work fine with vb 3.8.

Show Your Support

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

Comments
  #1252  
Old 09-25-2008, 06:45 PM
AndrewD AndrewD is offline
 
Join Date: Jul 2002
Location: Scotland
Posts: 3,486
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by vbboarder View Post
Sorry, I wasn't detailed about exactly where the SQL error occurred. After saving the setting (ie: to "Hits 30 days"), go and view a single entry that is played in an embedded player. (ie: local_links.php?action=play....). On that page, instead of listing the Hits, it shows the SQL error:

Andrew, are you able to reproduce that error?
yes, and I've fixed it in in the upcoming code. I'm working on your other suggestions
Reply With Quote
  #1253  
Old 09-25-2008, 06:56 PM
AndrewD AndrewD is offline
 
Join Date: Jul 2002
Location: Scotland
Posts: 3,486
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I've just been debugging a problem for a site which has set up multiple usergroups and given people membership of these as their primary and secondary usergroups. Depending on how this is set up, there can be unexpected consequences within LDM.

LDM
- gives users the most liberal permission based on *any* of their usergroups.
- gives users download allowances based on their *primary* usergroup.

Suppose usergroup 'FullyRegistered' has an allowance of 10 files a day and usergroup 'Registered' an allowance of 5 files a day.
- Someone who is a member of both usergroups with primary member of Registered will be allowed 5 files/day
- Someone who is a member of both with primary member of FullyRegistered will be allowed 10 files/day

However, suppose 'FullyRegistered' is also given *can_bypass_hit_recording* permission.
- All users who have FullyRegistered as their primary or secondary usergroup will gain this permission
- Consequently, their accesses will not be recorded
- Consequently, they will never exceed their allowances.

Questions:
- Is this what you would expect to happen?
- Should users be given allowances based on their primary group or the most liberal of their primary and secondary groups?
Reply With Quote
  #1254  
Old 09-25-2008, 07:08 PM
DF08Said's Avatar
DF08Said DF08Said is offline
 
Join Date: Sep 2008
Posts: 11
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

m8 what Exactly does this do... u can uplaod and Download Stuff like Piratebay etc..?
Reply With Quote
  #1255  
Old 09-25-2008, 07:54 PM
vbboarder's Avatar
vbboarder vbboarder is offline
 
Join Date: Jun 2008
Location: Silicon Valley, CA
Posts: 417
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Re: multiple usergroups & can_bypass permissions

I think your 3 can_bypass permissions (hit_recording, bandwidth_limits, forumperms) are like a tertiary level of access control. To prevent the permissions dilemma that you're debugging, I think you should remove those permissions from usergroups and make them specific to listed users (ie: userids, usernames). These liberal permissions should then override the usergroup permissions for any listed users who have those permissions.
Users can configure their desired access control for usergroups without using these 3 can_bypass permissions by editing Forum Permissions, LDM Permissions, and LDM Allowances. The only possible loss functionality that I see is the can_bypass_hit_recording for the Guest group. To compensate, you can provide an option to activate that setting for the Guest group, but guests will then have either no or unlimited download/ upload limits (depending on the settings in LDM Allowances).
Reply With Quote
  #1256  
Old 09-26-2008, 01:26 AM
7lanet's Avatar
7lanet 7lanet is offline
 
Join Date: Aug 2007
Location: YeMeN
Posts: 196
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Possible inconsistencies between LDM and its environment
- Parameter upload_enabled is enabled but parameter upload_dir is not set
- allow_url_fopen is off and cURL is not available in php.ini file - Remote downloads not available

- upload_max_filesize 2M >= post_max_size 2048k in php.ini file - Large uploads may fail without warning
Reply With Quote
  #1257  
Old 09-26-2008, 03:18 AM
abdelghani68 abdelghani68 is offline
 
Join Date: Oct 2007
Location: France
Posts: 135
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by vbboarder View Post
.
I will try to save you some time, Andrew. Feel free to correct me if I'm wrong. It's a 2 steps process - you do not need to do the 2nd step IF you have not added any media entries after installing the ID3 tags extra plugin.

Step 1: Find LDM - Interpret ID3 tags (ldm_addlink_preinsert) in the Plugin Manager. Click that link and and find variables looking like "$entitytags['title']" and change the word inside the bracket to whatever you want. Make sure that your new word is enclosed with single quotes, like so $entitytags['myTitle']. DO NOT change the words of any other variable, otherwise the plugin code will not work and you'll get errors!

Step 2 (if you added entries after installing the ID3 tags plugin): You must manually edit the local_linksentities table and change the names in the entityname column. Make sure to backup the table first in case you'll do something wrong and need to restore your original table.

Hope that helps
thanks very mush
Reply With Quote
  #1258  
Old 09-26-2008, 03:48 AM
AndrewD AndrewD is offline
 
Join Date: Jul 2002
Location: Scotland
Posts: 3,486
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by DF08Said View Post
m8 what Exactly does this do... u can uplaod and Download Stuff like Piratebay etc..?
It's explained in the wiki. Yes, it's a general purpose tool for managing files, links, uploads and downloads.
Reply With Quote
  #1259  
Old 09-26-2008, 03:56 AM
abdelghani68 abdelghani68 is offline
 
Join Date: Oct 2007
Location: France
Posts: 135
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I have do the modification, added an audio, but the title don't change. I have do this modification :

Code:
if (array_key_exists('id3v2', $ThisFileInfo['tags'])) {
					$entitytags['Piste'] = $ThisFileInfo['tags']['id3v2']['title'][0];
					$entitytags[Auteur'] = $ThisFileInfo['tags']['id3v2']['artist'][0];
					$entitytags['Th?me'] = $ThisFileInfo['tags']['id3v2']['album'][0];
					$entitytags['Genre'] = $ThisFileInfo['tags']['id3v2']['genre'][0];
					$entitytags['Year'] = $ThisFileInfo['tags']['id3v2']['year'][0];
				}
				elseif (array_key_exists('id3v1', $ThisFileInfo['tags'])) {
					$entitytags['Piste'] = $ThisFileInfo['tags']['id3v1']['title'][0];
					$entitytags['Auteur'] = $ThisFileInfo['tags']['id3v1']['artist'][0];
					$entitytags['Th?me'] = $ThisFileInfo['tags']['id3v1']['album'][0];
					$entitytags['Genre'] = $ThisFileInfo['tags']['id3v1']['genre'][0];
					$entitytags['Year'] = $ThisFileInfo['tags']['id3v1']['year'][0];
				}
				if (array_key_exists('playtime_string', $ThisFileInfo)) {
					$entitytags['Dur?e'] = $ThisFileInfo['playtime_string'];
				}
			}
			break;

		case 'wma':
			$FileName = ldm_cleanto_fopen($linkurl);
			$getID3 = new getID3;
			$ThisFileInfo = $getID3->analyze($FileName);
			if (array_key_exists('playtime_string', $ThisFileInfo)) {
				$entitytags['Dur?e'] = $ThisFileInfo['playtime_string'];
			}
			break;

		case 'jpg':
		case 'jpeg':
			$FileName = ldm_cleanto_fopen($linkurl);
			$getID3 = new getID3;
			$ThisFileInfo = $getID3->analyze($FileName);
			if (array_key_exists('jpg', $ThisFileInfo)) {
				$entitytags['DateTime'] = $ThisFileInfo['jpg']['exif']['IFD0']['DateTime'];
				$entitytags['Height'] = $ThisFileInfo['jpg']['exif']['COMPUTED']['Height'];
				$entitytags['Width'] = $ThisFileInfo['jpg']['exif']['COMPUTED']['Width'];
			}
			break;

		case 'avi':
		case 'flv':
		case 'mpg':
		case 'mpeg':
		case 'mov':
		case 'rm':
			$FileName = ldm_cleanto_fopen($linkurl);
			$getID3 = new getID3;
			$ThisFileInfo = $getID3->analyze($FileName);
			if (array_key_exists('playtime_string', $ThisFileInfo)) {
				$entitytags['Dur?e'] = $ThisFileInfo['playtime_string'];
			}
			if (isset($ThisFileInfo["video"]["resolution_x"])) {
				$entitytags['Height'] = $ThisFileInfo['video']['resolution_y'];
				$entitytags['Width'] = $ThisFileInfo['video']['resolution_x'];
			}
			break;

		case 'asf':
		case 'wmv':
			$FileName = ldm_cleanto_fopen($linkurl);
			$getID3 = new getID3;
			$ThisFileInfo = $getID3->analyze($FileName);
			if (array_key_exists('playtime_string', $ThisFileInfo)) {
				$entitytags['Dur?e'] = $ThisFileInfo['playtime_string'];
			}
			if (isset($ThisFileInfo["video"]["streams"])) {
				foreach ($ThisFileInfo["video"]["streams"] as $thisstream) {
					if (isset($thisstream['resolution_x'])) {
						$entitytags['Height'] = $thisstream['resolution_y'];
						$entitytags['Width'] = $thisstream['resolution_x'];
						break;
					}
				}
			}
			break;
		}

		if (count($entitytags)) {
			require_once(DIR . '/includes/local_links_entities.php');
		}

		foreach ($entitytags as $entityname=>$entityvalue) {

			$entityexists = 0;
			$entitygroup = ($links_defaults['id3tag_enhance_group'] ? $links_defaults['id3tag_enhance_group'] : ID3ENTITYGROUP);
			ldm_define_entity($entityname, $entitygroup, ENTITY_TYPE_TEXT, 1);
			if (is_array($linkentities)) {
				foreach ($linkentities as $thisentity) {
					if ($thisentity['entityname']==$entityname and $thisentity['entityset']) {
						$entityexists = 1; // User entry takes priority
						break;
					}
				}
			}
			if (!$entityexists) {
				$linkentities[] = array('entityname'=>$entityname, 'entityvalue'=>$entityvalue, 'entityset'=>1);
			}
		}

	}

}
Reply With Quote
  #1260  
Old 09-26-2008, 03:58 AM
AndrewD AndrewD is offline
 
Join Date: Jul 2002
Location: Scotland
Posts: 3,486
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by 7lanet View Post
Possible inconsistencies between LDM and its environment
- Parameter upload_enabled is enabled but parameter upload_dir is not set
You have turned on the LDM admin setting *upload_enabled* but you have not set *upload_dir*, so LDM doesn't know where you want to store uploaded files. You have to tell it.

Quote:
Originally Posted by 7lanet View Post
- allow_url_fopen is off and cURL is not available in php.ini file - Remote downloads not available
*allow_url_fopen* is a control setting for php on your web server, in the php configuration file *php.ini*. Your site admin has set up your server so that php cannot use one of the standard ways of accessing remote files.

*cURL* is an addon library for your web server. It provides another (better) way to access remote files. Your web admin has not installed it.

Consequently, LDM cannot *manage* remote downloads - it can only manage *local* downloads. A *local* download is physically stored on your server (either an upload or a file with no url in its name). A *remote* download is a file accessed via a full url.

Quote:
Originally Posted by 7lanet View Post
- upload_max_filesize 2M >= post_max_size 2048k in php.ini file - Large uploads may fail without warning
These are two more settings that control php's handling of uploads, also found in the php configuration file *php.ini*. They specify the maximum amount of data that can be uploaded in one go. It is good practice (but not essential) that *post_max_size* has a bigger value than *upload_max_filesize*. Otherwise, when a user tries to upload file that is bigger than *post_max_size*, some versions of php will fail to generate an error message.
Reply With Quote
  #1261  
Old 09-26-2008, 03:02 PM
abdelghani68 abdelghani68 is offline
 
Join Date: Oct 2007
Location: France
Posts: 135
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by abdelghani68 View Post
I have do the modification, added an audio, but the title don't change.
Sorry, it works !
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 08:48 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.06005 seconds
  • Memory Usage 2,322KB
  • 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
  • (8)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
  • (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