织梦dedecms在栏目页调用其它相关栏目的信息及相关栏目下的文章列表

比如公告栏目本身包含新闻及商品两个相关栏目,在后台设置为相关后,在公告的前台列表页中,我可以自动调用相关的栏目名称,链接,及下属的文章列表.这里其实有两个调用循环,先循环调用本栏目的相关栏目,然后,根据得到的栏目typeid,再循环调用该栏目下的文章内容.里面的难点是怎么得到文章的静态链接
我首先需要在dede_arctype这个栏目表中,增加一个typelist字段,表示相关栏目.字段内容为 新闻及商品栏目的id,多个用逗号分开.
效果图,后台先设置好公告栏目的相关栏目.
这里写图片描述

后台,文章内容归类

这里写图片描述

前台效果

这里写图片描述

然后,在模板中增加

这里是公告栏目列表页<br/>
 {dede:type}[field:id function='get_typelist(@me)'/]{/dede:type}

get_typelist()这个为在include/extend.func.php 中自定义的函数,内容为

function get_typelist($typeid){
 global $dsql;  
    $rs=$dsql->getOne("select * from #@__arctype where id='$typeid'"); 
        $arrs=explode(",",$rs['typelist']);  
       
		$typelist='';
		
		
		//栏目循环开始
        foreach($arrs as $v){
		$get_types=get_types($v);

		$typedir=str_replace('{cmspath}','',$get_types['typedir']);
		$typelist.='<br/><a href="'.$typedir.'">'.$get_types['typename'].'</a>';
		
		
		//文章循环开始
		$sql="select a.id as aid, t.id as tid,typeid,senddate,title,ismake,arcrank,namerule,typedir From #@__archives a, #@__arctype t where a.typeid = t.id and a.typeid = '$v' and a.arcrank>-1 order by a.id desc limit 10";
		//如果有自定义字段,需要三个表联合查询,可能有重复的数据.需要加上group by 如下面的写法
		//$sql="select s.* ,a.id as aid, t.id as tid,senddate,title,ismake,arcrank,namerule,typedir From #@__archives a ,#@__arctype t , #@__addonshangpin s where a.typeid = t.id and s.typeid = t.id and a.typeid = '$v' and a.arcrank>-1 group by a.id order by a.id desc limit 10";
	//	print_r($sql);exit;
		$dsql->SetQuery($sql);  
$dsql->Execute();   
 $list='';  
while($row = $dsql->GetArray()){ 
$list.= '<li><a title="'.$row['title'].'" href="'.GetFileUrl($row['aid'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],$row['arcrank'],$row['namerule'],$row['typedir'],$row['money']).'">'.cn_substr($row['title'], 50).'</li>';  
}
$typelist=$typelist.$list;
 
        }
        return $typelist;  
        
}  
//织梦根据栏目编号typeid调用typename栏目名 ,url等 
function get_types($typeid){  
    global $dsql;  
    $rs=$dsql->getOne("select typename,typedir from #@__arctype where id='$typeid'");  
return $rs;  
}  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值