帝国cms获取相关链接功能(other.link),显示自定义字段
2021-06-06 08:01:31
由于我使用手工链接,所以只能用标签other.link
但是只能显示限定的title、oldtitle、titleurl、newstime有限的几个字段
于是通过自定义函数解决了这个问题
修改e\class\userfun.php,增加下列函数
// 显示相关链接
// http://www.luyisoft.com/
function Relate_links(){
global $empire,$public_r,$class_r,$fun_r,$dbtbpre,$class_r,$navinfor;
$keyid=$navinfor['keyid'];
$classid=$navinfor['classid'];
$id=$navinfor['id'];
$link_num=$class_r[$classid]['link_num'];
if(!$link_num){
return $fun_r['NotLinkNews'];
}
$tr=$empire->fetch1("select otherlinktemp,otherlinktempsub,otherlinktempdate from ".GetTemptb("enewspubtemp")." limit 1");
// var_dump($tr);
$temp_r=explode("[!--empirenews.listtemp--]",$tr[otherlinktemp]);
if($keyid){
$add="id in (".$keyid.")";
}else{
return '<script>$(".nav-tabs.nav>li:contains(\'视频\')").hide();</script>';
// $add=" 1=2 ";
// $e=$id+$num;
// $s=$id-$num;
// $add=" classid=".$classid." and id>".$s." and id<".$e;
}
$key_sql=$empire->query("select id,newstime,title,isurl,titleurl,classid,titlepic,zbkssj from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$add." order by newstime desc limit $link_num");
while($link_r=$empire->fetch($key_sql)){
if($link_r['id']==$id){
continue;
}
//$keyboardtext.=RepOtherTemp($temp_r[1],$link_r,$tr);
$keyboardtext.=RepOtherTempJN($temp_r[1],$link_r,$tr);
}
if(empty($keyboardtext)){
return $fun_r['NotLinkNews'];
// return 'no';
}
$keyboardtext=$temp_r[0].$keyboardtext.$temp_r[2];
return $keyboardtext;
}
function RepOtherTempJN($temptext,$r,$tr){
global $public_r,$class_r;
$title=sub($r[title],0,$tr['otherlinktempsub'],false);
$r['newstime']=date($tr['otherlinktempdate'],$r['newstime']);
$titlelink=sys_ReturnBqTitleLink($r);//标题链接
$temptext=str_replace("[!--title--]",$title,$temptext);
$temptext=str_replace("[!--oldtitle--]",$r[title],$temptext);
$temptext=str_replace("[!--titleurl--]",$titlelink,$temptext);
$temptext=str_replace("[!--newstime--]",$r[newstime],$temptext);
$temptext=str_replace("[!--zbkssj--]",$r[zbkssj],$temptext);
if(empty($r[titlepic]))
{
$titlepic=$public_r[newsurl]."e/data/images/notimg.gif";
}
else
{
$titlepic=$r[titlepic];
}
$temptext=str_replace("[!--titlepic--]",$titlepic,$temptext);
return $temptext;
}
使用: 内容页需要使用相关链接的地方<?=Relate_links()?>
但是只能显示限定的title、oldtitle、titleurl、newstime有限的几个字段
于是通过自定义函数解决了这个问题
修改e\class\userfun.php,增加下列函数
// 显示相关链接
// http://www.luyisoft.com/
function Relate_links(){
global $empire,$public_r,$class_r,$fun_r,$dbtbpre,$class_r,$navinfor;
$keyid=$navinfor['keyid'];
$classid=$navinfor['classid'];
$id=$navinfor['id'];
$link_num=$class_r[$classid]['link_num'];
if(!$link_num){
return $fun_r['NotLinkNews'];
}
$tr=$empire->fetch1("select otherlinktemp,otherlinktempsub,otherlinktempdate from ".GetTemptb("enewspubtemp")." limit 1");
// var_dump($tr);
$temp_r=explode("[!--empirenews.listtemp--]",$tr[otherlinktemp]);
if($keyid){
$add="id in (".$keyid.")";
}else{
return '<script>$(".nav-tabs.nav>li:contains(\'视频\')").hide();</script>';
// $add=" 1=2 ";
// $e=$id+$num;
// $s=$id-$num;
// $add=" classid=".$classid." and id>".$s." and id<".$e;
}
$key_sql=$empire->query("select id,newstime,title,isurl,titleurl,classid,titlepic,zbkssj from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$add." order by newstime desc limit $link_num");
while($link_r=$empire->fetch($key_sql)){
if($link_r['id']==$id){
continue;
}
//$keyboardtext.=RepOtherTemp($temp_r[1],$link_r,$tr);
$keyboardtext.=RepOtherTempJN($temp_r[1],$link_r,$tr);
}
if(empty($keyboardtext)){
return $fun_r['NotLinkNews'];
// return 'no';
}
$keyboardtext=$temp_r[0].$keyboardtext.$temp_r[2];
return $keyboardtext;
}
function RepOtherTempJN($temptext,$r,$tr){
global $public_r,$class_r;
$title=sub($r[title],0,$tr['otherlinktempsub'],false);
$r['newstime']=date($tr['otherlinktempdate'],$r['newstime']);
$titlelink=sys_ReturnBqTitleLink($r);//标题链接
$temptext=str_replace("[!--title--]",$title,$temptext);
$temptext=str_replace("[!--oldtitle--]",$r[title],$temptext);
$temptext=str_replace("[!--titleurl--]",$titlelink,$temptext);
$temptext=str_replace("[!--newstime--]",$r[newstime],$temptext);
$temptext=str_replace("[!--zbkssj--]",$r[zbkssj],$temptext);
if(empty($r[titlepic]))
{
$titlepic=$public_r[newsurl]."e/data/images/notimg.gif";
}
else
{
$titlepic=$r[titlepic];
}
$temptext=str_replace("[!--titlepic--]",$titlepic,$temptext);
return $temptext;
}
使用: 内容页需要使用相关链接的地方<?=Relate_links()?>