1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205: 206: 207: 208: 209: 210: 211: 212: 213: 214: 215: 216: 217: 218: 219: 220: 221: 222: 223: 224: 225: 226: 227: 228: 229: 230: 231: 232: 233: 234: 235: 236: 237: 238: 239: 240: 241: 242: 243: 244: 245: 246: 247: 248: 249: 250: 251: 252: 253: 254: 255: 256: 257: 258: 259: 260: 261: 262: 263: 264: 265: 266: 267: 268: 269: 270: 271: 272: 273: 274: 275: 276: 277: 278: 279: 280: 281: 282: 283: 284: 285: 286: 287: 288: 289: 290: 291: 292: 293: 294: 295: 296: 297: 298: 299: 300: 301: 302: 303: 304: 305: 306: 307: 308: 309: 310: 311: 312: 313: 314: 315: 316: 317: 318: 319: 320: 321: 322: 323: 324: 325: 326: 327: 328: 329: 330: 331: 332: 333: 334: 335: 336: 337: 338: 339: 340: 341: 342: 343: 344: 345: 346: 347: 348: 349: 350: 351: 352: 353: 354: 355: 356: 357: 358: 359: 360: 361: 362: 363: 364: 365: 366: 367: 368: 369: 370: 371: 372: 373: 374: 375: 376: 377: 378: 379: 380: 381: 382: 383: 384: 385: 386: 387: 388: 389: 390: 391: 392: 393: 394: 395: 396: 397: 398: 399: 400: 401: 402: 403: 404: 405: 406: 407: 408: 409: 410: 411: 412: 413: 414: 415: 416: 417: 418: 419: 420: 421: 422: 423: 424: 425: 426: 427: 428: 429: 430: 431: 432: 433: 434: 435: 436: 437: 438: 439: 440: 441: 442: 443: 444: 445: 446: 447: 448: 449: 450: 451: 452: 453: 454: 455: 456: 457: 458: 459: 460: 461: 462: 463: 464: 465: 466: 467: 468: 469: 470: 471: 472: 473: 474: 475: 476: 477: 478: 479: 480: 481: 482: 483: 484: 485: 486: 487: 488: 489: 490: 491: 492: 493: 494: 495: 496: 497: 498: 499: 500: 501: 502: 503: 504: 505: 506: 507: 508: 509: 510: 511: 512: 513: 514: 515: 516: 517: 518: 519: 520: 521: 522: 523: 524: 525: 526: 527: 528: 529: 530: 531: 532: 533: 534: 535: 536: 537: 538: 539: 540: 541: 542: 543: 544: 545: 546: 547: 548: 549: 550: 551: 552: 553: 554: 555: 556: 557: 558: 559: 560: 561: 562: 563: 564: 565: 566: 567: 568: 569: 570: 571: 572: 573: 574: 575: 576: 577: 578: 579: 580: 581: 582: 583: 584: 585: 586: 587: 588: 589: 590: 591: 592: 593: 594: 595: 596: 597: 598: 599: 600: 601: 602: 603: 604: 605: 606: 607: 608: 609: 610: 611: 612: 613: 614: 615: 616: 617: 618: 619: 620: 621: 622: 623: 624: 625: 626: 627: 628: 629: 630: 631: 632:
<?php
$plugin_is_filter = 5 | FEATURE_PLUGIN;
$plugin_description = gettext("Provides a means for placing a user registration form on your theme pages.");
$plugin_author = "Stephen Billard (sbillard)";
$plugin_category = gettext('Users');
$option_interface = 'register_user';
$_zp_conf_vars['special_pages']['register_user'] = array(
'define' => '_REGISTER_USER_',
'rewrite' => getOption('register_user_link'),
'option' => 'register_user_link',
'default' => '_PAGE_/register');
$_zp_conf_vars['special_pages'][] = array(
'definition' => '%REGISTER_USER%',
'rewrite' => '_REGISTER_USER_');
$_zp_conf_vars['special_pages'][] = array(
'define' => false,
'rewrite' => '%REGISTER_USER%',
'rule' => '^%REWRITE%/*$ index.php?p=' .
'register' . ' [L,QSA]');
if (getOption('register_user_address_info')) {
require_once(SERVERPATH . '/' . ZENFOLDER . '/' . PLUGIN_FOLDER . '/comment_form/functions.php');
}
class register_user {
function __construct() {
global $_zp_authority;
setOptionDefault('register_user_link', '_PAGE_/register');
gettext($str = 'You have received this email because you registered with the user id %3$s on this site.' . "\n" . 'To complete your registration visit %1$s.');
setOptionDefault('register_user_text', getAllTranslations($str));
gettext($str = 'Click here to register for this site.');
setOptionDefault('register_user_page_tip', getAllTranslations($str));
gettext($str = 'Register');
setOptionDefault('register_user_page_link', getAllTranslations($str));
setOptionDefault('register_user_captcha', 0);
setOptionDefault('register_user_email_is_id', 1);
setOptionDefault('register_user_create_album', 0);
$mailinglist = $_zp_authority->getAdminEmail(ADMIN_RIGHTS);
if (count($mailinglist) == 0) {
setOption('register_user_notify', 0);
} else {
setOptionDefault('register_user_notify', 1);
}
setOptionDefault('register_user_dataconfirmation', 0);
}
function getOptionsSupported() {
global $_zp_authority, $_common_notify_handler, $_zp_captcha;
$options = array(
gettext('Link text') => array(
'key' => 'register_user_page_link',
'type' => OPTION_TYPE_TEXTAREA,
'order' => 1,
'desc' => gettext('If this option is set, the visitor login form will include a link to this page. The link text will be labeled with the text provided.')),
gettext('Hint text') => array(
'key' => 'register_user_page_tip',
'type' => OPTION_TYPE_TEXTAREA,
'order' => 2.5,
'desc' => gettext('If this option is set, the visitor login form will include a link to this page. The link text will be labeled with the text provided.')),
gettext('Notify*') => array(
'key' => 'register_user_notify',
'type' => OPTION_TYPE_CHECKBOX,
'order' => 4,
'desc' => gettext('If checked, an e-mail will be sent to the gallery admin when a new user has verified his registration.')),
gettext('User album') => array(
'key' => 'register_user_create_album',
'type' => OPTION_TYPE_CHECKBOX,
'order' => 6,
'desc' => gettext('If checked, an album will be created and assigned to the user.')),
gettext('Email ID') => array(
'key' => 'register_user_email_is_id',
'type' => OPTION_TYPE_CHECKBOX,
'order' => 4,
'desc' => gettext('If checked, The use’s e-mail address will be used as his User ID.')),
gettext('Email notification text') => array(
'key' => 'register_user_text',
'type' => OPTION_TYPE_TEXTAREA,
'order' => 3,
'desc' => gettext('Text for the body of the email sent to the registrant for registration verification. <p class="notebox"><strong>Note:</strong> You must include <code>%1$s</code> in your message where you wish the <em>registration verification</em> link to appear. You may also insert the registrant’s <em>name</em> (<code>%2$s</code>), <em>user id</em> (<code>%3$s</code>), and <em>password</em>* (<code>%4$s</code>).<br /><br />*For security reasons we recommend <strong>not</strong> inserting the <em>password</em>.</p>')),
gettext('CAPTCHA') => array(
'key' => 'register_user_captcha',
'type' => OPTION_TYPE_CHECKBOX,
'order' => 5,
'desc' => ($_zp_captcha->name) ? gettext('If checked, the form will include a Captcha verification.') : '<span class="notebox">' . gettext('No captcha handler is enabled.') . '</span>'),
gettext('Data usage confirmation') => array(
'key' => 'register_user_dataconfirmation',
'type' => OPTION_TYPE_CHECKBOX,
'order' => 5,
'desc' => gettext('If checked a mandatory checkbox is added for users to confirm about data storage and handling by your site. This is recommend to comply with the European GDPR.')),
);
if (extensionEnabled('userAddressFields')) {
$options[gettext('Address fields')] = array(
'key' => 'register_user_address_info',
'type' => OPTION_TYPE_RADIO,
'order' => 4.5,
'buttons' => array(gettext('Omit') => 0, gettext('Show') => 1, gettext('Require') => 'required'),
'desc' => gettext('If <em>Address fields</em> are shown or required, the form will include positions for address information. If required, the user must supply data in each address field.'));
}
if ($_common_notify_handler) {
$options['note'] = array(
'key' => 'menu_truncate_note',
'type' => OPTION_TYPE_NOTE,
'order' => 8,
'desc' => '<p class="notebox">' . $_common_notify_handler . '</p>');
} else {
$_common_notify_handler = gettext('* The option may be set via the <a href="javascript:gotoName(\'register_user\');"><em>register_user</em></a> plugin options.');
$options['note'] = array(
'key' => 'menu_truncate_note',
'type' => OPTION_TYPE_NOTE,
'order' => 8,
'desc' => gettext('<p class="notebox">*<strong>Note:</strong> The setting of this option is shared with other plugins.</p>'));
}
$mailinglist = $_zp_authority->getAdminEmail(ADMIN_RIGHTS);
if (count($mailinglist) == 0) {
$options[gettext('Notify*')]['disabled'] = true;
$options[gettext('Notify*')]['desc'] .= ' ' . gettext('Of course there must be some Administrator with an e-mail address for this option to make sense!');
}
if (class_exists('user_groups')) {
$admins = $_zp_authority->getAdministrators('groups');
$defaultrights = ALL_RIGHTS;
$ordered = array();
foreach ($admins as $key => $admin) {
$ordered[$admin['user']] = $admin['user'];
if ($admin['rights'] < $defaultrights && $admin['rights'] >= NO_RIGHTS) {
$nullselection = $admin['user'];
$defaultrights = $admin['rights'];
}
}
if (!empty($nullselection)) {
if (is_numeric(getOption('register_user_user_rights'))) {
setOption('register_user_user_rights', $nullselection);
} else {
setOptionDefault('register_user_user_rights', $nullselection);
}
}
$options[gettext('Default user group')] = array(
'key' => 'register_user_user_rights',
'type' => OPTION_TYPE_SELECTOR,
'order' => 1,
'selections' => $ordered,
'desc' => gettext("Initial group assignment for the new user."));
} else {
if (is_numeric(getOption('register_user_user_rights'))) {
setOptionDefault('register_user_user_rights', NO_RIGHTS);
} else {
setOption('register_user_user_rights', NO_RIGHTS);
}
$options[gettext('Default rights')] = array(
'key' => 'register_user_user_rights',
'type' => OPTION_TYPE_CUSTOM,
'order' => 2,
'desc' => gettext("Initial rights for the new user. (If no rights are set, approval of the user will be required.)"));
}
return $options;
}
function handleOption($option, $currentValue) {
global $_zp_gallery;
switch ($option) {
case 'register_user_user_rights':
printAdminRightsTable('register_user', '', '', getOption('register_user_user_rights'));
break;
}
}
function handleOptionSave($themename, $themealbum) {
if (!class_exists('user_groups')) {
$saved_rights = NO_RIGHTS;
$rightslist = sortMultiArray(Zenphoto_Authority::getRights(), array('set', 'value'));
foreach ($rightslist as $rightselement => $right) {
if (isset($_POST['register_user-' . $rightselement])) {
$saved_rights = $saved_rights | $_POST['register_user-' . $rightselement];
}
}
setOption('register_user_user_rights', $saved_rights);
}
return false;
}
static function getUserInfo($i) {
$result = array();
if (isset($_POST[$i . '-comment_form_website']))
$result['website'] = sanitize($_POST[$i . '-comment_form_website'], 1);
if (isset($_POST[$i . '-comment_form_street']))
$result['street'] = sanitize($_POST[$i . '-comment_form_street'], 1);
if (isset($_POST[$i . '-comment_form_city']))
$result['city'] = sanitize($_POST[$i . '-comment_form_city'], 1);
if (isset($_POST[$i . '-comment_form_state']))
$result['state'] = sanitize($_POST[$i . '-comment_form_state'], 1);
if (isset($_POST[$i . '-comment_form_country']))
$result['country'] = sanitize($_POST[$i . '-comment_form_country'], 1);
if (isset($_POST[$i . '-comment_form_postal']))
$result['postal'] = sanitize($_POST[$i . '-comment_form_postal'], 1);
return $result;
}
static function getLink() {
return zp_apply_filter('getLink', rewrite_path(_REGISTER_USER_ . '/', '/index.php?p=register'), 'register.php', NULL);
}
static function post_processor() {
global $admin_e, $admin_n, $user, $_zp_authority, $_zp_captcha, $_zp_gallery, $_notify, $_link, $_message;
if (isset($_POST['username']) && !empty($_POST['username'])) {
$_notify = 'honeypot';
}
if (getOption('register_user_captcha')) {
if (isset($_POST['code'])) {
$code = sanitize($_POST['code'], 3);
$code_ok = sanitize($_POST['code_h'], 3);
} else {
$code = '';
$code_ok = '';
}
if (!$_zp_captcha->checkCaptcha($code, $code_ok)) {
$_notify = 'invalidcaptcha';
}
}
$admin_n = trim(sanitize($_POST['admin_name']));
if (empty($admin_n)) {
$_notify = 'incomplete';
}
$user = trim(sanitize($_POST['user']));
if (getOption('register_user_email_is_id')) {
$mail_duplicate = $_zp_authority->checkUniqueMailaddress($user, $user);
if (!$mail_duplicate) {
$_notify = 'exists';
}
}
if (isset($_POST['admin_email'])) {
$admin_e = trim(sanitize($_POST['admin_email']));
$mail_duplicate = $_zp_authority->checkUniqueMailaddress($admin_e, $user);
if(!$mail_duplicate) {
$_notify = 'duplicateemail';
}
} else {
$admin_e = $user;
}
if (!isValidEmail($admin_e)) {
$_notify = 'invalidemail';
}
if(getOption('register_user_dataconfirmation') && !isset($_POST['admin_dataconfirmation'])) {
$_notify = 'dataconfirmationmissing';
}
$pass = trim(sanitize($_POST['pass']));
if (empty($pass)) {
$_notify = 'empty';
} else if (!empty($user) && !(empty($admin_n)) && !empty($admin_e)) {
if (isset($_POST['disclose_password']) || $pass == trim(sanitize($_POST['pass_r']))) {
$currentadmin = Zenphoto_Authority::getAnAdmin(array('`user`=' => $user, '`valid`>' => 0));
if (is_object($currentadmin)) {
$_notify = 'exists';
}
if (empty($_notify)) {
$userobj = Zenphoto_Authority::newAdministrator('');
$userobj->transient = false;
$userobj->setUser($user);
$userobj->setPass($pass);
$userobj->setName($admin_n);
$userobj->setEmail($admin_e);
$userobj->setRights(0);
$userobj->setObjects(NULL);
$userobj->setGroup('');
$userobj->setCustomData('');
$userobj->setLanguage(getUserLocale());
if (extensionEnabled('userAddressFields')) {
$addresses = getOption('register_user_address_info');
$userinfo = register_user::getUserInfo(0);
$_comment_form_save_post = serialize($userinfo);
if ($addresses == 'required') {
if (!isset($userinfo['street']) || empty($userinfo['street'])) {
$userobj->transient = true;
$userobj->msg .= ' ' . gettext('You must supply the street field.');
}
if (!isset($userinfo['city']) || empty($userinfo['city'])) {
$userobj->transient = true;
$userobj->msg .= ' ' . gettext('You must supply the city field.');
}
if (!isset($userinfo['state']) || empty($userinfo['state'])) {
$userobj->transient = true;
$userobj->msg .= ' ' . gettext('You must supply the state field.');
}
if (!isset($userinfo['country']) || empty($userinfo['country'])) {
$userobj->transient = true;
$userobj->msg .= ' ' . gettext('You must supply the country field.');
}
if (!isset($userinfo['postal']) || empty($userinfo['postal'])) {
$userobj->transient = true;
$userobj->msg .= ' ' . gettext('You must supply the postal code field.');
}
}
zp_setCookie('reister_user_form_addresses', $_comment_form_save_post);
userAddressFields::setCustomData($userobj, $userinfo);
}
zp_apply_filter('register_user_registered', $userobj);
if ($userobj->transient) {
if (empty($_notify)) {
$_notify = 'filter';
}
} else {
$userobj->save();
if (MOD_REWRITE) {
$verify = '?verify=';
} else {
$verify ='&verify=';
}
$_link = SERVER_HTTP_HOST . register_user::getLink() . $verify . bin2hex(serialize(array('user' => $user, 'email' => $admin_e)));
$_message = sprintf(get_language_string(getOption('register_user_text')), $_link, $admin_n, $user, $pass);
$_notify = zp_mail(get_language_string(gettext('Registration confirmation')), $_message, array($user => $admin_e));
if (empty($_notify)) {
$_notify = 'accepted';
}
}
}
} else {
$_notify = 'mismatch';
}
} else {
$_notify = 'incomplete';
}
}
}
function printRegistrationForm($thanks = NULL) {
global $admin_e, $admin_n, $user, $_zp_authority, $_zp_captcha, $_zp_gallery, $_notify, $_link, $_message;
require_once(SERVERPATH . '/' . ZENFOLDER . '/admin-functions.php');
$userobj = NULL;
if (isset($_GET['verify'])) {
$currentadmins = $_zp_authority->getAdministrators();
$params = unserialize(pack("H*", trim(sanitize($_GET['verify']), '.')));
unset($_GET['verify']);
$_link = explode('?', getRequestURI());
$p = array();
if (isset($_link[1])) {
$p = explode('&', $_link[1]);
foreach ($p as $k => $v) {
if (strpos($v, 'verify=') === 0) {
unset($p[$k]);
}
}
unset($p['verify']);
}
$_SERVER['REQUEST_URI'] = $_link[0];
if (!empty($p)) {
$_SERVER['REQUEST_URI'] .= '?' . implode('&', $p);
}
$userobj = Zenphoto_Authority::getAnAdmin(array('`user`=' => $params['user'], '`valid`=' => 1));
if ($userobj && $userobj->getEmail() == $params['email']) {
if (!$userobj->getRights()) {
$userobj->setCredentials(array('registered', 'user', 'email'));
$rights = getOption('register_user_user_rights');
$group = NULL;
if (!is_numeric($rights)) {
$admin = Zenphoto_Authority::getAnAdmin(array('`user`=' => $rights, '`valid`=' => 0));
if ($admin) {
$userobj->setObjects($admin->getObjects());
if ($admin->getName() != 'template') {
$group = $rights;
}
$rights = $admin->getRights();
} else {
$rights = NO_RIGHTS;
}
}
$userobj->setRights($rights | NO_RIGHTS);
$userobj->setGroup($group);
zp_apply_filter('register_user_verified', $userobj);
if (getOption('register_user_notify')) {
$_notify = zp_mail(gettext('Zenphoto Gallery registration'), sprintf(gettext('%1$s (%2$s) has registered for the zenphoto gallery providing an e-mail address of %3$s.'), $userobj->getName(), $userobj->getUser(), $userobj->getEmail()));
}
if (empty($_notify)) {
if (getOption('register_user_create_album')) {
$userobj->createPrimealbum();
}
$_notify = 'verified';
$_POST['user'] = $userobj->getUser();
}
$userobj->save();
} else {
$_notify = 'already_verified';
}
} else {
$_notify = 'not_verified';
}
}
if (isset($_GET['login'])) {
$_notify = 'loginfailed';
}
if (zp_loggedin()) {
if (isset($_GET['login'])) {
echo '<meta http-equiv="refresh" content="1; url=' . WEBPATH . '/">';
} else {
echo '<div class="errorbox fade-message">';
echo '<h2>' . gettext("you are already logged in.") . '</h2>';
echo '</div>';
}
return;
}
if (isset($_GET['login'])) {
$_notify = 'loginfailed';
}
if (!empty($_notify)) {
switch ($_notify) {
case'verified':
if (is_null($thanks))
$thanks = gettext("Thank you for registering.");
?>
<div class="messagebox fade-message">
<p><?php echo $thanks; ?></p>
<p><?php echo gettext('You may now log onto the site and verify your personal information.'); ?></p>
</div>
<?php
case 'already_verified':
case 'loginfailed':
$_link = getRequestURI();
if (strpos($_link, '?') === false) {
$_SERVER['REQUEST_URI'] = $_link . '?login=true';
} else {
$_SERVER['REQUEST_URI'] = $_link . '&login=true';
}
require_once(SERVERPATH . '/' . ZENFOLDER . '/' . PLUGIN_FOLDER . '/user_login-out.php');
printPasswordForm(NULL, true, false, WEBPATH . '/' . ZENFOLDER . '/admin-users.php?page=users');
$_notify = 'success';
break;
case 'honeypot':
case 'accepted':
?>
<div class="messagebox fade-message">
<p><?php echo gettext('Your registration information has been accepted. An email has been sent to you to verify your email address.'); ?></p>
</div>
<?php
if ($_notify != 'honeypot')
$_notify = 'success';
break;
case 'exists':
?>
<div class="errorbox fade-message">
<h2><?php echo gettext("Registration failed."); ?></h2>
<?php
if(getOption('register_user_email_is_id')) {
$idnote = $admin_e;
} else {
$idnote = $user;
}
?>
<p><?php printf(gettext('The user ID <em>%s</em> is already in use.'), $idnote); ?></p>
</div>
<?php
break;
case 'empty':
?>
<div class="errorbox fade-message">
<h2><?php echo gettext("Registration failed."); ?></h2>
<p><?php echo gettext('Passwords may not be empty.'); ?></p>
</div>
<?php
break;
case 'mismatch':
?>
<div class="errorbox fade-message">
<h2><?php echo gettext("Registration failed."); ?></h2>
<p><?php echo gettext('Your passwords did not match.'); ?></p>
</div>
<?php
break;
case 'incomplete':
?>
<div class="errorbox fade-message">
<h2><?php echo gettext("Registration failed."); ?></h2>
<p><?php echo gettext('You have not filled in all the fields.'); ?></p>
</div>
<?php
break;
case 'notverified':
?>
<div class="errorbox fade-message">
<h2><?php echo gettext("Registration failed."); ?></h2>
<p><?php echo gettext('Invalid verification link.'); ?></p>
</div>
<?php
break;
case 'invalidemail':
?>
<div class="errorbox fade-message">
<h2><?php echo gettext("Registration failed."); ?></h2>
<p><?php echo gettext('Enter a valid email address.'); ?></p>
</div>
<?php
break;
case 'duplicateemail':
?>
<div class="errorbox fade-message">
<h2><?php echo gettext("Registration failed."); ?></h2>
<p><?php echo gettext('The email address entered is already used.'); ?></p>
</div>
<?php
break;
case 'invalidcaptcha':
?>
<div class="errorbox fade-message">
<h2><?php echo gettext("Registration failed."); ?></h2>
<p><?php echo gettext('The CAPTCHA you entered was not correct.'); ?></p>
</div>
<?php
break;
case 'not_verified':
?>
<div class="errorbox fade-message">
<h2><?php echo gettext("Verification failed."); ?></h2>
<p><?php echo gettext('Your registration request could not be completed.'); ?></p>
</div>
<?php
break;
case 'filter':
?>
<div class="errorbox fade-message">
<h2><?php echo gettext("Registration failed."); ?></h2>
<p>
<?php
if (is_object($userobj) && !empty($userobj->msg)) {
echo $userobj->msg;
} else {
echo gettext('Your registration attempt failed a <code>register_user_registered</code> filter check.');
}
?>
</p>
</div>
<?php
break;
case 'dataconfirmationmissing':
?>
<div class="errorbox fade-message">
<h2><?php echo gettext("Data usage confirmation missing."); ?></h2>
<p><?php echo gettext('You have not agreed to data storage and handling by this website.'); ?></p>
</div>
<?php
break;
default:
?>
<div class="errorbox fade-message">
<h2><?php echo gettext("Registration failed."); ?></h2>
<p><?php echo $_notify; ?></p>
</div>
<?php
break;
}
}
if ($_notify != 'success') {
$form = getPlugin('register_user/register_user_form.php', true);
require_once($form);
}
}
function printRegisterURL($_linktext, $prev = '', $next = '', $class = NULL) {
if (!zp_loggedin()) {
if (!is_null($class)) {
$class = 'class="' . $class . '"';
}
if (is_null($_linktext)) {
$_linktext = get_language_string(getOption('register_user_page_link'));
}
echo $prev;
?>
<a href="<?php echo html_encode(register_user::getLink()); ?>"<?php echo $class; ?> title="<?php echo html_encode($_linktext); ?>" id="register_link"><?php echo $_linktext; ?> </a>
<?php
echo $next;
}
}
if (isset($_POST['register_user'])) {
zp_register_filter('load_theme_script', 'register_user::post_processor');
}
?>