Dedecms默認(rèn)模板內(nèi)容頁(yè)評(píng)論處有個(gè)不足的地方,就是用戶登錄之后還會(huì)出現(xiàn)那個(gè)提示用戶登錄的框子,天涯這里給出了以下解決方案,如果喜歡的朋友可以拿去。
首先我們給內(nèi)容頁(yè)模板寫上一段JS腳本代碼,通過(guò)AJAX來(lái)判斷用戶是否登錄,從其中提取用戶登錄信息,JS代碼如下,將其插入到<head></head>之間。
JS代碼:
Copy code
<script language="javascript" src="{dede:global name='cfg_cmspath'/}/include/dedeajax2.js"></script>
<script language="javascript">
function CheckUser(){
var taget_obj = document.getElementById('_userboxform');
myajax = new DedeAjax(taget_obj,false,false,"","","");
myajax.SendGet2("{dede:global name="cfg_memberurl"/}/userboxsta.php");
DedeXHTTP = null;
}
</script>
然后我們修改下內(nèi)容頁(yè)部分的代碼
找到:
<div class="userbox">
<dl>
<dd class="mtop">
<strong>用戶名:</strong><input name="username" class="username" type="text" maxlength="20" />
<strong>密碼:</strong><input name="pwd" class="password" type="password" maxlength="20" />
</dd>
將其修改為
<div class="userbox">
<dl>
<dd class="mtop">
<span id="_userboxform">
<strong>用戶名:</strong><input name="username" class="username" type="text" maxlength="20" />
<strong>密碼:</strong><input name="pwd" class="password" type="password" maxlength="20" />
</span>
</dd>
即加上<span id="_userboxform">,用于判斷用戶是否已經(jīng)登錄。
下面我們來(lái)寫一個(gè)PHP文件,用戶傳送數(shù)據(jù),將其保存為/member/userboxsta.php,其代碼如下:
Copy code
<?php
header("Pragma:no-cache\r\n");
header("Cache-Control:no-cache\r\n");
header("Expires:0\r\n");
header("Content-Type: text/html; charset=gb2312");
//系統(tǒng)設(shè)置為維護(hù)狀態(tài)可訪問(wèn)
$cfg_IsCanView = true;
require_once(dirname(__FILE__)."/../include/inc_memberlogin.php");
$cfg_ml = new MemberLogin();
if(empty($cfg_ml->M_ID)){ echo ""; exit(); }
$uid = $cfg_ml->M_LoginID;
?>
<strong>歡迎您</strong>[<?php echo $cfg_ml->M_UserName?>],現(xiàn)在你可以直接發(fā)布留言
這樣,重新更新下HTML,然后登錄用戶看看,是不是那個(gè)小bug解決了啊。
引申:Dedecms很多東西可以拿來(lái)借用,這個(gè)BUG修復(fù)方法其實(shí)使用的是用戶登錄樣例,大家可以更深入研究Dedecms,其樂(lè)無(wú)窮。