5

Have a site that has hundreds of PDF files which users can access once they create an EE member account.

Client is asking if there is a way to track which files the user has downloaded and either log them against their account or email the client with a report at the end of a session.

Has anyone come across a plugin or third party system that would achieve this?

2 Answers 2

4

This can be achieved by developing a small custom third party addon (module) and some Ajax stuff. I think, you are having PDF file linked in HREF so there would an event be triggered on click at that PDF link with Ajax call.

  • A small module would be created which will create a database table to track all the downloads
  • This module would have an ACTION which will trigger with Ajax call on clicking the PDF link. Like: $.post("?ACT=xx", { pdf: "xyz", entry_id: "xxx", other_data : "abc" } );
  • The module function associated with that ACTION will do (1) Store the member id and downloaded PDF into database table (2) Send an email notification to admin.

Above is the whole approach for your need. I hope, it would help you and give some idea for developing that module.

1
2

I would suggest checking our either Link Vault or Protected Links both are quite similar and work very well for what you're looking to do.

4
  • Thanks, would Link Vault allow you to record download clicks against a member's account?
    – Ben
    Aug 27, 2013 at 8:59
  • Yes it does do that. Aug 27, 2013 at 15:53
  • @JeremyGimbel Would the user be able to see what they've downloaded via their control panel or another mechanism?
    – imjared
    Dec 9, 2013 at 4:02
  • The modules have a control panel interface for viewing the data. They also both have template tags for showing the data within templates. Dec 9, 2013 at 16:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.