帝国CMS 8.0的头像系统改变了存放方式,头像存放在 /d/file/efupic/ 目录下按ID分层存放,需要用 eMember_UpicReturnUrl() 函数才能取得正确路径。但JS调用登录状态模板不支援直接执行PHP函数,导致无法正确显示头像。
我的解决方法是: 第一步,打开:
/e/member/login/loginjs.php
第二步,找到这行:
@include(ECMS_PATH.'c/ecachetemp/emtemp/esp_loginjs.php');
在它前面加入:
$psAvatar=eMember_UpicReturnUrl($r['userid'],$r['upic']);
第三步,在后台JS调用登录状态模板已登入那段,头像使用:
<img src="<?=$psAvatar?>" alt="头像" />
原理: loginjs.php 已经查询了会员资料包含 upic 栏位,我们在include缓存模板前先用PHP计算好完整头像URL存入 $psAvatar,模板再直接输出这个变量,绕过了模板不支援PHP函数的限制。
不知道还有其他方法?
|