The purpose of this profile is to make the users accept a terms of use on registration. Also existing users will be asked to fill in the terms of use on login if they are already registered prior to the terms of use implementation
The User Tracker
First you need a user tracker. You could already have a user tracker. If so, you don't need to create one.
YAML
objects:
-
type: tracker
ref: user_tracker
data:
name: User Tracker
description:
restrict_end: 0
restrict_start: 0
allow:
- one_item_per_user
- creator_modification
show:
- list_creation_date
- status_admin_only
-
type: tracker_field
ref: user_tracker_userselector
data:
name: User
permname: userselector
tracker: $profileobject:user_tracker$
options:
autoassign: 1
type: user
order: 0
flags:
- searchable
- public
- mandatory
Pretty tracker registration
Then you need to setup pretty tracker registration
YAML
objects:
-
type: wiki_page
ref: registration_tpl
data:
name: registration_tpl
content: wikicontent:registration_tpl_include
description:
lang:
Features & settings
YAML
preferences:
feature_trackers: y
allowRegister: true
userTracker: true
user_register_prettytracker: true
user_register_prettytracker_tpl: registration_tpl
wikiplugin_iframe: y
wikiplugin_tracker: y
wikiplugin_trackeritemfield: y
wikiplugin_redirect: y
The Checkbox field
You need to add the checkbox field to your user tracker
YAML
objects:
-
type: tracker_field
ref: user_tracker_acceptedTerms
data:
name: I have accepted the Terms of Use
permname: acceptedTerms
tracker: $profileobject:user_tracker$
options:
type: checkbox
order: 170
flags:
- public
- mandatory
You also need to set the group to have registration settings
YAML
permissions:
Registered:
user_tracker: $profileobject:user_tracker$
user_tracker_field: $profileobject:user_tracker_userselector$
registration_fields: [$profileobject:user_tracker_acceptedTerms$]
The wiki pages needed
YAML
objects:
-
type: wiki_page
ref: renewterms
data:
name: RenewTerms
content: wikicontent:RenewTerms_include
description:
lang: en
-
type: wiki_page
ref: terms_tpl
data:
name: terms_tpl
content: wikicontent:terms_tpl_include
description:
lang: en
-
type: wiki_page
ref: terms
data:
name: Terms
content: wikicontent:Terms_include
description:
lang: en
Example checker module that check the user has accepted or not.
You can also simply include the TRACKERITEMFIELD on selected pages like the homepage
YAML
objects:
-
type: module
ref: terms_checker
data:
name: Terms Checker
position: bottom
order: 2
cache: 0
rows: 10
groups:
- Registered
params:
custom: |
{TRACKERITEMFIELD(fieldId="$profileobject:user_tracker_acceptedTerms$", test="1", value="y", trackerId="$profileobject:user_tracker$")} {ELSE}
{REDIRECT(page="RenewTerms")}{REDIRECT}
{TRACKERITEMFIELD}
parse: true
Links to included wiki pages:
registration_tpl_include
RenewTerms_include
terms_tpl_include
Terms_include