帝国cms根据Tags 调用推荐相关文章,绝对好用!帝国cms根据Tags 调用推荐相关文章,绝对好用!

生命不息,
折腾不止!

帝国cms根据Tags 调用推荐相关文章,绝对好用!

之前本人也发过求助帖,有热心的朋友告知了办法,但是苦于自己不懂php,不懂编程,只能在网上搜索现成的。

但,关于这方面的现成文章还真是没有,或者说很难找到。

皇天不负有心人,就在昨天终于找到了。

可是代码要收费,30积分,也就是30大洋,咬咬牙支付宝充值买了。

现在免费分享给有需要的朋友。

以下是具体实现过程:

以下代码放到/e/class/userfun.php里!

<?php
function user_otherlink($limit=5){
        global $dbtbpre,$empire,$navinfor,$class_r;
    if($navinfor[infotags]){
            $classid=(int)$classid;
        $limit=(int)$limit;
        $tbname=$class_r[$navinfor[classid]][tbname];
        $tagarr=explode(",",$navinfor[infotags]);
        $arr=array();
        $num=ceil($limit/count($tagarr));
        foreach($tagarr as $k=>$v){
                        if(count($tagarr)==$k+1){
                                $num=$limit-count($arr);
                        }else{
                                if($i<$num){
                                        $num=ceil(($limit-count($arr))/count($tagarr));
                                }                
                        }
            $t=$empire->fetch1("select tagid,num from {$dbtbpre}enewstags where tagname='$v'");
                        if($t[tagid]){
                                $sql=$empire->query("select id from {$dbtbpre}enewstagsdata where tagid=$t[tagid]");
                                $i=0;
                                while($s=$empire->fetch($sql)){
                                        if(in_array($s[id],$arr)||$s[id]==$navinfor[id]){
                                                continue;
                                        }else{
                                                $arr[]=$s[id];
                                                $i++;
                                        }
                                        if($i==$num){
                                                break;
                                        }
                                        if(count($arr)==$limit){
                                                break 2;
                                        }
                                }
                                if($t[num]>$num){
                                        $linshi=$t[tagid];
                                }
                        } 
        }
        if(count($arr)>0){
                        $inid=implode(",",$arr);
                        if(count($arr)<$limit&&$linshi){
                                $sql=$empire->query("select id from {$dbtbpre}enewstagsdata where tagid=$linshi and id not in($inid)");
                                while($s=$empire->fetch($sql)){
                                        $arr[]=$s[id];
                                        if(count($arr)==$limit){
                                                break;
                                        }
                                }
                        }
                        $inid=implode(",",$arr);
                        $str="";
                        $news=$empire->query("select id,title,titleurl,titlepic from {$dbtbpre}ecms_{$tbname} where id in($inid)");
                        while($n=$empire->fetch($news)){
                                $str.='<li><a href="'.$n[titleurl].'">'.$n[title].'</a></li>';
                        }        
                }
        return $str;
           }
}
?>

内容页模板用以下代码调用:5为显示数量 自己修改

<?=user_otherlink(5)?>

 

 

 

方式2:帝国CMS实现通过用tag标签调用相关文章

来源:https://www.daixiao360.cn/jc/752.html

一、自定义函数

自定义函数 user_OtherLink ,将此函数放入 e\class\userfun.php 文件中。

//根据tag获取相关信息
function user_OtherLink($num,$classid=0,$mid=0){
    global $dbtbpre,$empire,$navinfor,$class_r;
    if(empty($navinfor['infotags'])){
        return '暂无相关信息';
    }
    if($mid&&$classid&&$class_r[$classid]['modid']!=$mid){
        return '暂无相关信息';
    }
    $tr=$empire->fetch1("select otherlinktemp,otherlinktempsub,otherlinktempdate from ".GetTemptb("enewspubtemp")." limit 1");
    $temp_r=explode("[!--empirenews.listtemp--]",$tr['otherlinktemp']);
    $str='';
    $tagsql=$empire->query("select * from {$dbtbpre}enewstagsdata where id='$navinfor[id]' and classid='$navinfor[classid]'");
    $i=0;
    $isprint=array();
    while($tagr=$empire->fetch($tagsql)){
        if($i>=$num){
            break;
        }
        $gsql=$empire->query("select * from {$dbtbpre}enewstagsdata where tagid='$tagr[tagid]'");
        while($gr=$empire->fetch($gsql)){
            $myprint='id'.$gr['id'].'class'.$gr['classid'];
            if(array_search($myprint,$isprint)!==false){
                continue;
            }
            $isprint[]=$myprint;
            if($classid&&$classid!=$gr['classid']){
                continue;
            }
            if($mid&&$mid!=$gr['mid']){
                continue;
            }
            if($gr['id']==$navinfor['id']&&$gr['classid']==$navinfor['classid']){
                continue;
            }
            $tbname=$class_r[$gr['classid']]['tbname'];
            if(!$tbname||InfoIsInTable($tbname)){
                continue;
            }
            $r=$empire->fetch1("select * from {$dbtbpre}ecms_".$tbname." where id='$gr[id]' limit 1");
            if(!$r['id']){
                continue;
            }
            $str.=RepOtherTemp($temp_r[1],$r,$tr);
            $i+=1;
            if($i>=$num){
                break;
            }
        }
    }
    $keyboardtext=$temp_r[0].$str.$temp_r[2];
    if($str){
        return $keyboardtext;
    }else{
        return '暂无相关信息';
    }
}

二、 使用方法:

函数说明:user_OtherLink(调用条数,指定栏目id,指定模型id) ;

相关文章模板采用的是公共模板里的相关信息模板。

调用示例:

<?=user_OtherLink(10,0,1)?>

 

赞() 打赏
未经允许不得转载:我的博客 » 帝国cms根据Tags 调用推荐相关文章,绝对好用!
分享到: 更多 (0)

评论 4

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    这是评论测试

    DUX主题小秘7个月前 (09-17)回复
    • 飞歌导航东方红烦得很

      themebetter主题小秘3周前 (04-08)回复
  2. #2

    这是新的一条评论

    DUX主题小秘7个月前 (09-17)回复
  3. #3

    未来一年,中国的移动支付市场会是什么样?

    DUX主题小秘7个月前 (09-17)回复

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

大前端WP主题 更专业 更方便

联系我们 联系我们