【标签】为什么友情链接没有显示出正确的链接地址?
问题:在模板里调用友情链接标签时,前台显示出的链接地址并不是后台添加设置的地址,这是什么原因?
分析:首先查看模板里,发现调用标签代码是这样的(-----友情链接的模型ID是为7)
{PE.Label id="友情链接列表" bindStyle="图片式" titleLength="0" nodes="1208" models="7" bindModel="0" span="div" class="lj" displayTips="true"/}
看上去没有什么问题,但经过分析数据表,发现设置链接地址的字段是SiteUrl,似乎标签里没有读取到这个值,怀疑 bindModel 参数设置问题,那么再到标签管理里去查看这个标签,可以在最后的标签体代码处查到设置代码是这样的
INNER JOIN PE_SpecialInfos SI ON (CM.ItemID = SI.GeneralID)
我们注意到红色标识出的代码行,我们从这里查询到 pe:GetSqlSnippet() 函数的定义:http://tech.powereasy.net/DeveloperNetwork/InsideStaticLabel3.0/
这个函数根据给定的ID值获取到相应的模型数据表,当调用标签里设置为ID的值为0的时候(即标签示例处),标签根据代码条件设置,就忽略了这个参数的定义,造成SQL语句无法联合查询到友情链接模型数据表,那么问题就在这里了,我们只要设置正确的链接模型ID值给这个 pe:GetSqlSnippet() 函数即可。
解决:修改标签的调用代码,给 bindModel 参数指定好友情链接模型ID。
{PE.Label id="友情链接列表" bindStyle="图片式" titleLength="0" nodes="1208" models="7" bindModel="7" span="div" class="lj" displayTips="true"/}