dsql = $GLOBALS['dsql']; } function TypeUnitSelector() { $this->__construct(); } //清理类 function Close() { } /** * 列出某一频道下的所有栏目 * * @access public * @param string $channel 频道ID * @return void */ function ListAllType($channel=0) { global $cfg_admin_channel, $admin_catalogs, $targetid, $oldvalue; $oldvalues = array(); if(!empty($oldvalue)) $oldvalues = explode(',', $oldvalue); //检测用户有权限的顶级栏目 if($cfg_admin_channel=='array') { $admin_catalog = join(',', $admin_catalogs); $this->dsql->SetQuery("SELECT reid FROM `#@__arctype` WHERE id IN($admin_catalog) GROUP BY reid "); $this->dsql->Execute(); $topidstr = ''; while($row = $this->dsql->GetObject()) { if($row->reid==0) continue; $topidstr .= ($topidstr=='' ? $row->reid : ','.$row->reid); } $admin_catalog .= ','.$topidstr; $admin_catalogs = explode(',', $admin_catalog); $admin_catalogs = array_unique($admin_catalogs); } $this->dsql->SetQuery("SELECT id,typedir,typename,ispart,channeltype FROM `#@__arctype` WHERE reid=0 ORDER BY sortrank"); $this->dsql->Execute(0); $lastid = GetCookie('lastCidMenu'); while($row=$this->dsql->GetObject(0)) { if( $cfg_admin_channel=='array' && !in_array($row->id, $admin_catalogs) ) { continue; } $typeDir = $row->typedir; $typeName = $row->typename; $ispart = $row->ispart; $id = $row->id; $channeltype = $row->channeltype; $ischeck = in_array($id, $oldvalues) ? ' checked' : ''; $chackRadio = ""; if($targetid=='typeid2') $chackRadio = ""; if((!empty($channel) && $channeltype !=$channel) || $ispart!=0) { $chackRadio = ''; } $soncat = ''; $this->LogicListAllSunType($id, $channel, $soncat); if($chackRadio=='' && $soncat=='') continue; echo "
\r\n"; echo "
{$chackRadio}{$typeName}
\r\n"; if($soncat!='') echo "
{$soncat}
\r\n"; echo "
\r\n"; } } /** * 获得子类目的递归调用 * * @access public * @param int $id 栏目ID * @param int $channel 频道ID * @param int $soncat 子级分类 * @return string */ function LogicListAllSunType($id, $channel=0, &$soncat) { global $cfg_admin_channel, $admin_catalogs, $targetid, $oldvalue; $fid = $id; $oldvalues = array(); if(!empty($oldvalue)) $oldvalues = explode(',', $oldvalue); $this->dsql->SetQuery("SELECT id,reid,typedir,typename,ispart,channeltype FROM `#@__arctype` WHERE reid='".$id."' ORDER BY sortrank"); $this->dsql->Execute($fid); while($row=$this->dsql->GetObject($fid)) { if($cfg_admin_channel=='array' && !in_array($row->id, $admin_catalogs) ) { continue; } $typeDir = $row->typedir; $typeName = $row->typename; $reid = $row->reid; $id = $row->id; $ispart = $row->ispart; $channeltype = $row->channeltype; $ischeck = in_array($id, $oldvalues) ? ' checked' : ''; $chackRadio = ""; if($targetid=='typeid2') $chackRadio = ""; if($ispart!=0) { $chackRadio = ''; } if($channeltype!=$channel && !empty($channel)) { continue; } if($chackRadio !='' ) { $soncat .= "
".$chackRadio.$typeName."
\r\n"; $this->LogicListAllSunType($id, $channel, $soncat); } else { $soncat .= "
".$typeName.":
\r\n"; $this->LogicListAllSunType($id, $channel, $soncat); $soncat .= "
"; } } } }//End Class