February 27th, 2012
Headache free frontend and backend terms of service.
One of my clients needed users to accept terms before proceeding to content. I had previously done this with a variety of hacks, but as I’m building an entirely new site for them, I wanted to do it right and make it into an extension. When I stumbled onto the “Terms Of Service” request at the http://ideas.joomla.org site, I decided to spend a little time to make this happen.
This package consists of a component and two plugins. (DON’T FORGET TO ENABLE THE PLUGINS!)
The component allows an administrator to manage the terms of service text and versions, as well as define which user groups an individual term applies and if the plugin is to be displayed in the front end or back end, or both. The user is required to accept a single term, and that term is chosen based on the age of the term (newest first) and the matching groups. Additional configuration allows the administrator to require users to accept new versions of the terms as they are released. If multiple terms apply to a single user (because he is part of multiple groups which have different terms), the newest term is applied.
The user plugin enables display of the term information in the user profile, as well as the user edit screen. The fields are merely informational to inform which term was accepted, and on what date and time.
The system plugin manages where and when the terms are required. Frontend, backend, which group, have they been accepted already, is the user viewing a term screen now… These tasks are performed by the system plugin.
Special attention was given to ensure these plugins run as efficiently as possible, testing frequently to ensure they don’t perform any unnecessary actions or utilize any resource that isn’t needed.
All of my extensions are free and none of my extensions display advertisements or links to my sites or services. If you feel that I have blessed you, then you can bless me by making a contribution to fund future development. Visit the “Website” link to make a contribution.