Навигация по каталогу статей
Необходимость убрать проверку E-mail
Опубликовал  GMan1990 GMan1990 Добавлено  25-07-2013 09:38 25-07-2013 09:38 6726  Прочтений 6726 Прочтений  0 Комментариев 0 Комментариев
printer

Как убрать проверку E-mail'а в редактировании профиля и при регистрации?

В связи с установкой на сайт, регистрации через социальные сети посредством API, отпала необходимость в заведении обязательного электронного ящика для пользователя. В настройках движка, обязательную проверку не отключить, поэтому будем ковыряться в файлах.

И так, нам понадобятся  2 файла расположенные в директории: includes/classes

Файлы: UserFields.class.php и UserFieldsInput.class.php

Сначала редактируем первый файл, добавляем в него функцию:  basicInputFieldEmail


    private function basicInputFieldEmail($name, $text, $length, $isRequired = "", $type = "text", $haveValue = true) {
        if ($haveValue) {
            $value = isset($this->userData[$name]) ? $this->userData[$name] : "";
            $value = isset($_POST[$name]) ? stripinput($_POST[$name]) : $value;
        } else {
            $value = "";
        }
        $returnHTML = "<tr>\n";
        $returnHTML .= "<td class='".$class."' width='150'><label for='".$name."'>".$text.$required."</label></td>\n";
        $returnHTML .= "<td class='".$class."'>";
        $returnHTML .= "<input type='".$type."' id='".$name."' name='".$name."' maxlength='".$length."' class='textbox' value='".$value."' style='width:200px;'/>";
        $returnHTML .= "</td>\n</tr>\n";
        return $returnHTML;
    }

 

Затем ищем строчку:

$this->html .= $this->basicInputField("user_email", $locale['u128'], "100", $locale['u126']);

и заменяем е, на:

$this->html .= $this->basicInputFieldEmail("user_email", $locale['u128'], "100", $locale['u126']);

Добрались мы и до файла: UserFieldsInput.class.php

Ищем в н,м функцию: private function _setUserEmail() и приводим е, к следующему виду:

private function _setUserEmail() {
		global $locale, $settings;

		$this->_userEmail = (isset($_POST['user_email']) ? stripinput(trim(preg_replace("/ +/i", " ", $_POST['user_email']))) : "");

		
			// Require user password for email change
			if (($this->_isValidCurrentPassword) || ($this->_userEmail == '')) {
				// Require a valid email account
				if ((preg_check("/^[-0-9A-Z_\.]{1,50}@([-0-9A-Z_\.]+\.){1,50}([0-9A-Z]){2,4}$/i", $this->_userEmail)) || ($this->_userEmail == '')) {
					$email_domain = substr(strrchr($this->_userEmail, "@"), 1);
					if (dbcount("(blacklist_id)", DB_BLACKLIST, "blacklist_email='".$this->_userEmail."' OR blacklist_email='".$email_domain."'") != 0) {
						$this->_setError("user_email", $locale['u124']);
					} else {
						$email_active = dbcount("(user_id)", DB_USERS, "user_email='".$this->_userEmail."'");
						$email_inactive = dbcount("(user_code)", DB_NEW_USERS, "user_email='".$this->_userEmail."'");
						if (($email_active == 0 && $email_inactive == 0) || ($this->_userEmail == '')) {
							if ($this->verifyNewEmail && $settings['email_verification'] == "1") {
								$this->_verifyNewEmail();
							} else {
								$this->_userLogFields[] = "user_email";
								$this->_setDBValue("user_email", $this->_userEmail);
							}
						} else {
							$this->_setError("user_email", $locale['u125']);
						}
					}
				} else {
					$this->_setError("user_email", $locale['u123']);
				}
			} else {
				$this->_setError("user_email", $locale['u156']);
			}
		}

 

И на этом вс,. После всех наших манипуляций, мы теперь можем обновлять наш профиль с пустым Email адресом.

Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, авторизуйтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.