帝国 CMS 8.0 JS 登录模板调用会员头像教程

帝国 CMS 8.0 自带了 JS 调用登录模板(loginjs.php),很多网站都会用它来显示顶部登录状态。不过,在调用会员头像时,不少站长会直接拼接头像路径,例如:

这种写法仅适用于 JPG 格式头像,当会员上传 PNG、GIF、WEBP 等格式头像时,就会出现头像无法显示的问题。因此,建议使用帝国 CMS 官方提供的头像函数进行调用。

一、loginjs.php 已经查询了 upic 字段

打开:

/e/member/login/loginjs.php

可以看到系统已经查询了会员头像类型字段:

$r=$empire->fetch1("select ". eReturnSelectMemberF('userid,username,groupid,userfen,money,userdate,havemsg,checked,isot,phno,upic') ." from ".eReturnMemberTable()."...");

其中:

  • $r['userid']:会员 ID
  • $r['upic']:头像图片类型

因此,可以直接调用官方函数:

<?=eMember_UpicReturnUrl($r['userid'],$r['upic'],1)?>

二、不要使用 [!--userpic--] 模板变量

很多人会尝试这样写:

实际上,这是错误的。

原因:

/c/ecachetemp/emtemp/esp_loginjs.php 是一个 PHP 文件,并不是帝国 CMS 的模板解析文件,因此不会自动解析:

[!--userpic--]

页面最终输出的内容仍然会是:

浏览器自然无法找到对应的图片地址。

三、正确写法

由于 esp_loginjs.php 本身就是 PHP 文件,因此可以直接调用 PHP 代码:

<?=$myusername?>

这样无需新增任何模板变量,也无需修改模板解析程序。

四、完整示例

document.write(" \" onerror=\"this.src='/e/data/images/nouserpic.gif';\" alt=\"<?=$myusername?>\"> <?=$myusername?>  ");

五、为什么不能直接拼接头像路径?

例如:

/d/file/efupic/000/00/00/[!--userid--].jpg

这种方式存在以下问题:

  • 仅支持 JPG 格式头像。
  • PNG、GIF、WEBP 等格式全部无法显示。
  • 如果以后帝国 CMS 修改头像存储规则,还需要手动修改代码。

而官方函数会根据会员的 upic 字段自动生成正确的头像地址,因此兼容所有系统支持的图片格式。

六、推荐写法

在 JS 登录模板中,建议统一使用:

<?=eMember_UpicReturnUrl($r['userid'],$r['upic'],1)?>

这样可以自动支持:

  • JPG
  • GIF
  • PNG
  • BMP
  • JPEG
  • WEBP

同时,当头像文件不存在时,会自动返回系统默认头像,避免页面出现图片裂图或 404 错误,是帝国 CMS 8.0 调用会员头像最推荐的方式。

上一篇帝国 CMS 8.0 调用会员头像完整教程 下一篇帝国cms返回上一页进入提示页面,一直循环解决办法
请我喝杯咖啡
如果喜欢本站的内容,欢迎请我喝杯咖啡
支付宝
微信支付
感谢你的支持
支付宝二维码
打开支付宝扫描二维码(崔*杰)
感谢你的支持
微信支付二维码
打开微信扫描二维码(崔*杰)