• [织梦吧]唯一域名:www.dedecms8.com,织梦DedeCMS学习平台.

当前位置: > DedeCMS教程 > Dedecms二次开发 >

织梦channelartlist调用结果排除指定typeid栏目数据(3)

来源: www.dedecms8.com 编辑:织梦吧 时间:2013-03-01点击:

<?php

 

if(!defined('DEDEINC')) exit('Request Error!');

require_once(DEDEINC.'/arc.partview.class.php');

 

function lib_channelartlist(&$ctag,&$refObj)

{

global $dsql,$envs,$_sys_globals;

 

//处理标记属性、innertext

$attlist = 'typeid|0,row|20,cacheid|,notypeid|0';

FillAttsDefault($ctag->CAttribute->Items,$attlist);

extract($ctag->CAttribute->Items, EXTR_SKIP);

$innertext = trim($ctag->GetInnerText());

$artlist = '';

//读取固定的缓存块

$cacheid = trim($cacheid);

if($cacheid !='') {

$artlist = GetCacheBlock($cacheid);

if($artlist!='') return $artlist;

}

if(empty($typeid))

{

$typeid = ( !empty($refObj->TypeLink->TypeInfos['id']) ?  $refObj->TypeLink->TypeInfos['id'] : 0 );

}

if($innertext=='') $innertext = GetSysTemplets('part_channelartlist.htm');

$totalnum = $row;

if(empty($totalnum)) $totalnum = 20;

 

//获得类别ID总数的信息

$typeids = array();

if($typeid==0 || $typeid=='top') {

$tpsql = " reid=0 And ispart<>2 And ishidden<>1 And channeltype>0 ";

}

else

{

if(!ereg(',',$typeid)) {

$tpsql = " reid='$typeid' And ispart<>2 And ishidden<>1 ";

}

else {

$tpsql = " id in($typeid) And ispart<>2 And ishidden<>1 ";

}

}

//否定指定ID

if($notypeid!=0) {

$tpsql = $tpsql."and not(id in($notypeid)) ";

}

$dsql->SetQuery("Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath 

                                       from `dede_arctype` where $tpsql order by sortrank asc limit $totalnum");

$dsql->Execute();

while($row = $dsql->GetArray()) {

$typeids[] = $row;

}

 

if(!isset($typeids[0])) return '';

 

$GLOBALS['itemindex'] = 0;

$GLOBALS['itemparity'] = 1;

for($i=0;isset($typeids[$i]);$i++)

{

$GLOBALS['itemindex']++;

$pv = new PartView($typeids[$i]['id']);

$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);

$pv->SetTemplet($innertext,'string');

$artlist .= $pv->GetResult();

$GLOBALS['itemparity'] = ($GLOBALS['itemparity']==1 ? 2 : 1);

}

//注销环境变量,以防止后续调用中被使用

$GLOBALS['envs']['typeid'] = $_sys_globals['typeid'];

$GLOBALS['envs']['reid'] = '';

if($cacheid !='') {

WriteCacheBlock($cacheid, $artlist);

}

return $artlist;

}

?>

 

About D8

  • ©2014 织梦吧(d8) DedeCMS学习交流平台
  • 唯一网址 www.DedeCMS8.com 网站地图
  • 联系我们 1170734538@qq.com ,  QQ