Live Example
Here is a live example, using the built-in 21+ checker.
Installation
Unzip and place the EntranceGate
directory in your site/addons
directory.
Use the tags below on any page(s) you wish to request confirmation before allowing access.
Toggle the switch in the Addons > Entrance Gate > Active to start gating users.
Usage
This plugin includes two default tags to get you up and running quickly, as well as a general tag so that you can customize your confirmation modal.
"Yes" confirmations are stored in the session and only need to be made once per session.
Default 21+ Age Checker
Simply add the tag {{ entrance_gate:over21 }}
to any layout or page to check if a user is over 21 before granting access.
Default Cookie Approval
Using {{ entrance_gate:cookies }}
will load a plugin-default modal requesting approval of site-cookies.
Custom Confirmation Modal
You may use the generic tag to design any confirmation modal you want.
Add id="ConfirmGateYes"
to the button/link/element you wish to use for the "yes" action, and id="ConfirmGateNo"
to any button/link/element for the "no" action. The tag includes Javascript that looks for 'onclick' events for an element with each of those IDs.
Example:
Adding the following to the layouts/default
file will include the check on every page using the default layout:
{{ entrance_gate }} <div style="padding: 2em; max-width: 550px; background-color: #fff;"> <h4 style="text-align: center;"> Do you want to enter? </h4> <p style="text-align: center;"> This is a custom box. </p> <div style="margin-top: 2em; text-align: center;"> <button id="ConfirmGateYes" style="background-color: #eee; border: 2px solid #eee; padding: 0.25em 1.5em;"> Yes </button> <button id="ConfirmGateNo" style="background-color: #fff; border: 2px solid #eee; padding: 0.25em 1.5em;"> No </button> </div> </div>{{ /entrance_gate }}
Notes
For those making a custom form, there are a few things to note.
The {{ entrance_gate }}
tag will:
- apply a full-screen wrapper that will grey-out the background
- vertically and horizontally center the div included inside the tag using flexbox