示例#1
0
 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');
 }