dedecms评论中调用会员头像的方法

时间:2014-08-07

 

dede_feedback中有个face字段。
但真正的头像face字段应该是在dede_member表中。

尝试在feedback模板里调用dede_member的face字段失败。

大体代码见下:

{dede:sql sql="select dede_member.face,username from dede_member cross join dede_feedback where dede_feedback.username=dede_member.uname"}
<li><img src="[field:face/]" width="52" height="52" /> [field:username/]</li>
{/dede:sql}                   //在全局可调出回复的会员的名字和头像

此上办法无效,估计需要先修改php代码。

有没有人有更好的思路或者解决办法?

解答:

1、    文件:\include\taglib\feedback.lib.php

2、找到函数:

3、将函数用以下文字替换

function lib_feedback(&$ctag,&$refObj)

{

global $dsql;

$attlist="row|12,titlelen|24,infolen|100";

FillAttsDefault($ctag->CAttribute->Items,$attlist);

extract($ctag->CAttribute->Items, EXTR_SKIP);

$innertext = trim($ctag->GetInnerText());

$totalrow = $row;

$revalue = ”;

if(empty($innertext))

{

$innertext = GetSysTemplets(‘tag_feedback.htm’);

}

$wsql = " where ischeck=1 ";

$equery = "SELECT * FROM `cmsxx_feedback` $wsql ORDER BY id DESC LIMIT 0 , $totalrow";

$ctp = new DedeTagParse();

$ctp->SetNameSpace(‘field’,’[',']‘);

$ctp->LoadSource($innertext);

$dsql->Execute(‘fb’,$equery);

$msql = new DedeSql(false);

while($arr=$dsql->GetArray(‘fb’))

{

$arr['title'] = cn_substr($arr['arctitle'],$titlelen);

$arr['msg'] = jstrim($arr['msg'],$infolen);

$arr['aid']=$arr['aid'];

//插入会员图像字段

$wmsql=" where userid=’".$arr['username']."’";

$mquery="select * from cmsxx_member $wmsql order by mid desc LIMIT 0,1";

$msql->Execute(‘mb’,$mquery);

if($row=$msql->GetArray(‘mb’))

{

$arr['userface']= $row['face'];

}

else

{

$arr['userface']="no";

}

//会员图像字段插入结束

foreach($ctp->CTags as $tagid=>$ctag)

{

if(!empty($arr[$ctag->GetName()]))

{

$ctp->Assign($tagid,$arr[$ctag->GetName()]);

}

}

$revalue .= $ctp->GetResult();

}

$msql->Close();

return $revalue;

}

4、调用方法:

{dede:feedback row=’10′ infolen=’50′}

<DIV class=newComment><IMG height=40 alt="[field:username function="(@me=='匿名' ? '游客' : @me)"/]"

src="[field:userface function="(@me=='no' ? '/member/images/dfboy.gif' : @me)"/]" width=40>

<P><SPAN>[field:username function="(@me=='匿名' ? '游客' : @me)"/] </SPAN> 评:

<A class=blue title=[field:title/] href="/plus/view.php?aid=[field:aid/]" target=_blank>[field:title function="cn_substr(@me,30)"/]</A></P>

<P>[field:msg /]…<A href="/plus/feedback.php?aid=[field:id/]" target=_blank>查看</A></P>

</DIV>

{/dede:feedback}

实现了调用评论及用户图像和文章title的链接,但是只是动态的文章链接,如果需要静态的,应该需要关联文章表,取出URL吧。

上一条:dedecms列表页、文章页评论数和收藏数调用方法 下一条:DEDECMS 文章排序方式和调用方法

相关文章

最新文章