I’m excited to announce the commercial release of a new module, LinkLocker v2.0, and the accompanying LinkLocker Stats plugin. At its simplest, you can pass this module a URL to a file you wish to allow a user to download and it will generate a URL that hides the file’s true location. Of course, the free version (LinkLocker 1.4) has this functionality built in. This module has miles more functionality as described below:
LinkLocker v2.0 Module Features:
Allow users to download files without giving away the download location. Present a web page to a user while obfuscating the website address in the web browser’s address bar. Debug parameters that are passed in to the {exp:linklocker} tag. Track how many times a link has been created for a file. Track the download count of a file. Group or identify files by passing in an optional “group” paraemeter. Group or identify files by passing in an optional “label” parameter. Ability to restrict files to members only, and send them to a different URL if they aren’t logged in. Ability to restrict downloads to certain member groups, and send the user to a different url/template if they are not logged in or a member of the appropriate group. Track member and guest downloads of a file. Update links generated for members. Lock generated links to a user’s IP address. Set expire time for generated links, or set them to never expire. Send the user to a custom error page if the link has expired, reached max downloads, or otherwise unavailable to them. Restrict maximum number of download attempts for a file. Administrative backend that shows documentation, download stats for each link, and download stats for members. Backend allows “reset” function, which will create a new download link for a member if the link they have is expired, reached max downloads, etc. Prevent hotlinking to your generated links from other sites. Automatic database cleanup - prunes expired links.
Linklocker_stats v1.0 Plugin Features:
Download Count - Displays the download count for a url/group/label combination, or a group (counts downloads of all files in this group), or a label (counts downloads of all files with this label), or a file (counts all downloads of this file (regardless of label).
Member Downloads - If a member is logged in, this tag will return the number of times the user has downloaded the file. File may be specified by url, label, group, or any combination thereof. If the user isn’t logged in, this will either return the text specified in the alt_text parametert, or nothing if alt_text parameter isn’t used.
Top Downloads - Displays and unordered list of download stats for a url or label, sorted in ascending or descending order, with an optional maximum number of results. Allows a CSS class to be specified for the list as well as for the list items.
The support site is not yet up for this module, so until then this thread will serve as its support forum.
Please PM if you’d like to purchase. License is just $30 per site and includes the LinkLocker 2 module and LinkLocker Stats plugin. Note - if you don’t require click tracking or member download tracking, save some money and use the “free” version.
I can also definitely vouch for the fact that this is a fantastic module. If you need something to handle your downloads then this is definitely it. A lot of work has gone into this one and it shows!
Well done Brad and thanks for taking up my original post and creating this in the first place 😉
Best wishes,
Mark
Thanks so much for the supportive words fellas. Thanks for your help in developing and testing the 1.4 and 2.0 versions of this module, and for helping others with questions and issues - you help make the EE community such a fun and friendly one.
I may help out whenever I can but a module like this is worth so much more. This really is a fantastic piece of work and can help out soooooo many people with secured downloads.
Well done again Brad! 😊
Best wishes,
Mark
Playing with the 2.0 script right now.
When hardcoding the following (example) within one of my templates:
{exp:linklocker url="http://www.mysite.nl/download/chris.wmv" expires="10" iplock="off" err_page="template_group/template" }
refreshing the page the very first time generates the following MySQL Error:
MySQL ERROR:
Error Number: 1093
Description: You can't specify target table 'exp_linklocker_gen' for update in FROM clause
Query: DELETE FROM exp_linklocker_gen WHERE expires < SUBDATE(NOW(), 14) AND gen_id NOT IN (SELECT g.gen_id FROM exp_linklocker_gen g INNER JOIN exp_linklocker_user2gen u2g ON u2g.gen_id = g.gen_id WHERE g.expires < SUBDATE(NOW(), 14) )
Refreshing the page the second time, then it’s loaded correctly, displaying the link and it all works.
As soon as I hardcode another link into the tag, the proces is repeated with a MySQL error and after the second refresh a normal loaded page.
Any clues? Using EE 1.64 Build: 20080829
Hi Brad,
Uploaded the file you send me through PM. Changing the tag, and refreshing the page results in the following SQL error:
MySQL ERROR:
Error Number: 1064
Description: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE expires < SUBDATE(NOW(), 14) AND g1.gen_id NOT IN ' at line 2
Query: DELETE FROM exp_linklocker_gen g1 WHERE expires < SUBDATE(NOW(), 14) AND g1.gen_id NOT IN (SELECT g.gen_id FROM exp_linklocker_gen g INNER JOIN exp_linklocker_user2gen u2g ON u2g.gen_id = g.gen_id WHERE g.expires < SUBDATE(NOW(), 14) )
Sorry…
Packet Tide owns and develops ExpressionEngine. © Packet Tide, All Rights Reserved.