aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--languages/en.php10
-rw-r--r--manifest.xml11
-rw-r--r--start.php28
-rw-r--r--views/default/account/forms/register.php46
-rw-r--r--views/default/registrationterms/register.php9
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