Discuz功能調整-後臺控制Email必填功能
最近再因為朋友在Discuz上的一些特殊需求,他要求在註冊的時候希望Email不要有必填或者可以自己選擇何時要必填或者不必填等。
HF先找了一下Discuz官方網站是不是有相關修改,因為印象中Dz3.1好像有,可是好像Dz3.2以上就被移除了,好在網友 dicky57分享了如何修改,這邊也做一下紀錄。
首先打開路徑source/admincp/admincp_setting.php
然後查找
showsetting('setting_access_register_send_register_url', 'settingnew[sendregisterurl]',$setting['sendregisterurl'], 'radio'
在這個下方新增以下代碼
showsetting('setting_access_register_forge_email', 'settingnew[forgeemail]', $setting['forgeemail'], 'radio'
接下來再打開source/language/lang_admincp.php
然後搜尋以文字
個郵箱只允許註冊一個帳戶<br/>注意:只有在<a href="?action=setting&operation=mail">站
在這段文字下方添加以下文字
'setting_access_register_forge_email' => '取消註冊郵箱必填','setting_access_register_forge_email_comment' => '開啟後如果用戶不填寫註冊郵箱,將自動生成一個隨機郵箱地址'
最後再打開路徑source/class/class_member.php
然後搜尋
$email = strtolower(trim($_GET['email']));
if(empty($this->setting['ignorepassword'])) {
if($_GET['password'] !== $_GET['password2']) {
showmessage('profile_passwd_notmatch');
}
if(!$_GET['password'] || $_GET['password'] != addslashes($_GET['password'])) {
showmessage('profile_passwd_illegal');
}
$password = $_GET['password'];
} else {
$password = md5(random(10));
}
}
將下方整段替換成以下
$email = strtolower(trim($_GET['email']));
if(empty($email) && $_G['setting']['forgeemail']) {
$_GET['email'] = $email = strtolower(random(6)).'@'.$_SERVER['HTTP_HOST'];
}
if(empty($this->setting['ignorepassword'])) {
if($_GET['password'] !== $_GET['password2']) {
showmessage('profile_passwd_notmatch');
}
if(!$_GET['password'] || $_GET['password'] != addslashes($_GET['password'])) {
showmessage('profile_passwd_illegal');
}
$password = $_GET['password'];
} else {
$password = md5(random(10));
}
}
修改完畢後更新一下緩存,記得原始代碼要備份,以防出現問題可以還原。
原作者:dicky57
留言
張貼留言
留言時請注意句子內容,若有色情、廣告、引戰等都會刪除唷,請遵守網路規範及保持風度^____^
※基本上您問問題,HF都會盡最快速度來回您(基本上24H內),希望HF的回答及解釋可以替您解決問題。