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