帝国cms相关链接无内容时调用当前栏目最热信息的方法
2014-07-10 站长 站长日志
这篇文章主要为大家分享下帝国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("enewspubtemp")." limit 1");//取得相关链接模板 $temp_r=explode("[!--empirenews.listtemp--]",$tr[otherlinktemp]); $key_sql=$empire->query("select id,newstime,title,isurl,titleurl,classid,titlepic,lastvolume from {$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 keyid='$keyid' where id='$id'"); $add="id in (".$keyid.")"; $tr=$empire->fetch1("select otherlinktemp,otherlinktempsub,otherlinktempdate from ".GetTemptb("enewspubtemp")." limit 1");//取得相关链接模板 $temp_r=explode("[!--empirenews.listtemp--]",$tr[otherlinktemp]); $key_sql=$empire->query("select id,newstime,title,isurl,titleurl,classid,titlepic,lastvolume from {$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 { $add=""; $tr=$empire->fetch1("select otherlinktemp,otherlinktempsub,otherlinktempdate from ".GetTemptb("enewspubtemp")." limit 1");//取得相关链接模板 $temp_r=explode("[!--empirenews.listtemp--]",$tr[otherlinktemp]); $key_sql=$empire->query("select id,newstime,title,isurl,titleurl,classid,titlepic,lastvolume 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 {$dbtbpre}ecms_".$class_r[$classid][tbname]." where order by onclick desc limit $link_num");