[小技巧]訪客留言時必須填寫訪客名稱

MODs Released by Other phpbb Sites
非官方認證通過之 MOD ,或許有安全性之疑慮,所有問題由原發表者回覆!

版主: 版主管理群

主題已鎖定
mit
星球公民
星球公民
文章: 247
註冊時間: 2003-10-23 18:26
來自: 壞鄰居社區
聯繫:

[小技巧]訪客留言時必須填寫訪客名稱

文章 mit »

之前Martinet大哥也發表過一個小技巧,
讓訪客發表時必須填寫訪客名稱。
(請見http://phpbb-tw.net/phpbb/viewtopic.php?t=21151)
使用了m大哥的方法,訪客如果發表時沒有填寫名稱\r
在按「送出」的時候便會跳出警告視窗~

但是m大哥使用的方法中的:
if(!document.post.username.value){
formErrors = "請填您的訪客名稱";
}
我發現這如果在使用者已登入的狀況下
因為這個document.post.username.value不存在(變成null)
因此使用者發文的時候網頁會產生一些小小的錯誤...
(應該完全不會影響發文的功能,純粹個人太龜毛...XD...)

於是我自己又想了一個辦法,
以下的方法除了限制訪客發文一定要填寫訪客名稱之外
還包括把訪客發表時的「會員名稱」欄位改成「訪客名稱」
給大家參考參考...

打開include/function_post.php

找到:

代碼: 選擇全部

	if (!empty($username))
	{
		$username = trim(strip_tags($username));

		if (!$userdata['session_logged_in'] || ($userdata['session_logged_in'] && $username != $userdata['username']))
		{
			include($phpbb_root_path . 'includes/functions_validate.'.$phpEx);

			$result = validate_username($username);
			if ($result['error'])
			{
				$error_msg .= (!empty($error_msg)) ? '<br />' . $result['error_msg'] : $result['error_msg'];
			}
		}
		else
		{
			$username = '';
		}
	}
再下面加上:

代碼: 選擇全部

	else if ( empty($username) && !$userdata['session_logged_in']) 
	{
			$error_msg .= (!empty($error_msg)) ? '<br />' . $lang['Empty_guestname'] : $lang['Empty_guestname'];
	}
打開post_body.tpl

找到:

代碼: 選擇全部

	<!-- BEGIN switch_username_select -->
	<tr> 
		<td class="row1"><span class="gen"><b>{L_USERNAME}</b></span></td>
把裡面的

代碼: 選擇全部

{L_USERNAME}改成{L_GUESTNAME}
打開posting.php

找到:

代碼: 選擇全部

	'L_SUBJECT' => $lang['Subject'],
在上面加上:

代碼: 選擇全部

	'L_GUESTNAME' => $lang['Guestname'],
打開lang_main.php

找到:

代碼: 選擇全部

$lang['Empty_username'] = '請填寫您的會員名稱';
在下面加上:

代碼: 選擇全部

$lang['Empty_guestname'] = '請填寫您的訪客名稱';
$lang['Guestname'] = '訪客名稱';
儲存所有檔案。
圖檔
主題已鎖定

回到「非官方認證外掛」