在 DedeCMS 中实现在顶层 banner 显示自定义登录信息,主要涉及前端模板的修改以及 AJAX 状态检测代码的引入。具体实现步骤如下:

修改头部模板文件
首先,找到并打开你当前使用的模板头部文件(通常是 head.htm 或 header.htm)。在顶层 banner 区域中,添加一个用于显示登录状态的容器(例如 <div>),并为其设置一个特定的 id,如 _userlogin。
引入 AJAX 检测脚本
在模板文件中(通常在 </head> 标签前或 </body> 标签前),引入 DedeCMS 自带的 AJAX 库,并编写用于检测登录状态的 JavaScript 函数。核心代码如下:
<script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script>
<script language="javascript" type="text/javascript">
function CheckLogin(){
var taget_obj = document.getElementById('_userlogin');
myajax = new DedeAjax(taget_obj,false,false,'','','');
myajax.SendGet2("{dede:global.cfg_cmspath/}/member/ajax_loginsta.php");
DedeXHTTP = null;
}
</script>
在 Banner 中放置调用代码
在你之前创建的 _userlogin 容器内,放置默认的未登录状态提示(如注册和登录按钮),并在其后调用 CheckLogin() 函数:
<div id="_userlogin">
<a href="/member/index_do.php?fmdo=user&dopost=regnew">注册</a>
<a href="/member/login.php">登录</a>
<script language="javascript" type="text/javascript">CheckLogin();</script>
</div>
当页面加载时,CheckLogin() 函数会向 /member/ajax_loginsta.php 发送请求。如果用户已登录,该脚本会返回用户的欢迎信息或自定义内容,并替换掉 div 中原有的“注册/登录”按钮;如果未登录,则保持原样。
自定义登录后的显示内容(进阶)
如果你希望登录后显示自定义的信息(例如:隐藏普通会员信息,仅对 VIP 会员显示特定内容),可以新建一个自定义的 PHP 文件(如 ajax_loginsta_c.php)放在 /member/ 目录下。在该文件中,通过判断会员级别($cfg_ml->fields['rank'])来输出不同的 HTML 内容,然后将上述 JavaScript 中的请求地址修改为你新建的文件路径即可。
完成以上代码修改后,记得在 DedeCMS 后台重新生成网站,即可在顶层 banner 看到自定义的登录信息效果。