| |
function lib_channel(&$ctag,&$refObj) |
| |
global $_sys_globals,$envs,$dsql; |
| |
$attlist = "typeid|0,reid|0,row|100,col|1,type|son,currentstyle|"; |
| |
FillAttsDefault($ctag->CAttribute->Items,$attlist); |
| |
extract($ctag->CAttribute->Items, EXTR_SKIP); |
| |
$innertext = $ctag->GetInnerText(); |
| |
$cacheid = trim($cacheid); |
| |
$likeType = GetCacheBlock($cacheid); |
| |
if($likeType != '') return $likeType; |
| |
if(empty($typeid) && $envs['typeid']!=0) |
| |
$typeid = $envs['typeid']; |
| |
if($type==''||$type=='sun') $type="son"; |
| |
if($innertext=='') $innertext = GetSysTemplets("channel_list.htm"); |
| |
if($reid==0 && $typeid>0) |
| |
$dbrow = $dsql->GetOne("Select reid From dede_arctype where id='$typeid' "); |
| |
if(is_array($dbrow)) $reid = $dbrow['reid']; |
| |
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description |
| |
From dede_arctype where reid=0 And ishidden<>1 order by sortrank asc limit 0,$row"; |
| |
//if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid']; |
| |
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description |
| |
From dede_arctype where reid='$typeid' And ishidden<>1 order by sortrank asc limit 0,$row"; |
| |
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description |
| |
From `dede_arctype` where reid='$reid' And ishidden<>1 order by sortrank asc limit 0,$row"; |
| |
$dtp2 = new DedeTagParse(); |
| |
$dtp2->SetNameSpace("field","[","]"); |
| |
$dtp2->LoadSource($innertext); |
| |
//检查是否有子栏目,并返回rel提示(用于二级菜单) |
| |
if(ereg(':rel', $innertext)) $needRel = true; |
| |
if(empty($sql)) return ''; |
| |
$totalRow = $dsql->GetTotalRow(); |
| |
$GLOBALS['autoindex'] = 0; |
| |
for($i=0;$i < $line;$i++) |
| |
if($col>1) $likeType .= "rn" ; |
| |
if($col>1) $likeType .= "rn"; |
| |
if($row=$dsql->GetArray()) |
| |
$row['sonids'] = $row['rel'] = ''; |
| |
$row['sonids'] = GetSonIds($row['id'], 0, false); |
| |
if($row['sonids']=='') $row['rel'] = ''; |
| |
else $row['rel'] = " rel='dropmenu{$row['id']}'"; |
| |
if( ($row['id']==$typeid || ($topid==$row['id'] && $type=='top') ) && $currentstyle!='' ) |
| |
$linkOkstr = $currentstyle; |
| |
$row['typelink'] = GetOneTypeUrlA($row); |
| |
$linkOkstr = str_replace("~rel~",$row['rel'],$linkOkstr); |
| |
$linkOkstr = str_replace("~id~",$row['id'],$linkOkstr); |
| |
$linkOkstr = str_replace("~typelink~",$row['typelink'],$linkOkstr); |
| |
$linkOkstr = str_replace("~typename~",$row['typename'],$linkOkstr); |
| |
$row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row); |
| |
if(is_array($dtp2->CTags)) |
| |
foreach($dtp2->CTags as $tagid=>$ctag){ |
| |
if(isset($row[$ctag->GetName()])) |
| |
$dtp2->Assign($tagid,$row[$ctag->GetName()]); |
| |
elseif (preg_match('/^sonchannel[0-9]*$/',$ctag->GetName())) |
| |
$dtp2->Assign($tagid,lib_channel_son($ctag,$row['id'],$dsql2)); |
| |
$likeType .= $dtp2->GetResult(); |
| |
if($col>1) $likeType .= "rn"; |
| |
function lib_channel_son($ctag,$typeid = 0,$dsql2) |
| |
$attlist = "row|100,col|1,currentstyle|"; |
| |
FillAttsDefault($ctag->CAttribute->Items,$attlist); |
| |
extract($ctag->CAttribute->Items, EXTR_SKIP); |
| |
$innertext = $ctag->GetInnerText(); |
| |
//if($_sys_globals['typeid']>0) $typeid = $_sys_globals['typeid']; |
| |
$sql = "Select id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath,description |
| |
From dede_arctype where reid='$typeid' And ishidden<>1 order by sortrank asc limit 0,$row"; |
| |
$dtp2 = new DedeTagParse(); |
| |
$dtp2->SetNameSpace("field","[","]"); |
| |
$dtp2->LoadSource($innertext); |
| |
for($i=0;$i < $line;$i++) |
| |
if($col>1) $likeType .= "rn" ; |
| |
if($col>1) $likeType .= "rn"; |
| |
if($row=$dsql2->GetArray()) |
| |
$row['typelink'] = $row['typeurl'] = GetOneTypeUrlA($row); |
| |
if(is_array($dtp2->CTags)) |
| |
foreach($dtp2->CTags as $tagid=>$ctag){ |
| |
if(isset($row[$ctag->GetName()])) |
| |
$dtp2->Assign($tagid,$row[$ctag->GetName()]); |
| |
elseif (preg_match('/^sonchannel[0-9]*$/',$ctag->GetName())) |
| |
$dtp2->Assign($tagid,lib_channel_son($ctag,$row['id'],$dsql3)); |
| |
$likeType .= $dtp2->GetResult(); |
| |
if($col>1) $likeType .= "rn"; |
|