Как убрать проверку 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 адресом.
Пожалуйста, авторизуйтесь или зарегистрируйтесь для голосования.

25-07-2013 09:38
7230 Прочтений
