private function signUp() { global $_ARRAYLANG, $_CORELANG; if (!empty($_GET['u']) && !empty($_GET['k'])) { $this->_objTpl->hideBlock('access_signup_store_success'); $this->_objTpl->hideBlock('access_signup_store_error'); if ($this->confirmSignUp(intval($_GET['u']), contrexx_stripslashes($_GET['k']))) { $this->_objTpl->setVariable('ACCESS_SIGNUP_MESSAGE', $_ARRAYLANG['TXT_ACCESS_ACCOUNT_SUCCESSFULLY_ACTIVATED']); $this->_objTpl->parse('access_signup_confirm_success'); $this->_objTpl->hideBlock('access_signup_confirm_error'); } else { $this->_objTpl->setVariable('ACCESS_SIGNUP_MESSAGE', implode('<br />', $this->arrStatusMsg['error'])); $this->_objTpl->parse('access_signup_confirm_error'); $this->_objTpl->hideBlock('access_signup_confirm_success'); } $this->_objTpl->hideBlock('access_signup_form'); \Cx\Lib\SocialLogin::hideLogin($this->_objTpl, 'access_'); return; } else { $this->_objTpl->hideBlock('access_signup_confirm_success'); $this->_objTpl->hideBlock('access_signup_confirm_error'); } $arrSettings = \User_Setting::getSettings(); $objUser = null; if (!empty($_SESSION['user_id'])) { $objUser = \FWUser::getFWUserObject()->objUser->getUser($_SESSION['user_id']); if ($objUser) { $objUser->releaseRestoreKey(); $active = $arrSettings['sociallogin_active_automatically']['status']; $objUser->setActiveStatus($active); $this->_objTpl->hideBlock('access_logindata'); } } if (!$objUser) { $objUser = new \User(); } if (isset($_POST['access_signup'])) { $objUser->setUsername(isset($_POST['access_user_username']) ? trim(contrexx_stripslashes($_POST['access_user_username'])) : ''); $objUser->setEmail(isset($_POST['access_user_email']) ? trim(contrexx_stripslashes($_POST['access_user_email'])) : ''); $objUser->setFrontendLanguage(isset($_POST['access_user_frontend_language']) ? intval($_POST['access_user_frontend_language']) : 0); $assignedGroups = $objUser->getAssociatedGroupIds(); if (empty($assignedGroups)) { $objUser->setGroups(explode(',', $arrSettings['assigne_to_groups']['value'])); } $objUser->setSubscribedNewsletterListIDs(isset($_POST['access_user_newsletters']) && is_array($_POST['access_user_newsletters']) ? $_POST['access_user_newsletters'] : array()); if ((!isset($_POST['access_profile_attribute']) || !is_array($_POST['access_profile_attribute']) || ($arrProfile = $_POST['access_profile_attribute']) && (!isset($_POST['access_profile_attribute_images']) || !is_array($_POST['access_profile_attribute_images']) || ($uploadImageError = $this->addUploadedImagesToProfile($objUser, $arrProfile, $_POST['access_profile_attribute_images'], $_POST['access_image_uploader_id'])) === true) && $objUser->setProfile($arrProfile)) && $objUser->setPassword(isset($_POST['access_user_password']) ? trim(contrexx_stripslashes($_POST['access_user_password'])) : '', isset($_POST['access_user_password_confirmed']) ? trim(contrexx_stripslashes($_POST['access_user_password_confirmed'])) : '') && (!$arrSettings['user_account_verification']['value'] || $objUser->checkMandatoryCompliance()) && $this->checkCaptcha() && $this->checkToS() && $objUser->signUp()) { if ($this->handleSignUp($objUser)) { if (isset($_SESSION['user_id'])) { unset($_SESSION['user_id']); } $this->_objTpl->setVariable('ACCESS_SIGNUP_MESSAGE', implode('<br />', $this->arrStatusMsg['ok'])); $this->_objTpl->parse('access_signup_store_success'); $this->_objTpl->hideBlock('access_signup_store_error'); } else { $this->_objTpl->setVariable('ACCESS_SIGNUP_MESSAGE', implode('<br />', $this->arrStatusMsg['error'])); $this->_objTpl->parse('access_signup_store_error'); $this->_objTpl->hideBlock('access_signup_store_success'); } $this->_objTpl->hideBlock('access_signup_form'); \Cx\Lib\SocialLogin::hideLogin($this->_objTpl, 'access_'); return; } else { if (is_array($uploadImageError)) { $this->arrStatusMsg['error'] = array_merge($this->arrStatusMsg['error'], $uploadImageError); } $this->arrStatusMsg['error'] = array_merge($this->arrStatusMsg['error'], $objUser->getErrorMsg()); $this->_objTpl->hideBlock('access_signup_store_success'); $this->_objTpl->hideBlock('access_signup_store_error'); } } else { $this->_objTpl->hideBlock('access_signup_store_success'); $this->_objTpl->hideBlock('access_signup_store_error'); } $this->parseAccountAttributes($objUser, true); while (!$objUser->objAttribute->EOF) { $objAttribute = $objUser->objAttribute->getById($objUser->objAttribute->getId()); if (!$objAttribute->isProtected() || (\Permission::checkAccess($objAttribute->getAccessId(), 'dynamic', true) || $objAttribute->checkModifyPermission())) { $this->parseAttribute($objUser, $objAttribute->getId(), 0, true); } $objUser->objAttribute->next(); } $this->parseNewsletterLists($objUser); $this->attachJavaScriptFunction('accessSetWebsite'); $uploader = $this->getImageUploader(); $this->_objTpl->setVariable(array('ACCESS_SIGNUP_BUTTON' => '<input type="submit" name="access_signup" value="' . $_ARRAYLANG['TXT_ACCESS_CREATE_ACCOUNT'] . '" />', 'ACCESS_JAVASCRIPT_FUNCTIONS' => $this->getJavaScriptCode(), 'ACCESS_IMAGE_UPLOADER_ID' => $uploader->getId(), 'ACCESS_IMAGE_UPLOADER_CODE' => $uploader->getXHtml(), 'ACCESS_SIGNUP_MESSAGE' => implode("<br />\n", $this->arrStatusMsg['error']))); if (!$arrSettings['use_usernames']['status']) { if ($this->_objTpl->blockExists('access_user_username')) { $this->_objTpl->hideBlock('access_user_username'); } } // set captcha if ($this->_objTpl->blockExists('access_captcha')) { if ($arrSettings['user_captcha']['status']) { $this->_objTpl->setVariable(array('ACCESS_CAPTCHA_CODE' => \Cx\Core_Modules\Captcha\Controller\Captcha::getInstance()->getCode(), 'TXT_ACCESS_CAPTCHA' => $_CORELANG['TXT_CORE_CAPTCHA'])); $this->_objTpl->parse('access_captcha'); } else { $this->_objTpl->hideBlock('access_captcha'); } } // set terms and conditions if ($this->_objTpl->blockExists('access_tos')) { if ($arrSettings['user_accept_tos_on_signup']['status']) { $uriTos = CONTREXX_SCRIPT_PATH . '?section=Agb'; $this->_objTpl->setVariable(array('TXT_ACCESS_TOS' => $_ARRAYLANG['TXT_ACCESS_TOS'], 'ACCESS_TOS' => '<input type="checkbox" name="access_user_tos" id="access_user_tos"' . (!empty($_POST['access_user_tos']) ? ' checked="checked"' : '') . ' /><label for="access_user_tos">' . sprintf($_ARRAYLANG['TXT_ACCESS_ACCEPT_TOS'], $uriTos) . '</label>')); $this->_objTpl->parse('access_tos'); } else { $this->_objTpl->hideBlock('access_tos'); } } $this->_objTpl->parse('access_signup_form'); }