在cms/ target=_blank class=infotextkey>帝国cms文章模板中,经常会使用到相关链接功能,比如用于调取相关文章、感兴趣的文章等,对于页面间权重传递也是很有帮助的。
有一个问题时,当相关内容较少时,内容显的空落落的,可以考虑显示当前栏目最热信息。
具体修改方法:
帝国cms相关链接,以帝国cms 7.0为例,代码 在/e/class/functions.php:
$keyboardtext='<?=GetKeyboard($ecms_gr[keyboard],$ecms_gr[keyid],$ecms_gr[classid],$ecms_gr[id],$class_r
[$ecms_gr[classid]][link_num])?>';
可见,相关链接信息是通过GetKeyboard得到,找到 GetKeyboard修改即可,在/e/class/functions.php文件中:
复制代码 代码示例:
// 取得相关链接
function GetKeyboard($keyboard,$keyid,$classid,$id,$link_num){
global $empire,$public_r,$class_r,$fun_r,$dbtbpre;
if($keyid&&$link_num)
{
$add="id in (".$keyid.")";
$tr=$empire->fetch1("select otherlinktemp,otherlinktempsub,otherlinktempdate from ".GetTemptb("ene
wspubtemp")." limit 1"); //取得相关链接模板
$temp_r=explode("[!--empirenews.listtemp--]",$tr[otherlinktemp]);
$key_sql=$empire->query("select id,newstime,title,isurl,titleurl,classid,titlepic,lastvolume fr
om {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$add." order by newstime desc limit $link_num");
while($link_r=$empire->fetch($key_sql))
{
//------------
$text=RepOtherTemp($temp_r[1],$link_r,$tr);
$text=str_replace('[!--no--]',$i,$text);
$text=str_replace('[!--state--]',$link_r[state],$text);
$text=str_replace('[!--lastvolume--]',$link_r[lastvolume],$text);
$keyboardtext.=$text;
//$keyboardtext.=RepOtherTemp($temp_r[1],$link_r,$tr);
}
$keyboardtext=$temp_r[0].$keyboardtext.$temp_r[2];
}
else
{
//---生成时加载一次
$keyid=GetKeyid($keyboard,$classid,0,$link_num);
if($keyid)
{
$fsql=$empire->query("update {$dbtbpre}ecms_".$class_r[$classid][tbname]."_data_1 set key
id='$keyid' where id='$id'");
$add="id in (".$keyid.")";
$tr=$empire->fetch1("select otherlinktemp,otherlinktempsub,otherlinktempdate from ".GetTe
mptb("enewspubtemp")." limit 1"); //取得相关链接模板
$temp_r=explode("[!--empirenews.listtemp--]",$tr[otherlinktemp]);
$key_sql=$empire->query("select id,newstime,title,isurl,titleurl,classid,titlepic,lastvol
ume from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$add." order by newstime desc limit $lin
k_num");
while($link_r=$empire->fetch($key_sql))
{
//-------------
$text=RepOtherTemp($temp_r[1],$link_r,$tr);
$text=str_replace('[!--no--]',$i,$text);
$text=str_replace('[!--state--]',$link_r[state],$text);
$text=str_replace('[!--lastvolume--]',$link_r[lastvolume],$text);
$keyboardtext.=$text; // www.jb200.com
//$keyboardtext.=RepOtherTemp($temp_r[1],$link_r,$tr);
}
$keyboardtext=$temp_r[0].$keyboardtext.$temp_r[2];
}
else //没有关键字时读取人气最高的几条信息
{
$add="";
$tr=$empire->fetch1("select otherlinktemp,otherlinktempsub,otherlinktempdate from ".GetTe
mptb("enewspubtemp")." limit 1"); //取得相关链接模板
$temp_r=explode("[!--empirenews.listtemp--]",$tr[otherlinktemp]);
$key_sql=$empire->query("select id,newstime,title,isurl,titleurl,classid,titlepic,lastvol
ume from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where order by onclick desc limit $link_num");
while($link_r=$empire->fetch($key_sql))
{
//----
$text=RepOtherTemp($temp_r[1],$link_r,$tr);
$text=str_replace('[!--no--]',$i,$text);
$text=str_replace('[!--state--]',$link_r[state],$text);
$text=str_replace('[!--lastvolume--]',$link_r[lastvolume],$text);
$keyboardtext.=$text;
//$keyboardtext.=RepOtherTemp($temp_r[1],$link_r,$tr);
}
$keyboardtext=$temp_r[0].$keyboardtext.$temp_r[2];
}
//--------
//$keyboardtext=$fun_r['NotLinkNews'];
}
return $keyboardtext;
}
官方代码中,在没有关键字时直接给出:
$keyboardtext=$fun_r['NotLinkNews'];
这显示无相关信息
这里做了一个无keyid时再去获取一次keyid,
$keyid=GetKeyid($keyboard,$classid,0,$link_num);
确实没有关键字时,再读取人气最高的几条信息:
$key_sql=$empire->query("select id,newstime,title,isurl,titleurl,classid,titlepic,lastvolume from {$dbt
bpre}ecms_".$class_r[$classid][tbname]." where order by onclick desc limit $link_num");