Dedecms默認(rèn)模板內(nèi)容頁(yè)評(píng)論處有個(gè)不足的地方,就是用戶登錄之后還會(huì)出現(xiàn)那個(gè)提示用戶登錄的框子,天涯這里給出了以下解決方案,如果喜歡的朋友可以拿去。
首先我們給內(nèi)容頁(yè)模板寫(xiě)上一段JS腳本代碼,通過(guò)AJAX來(lái)判斷用戶是否登錄,從其中提取用戶登錄信息,JS代碼如下,將其插入到之間。
JS代碼:
<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>
即加上,用于判斷用戶是否已經(jīng)登錄。
下面我們來(lái)寫(xiě)一個(gè)PHP文件,用戶傳送數(shù)據(jù),將其保存為/member/userboxsta.php,其代碼如下:
<?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ú)窮