diff options
-rw-r--r-- | languages/en.php | 10 | ||||
-rw-r--r-- | manifest.xml | 11 | ||||
-rw-r--r-- | start.php | 28 | ||||
-rw-r--r-- | views/default/account/forms/register.php | 46 | ||||
-rw-r--r-- | views/default/registrationterms/register.php | 9 |
5 files changed, 104 insertions, 0 deletions
diff --git a/languages/en.php b/languages/en.php new file mode 100644 index 000000000..079e85e07 --- /dev/null +++ b/languages/en.php @@ -0,0 +1,10 @@ +<?php +$english = array( + 'agreetoterms' => "I have read and agree to the", + 'terms' => 'Terms', + + 'agreetoterms:required' => "You must first agree to the terms", +); + +add_translation("en",$english); +?>
\ No newline at end of file diff --git a/manifest.xml b/manifest.xml new file mode 100644 index 000000000..f1382f08b --- /dev/null +++ b/manifest.xml @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<plugin_manifest>
+ <field key="author" value="Evan Winslow" />
+ <field key="version" value="1.0" />
+ <field key="description" value="Force users to check a box saying they agree to the site's terms before they are allowed to register" />
+ <field key="website" value="http://www.facebook.com/evanwinslow" />
+ <field key="copyright" value="(C) Evan Winslow 2010" />
+ <field key="licence" value="GNU Public License version 2" />
+ <field key="requires" value="externalpages" />
+ <field key="elgg_version" value="2009030702" />
+</plugin_manifest>
diff --git a/start.php b/start.php new file mode 100644 index 000000000..de7657fab --- /dev/null +++ b/start.php @@ -0,0 +1,28 @@ +<?php +/******************************************************************************* + * registrationterms + * + * @author Administrator + ******************************************************************************/ + + function registrationterms_init() + { + global $CONFIG; + + //put the terms agreement at the very end + extend_view('register/extend', 'registrationterms/register', 1000); + + //block user registration if they don't check the box + register_plugin_hook('action', 'register', 'registrationterms_register_hook'); + } + + function registrationterms_register_hook() + { + if (get_input('agreetoterms',false) != 'true') { + register_error(elgg_echo('agreetoterms:required')); + forward($_SERVER['HTTP_REFERER']); + } + } + + register_elgg_event_handler('init', 'system', 'registrationterms_init'); +?>
\ No newline at end of file diff --git a/views/default/account/forms/register.php b/views/default/account/forms/register.php new file mode 100644 index 000000000..3e53b6f05 --- /dev/null +++ b/views/default/account/forms/register.php @@ -0,0 +1,46 @@ +<?php +/** + * Elgg register form + * + * @package Elgg + * @subpackage Core + * @author Curverider Ltd + * @link http://elgg.org/ + */ + +$username = get_input('u'); +$email = get_input('e'); +$name = get_input('n'); + +$admin_option = false; +if (($_SESSION['user']->admin) && ($vars['show_admin'])) { + $admin_option = true; +} + +$form_body = "<p><label>" . elgg_echo('name') . "<br />" . elgg_view('input/text' , array('internalname' => 'name', 'class' => "general-textarea", 'value' => $name)) . "</label><br />"; + +$form_body .= "<label>" . elgg_echo('email') . "<br />" . elgg_view('input/text' , array('internalname' => 'email', 'class' => "general-textarea", 'value' => $email)) . "</label><br />"; +$form_body .= "<label>" . elgg_echo('username') . "<br />" . elgg_view('input/text' , array('internalname' => 'username', 'class' => "general-textarea", 'value' => $username)) . "</label><br />"; +$form_body .= "<label>" . elgg_echo('password') . "<br />" . elgg_view('input/password' , array('internalname' => 'password', 'class' => "general-textarea")) . "</label><br />"; +$form_body .= "<label>" . elgg_echo('passwordagain') . "<br />" . elgg_view('input/password' , array('internalname' => 'password2', 'class' => "general-textarea")) . "</label><br />"; + +// view to extend to add more fields to the registration form +$form_body .= elgg_view('register/extend'); + +// Add captcha hook +$form_body .= elgg_view('input/captcha'); + +if ($admin_option) { + $form_body .= elgg_view('input/checkboxes', array('internalname' => "admin", 'options' => array(elgg_echo('admin_option')))); +} + +$form_body .= elgg_view('input/hidden', array('internalname' => 'friend_guid', 'value' => $vars['friend_guid'])); +$form_body .= elgg_view('input/hidden', array('internalname' => 'invitecode', 'value' => $vars['invitecode'])); +$form_body .= elgg_view('input/hidden', array('internalname' => 'action', 'value' => 'register')); +$form_body .= elgg_view('input/submit', array('internalname' => 'submit', 'value' => elgg_echo('register'))) . "</p>"; +?> + +<div id="register-box"> +<h2><?php echo elgg_echo('register'); ?></h2> +<?php echo elgg_view('input/form', array('action' => "{$vars['url']}action/register", 'body' => $form_body)) ?> +</div>
\ No newline at end of file diff --git a/views/default/registrationterms/register.php b/views/default/registrationterms/register.php new file mode 100644 index 000000000..a8ad88cdb --- /dev/null +++ b/views/default/registrationterms/register.php @@ -0,0 +1,9 @@ +<?php
+/**
+ *
+ */
+?>
+<label>
+ <input type="checkbox" name="agreetoterms" value="true">
+ <?php echo elgg_echo('agreetoterms')." <a href=\"{$vars['url']}pg/expages/read/Terms/\">".elgg_echo('terms')."</a>"; ?>
+</label><br/>
\ No newline at end of file |