SetQuery("SELECT id,typename FROM `#@__channeltype` ");
$dsql->Execute('dd');
$channels = array();
while ($row = $dsql->GetObject('dd')) $channels[$row->id] = $row->typename;
$OptionArrayList = '';
//当前选中的栏目
if ($selid > 0) {
$row = $dsql->GetOne("SELECT id,typename,ispart,channeltype FROM `#@__arctype` WHERE id='$selid'");
if ($row['ispart'] == 1) $OptionArrayList .= "";
else $OptionArrayList .= "";
}
//是否限定用户管理的栏目
if ($cfg_admin_channel == 'array') {
if (count($admin_catalogs) == 0) {
$query = "SELECT id,typename,ispart,channeltype FROM `#@__arctype` WHERE 1=2 ";
} else {
$admin_catalog = join(',', $admin_catalogs);
$dsql->SetQuery("SELECT reid FROM `#@__arctype` WHERE id IN($admin_catalog) GROUP BY reid ");
$dsql->Execute('qq');
$topidstr = '';
while ($row = $dsql->GetObject('qq')) {
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);
$admin_catalog = join(',', $admin_catalogs);
$admin_catalog = preg_replace("#,$#", '', $admin_catalog);
$query = "Select id,typename,ispart,channeltype From `#@__arctype` where id in($admin_catalog) And reid=0";
}
} else {
$query = "Select id,typename,ispart,channeltype From `#@__arctype` where reid=0 order by sortrank asc";
}
$dsql->SetQuery($query);
$dsql->Execute('cc');
while ($row = $dsql->GetObject('cc')) {
$sonCats = '';
LogicGetOptionArray($row->id, '─', $channeltype, $dsql, $sonCats);
if ($sonCats != '') {
if ($row->ispart == 1) $OptionArrayList .= "";
else if($row->ispart == 2) $OptionArrayList .= "";
else if (empty($channeltype) && $row->ispart != 0) $OptionArrayList .= "";
else $OptionArrayList .= "";
$OptionArrayList .= $sonCats;
} else {
if ($row->ispart == 0 && (!empty($channeltype) && $row->channeltype == $channeltype)) {
$OptionArrayList .= "";
} else if ($row->ispart == 0 && empty($channeltype)) {
$OptionArrayList .= "";
}
}
}
return $OptionArrayList;
}
function LogicGetOptionArray($id, $step, $channeltype, &$dsql, &$sonCats)
{
global $OptionArrayList, $channels, $cfg_admin_channel, $admin_catalogs;
$dsql->SetQuery("Select id,typename,ispart,channeltype From `#@__arctype` where reid='".$id."' order by sortrank asc");
$dsql->Execute($id);
while ($row = $dsql->GetObject($id)) {
if ($cfg_admin_channel != 'all' && !in_array($row->id, $admin_catalogs)) {
continue;
}
if ($row->channeltype == $channeltype && $row->ispart == 1) {
$sonCats .= "";
} else if (($row->channeltype == $channeltype && $row->ispart == 0) || empty($channeltype)) {
$sonCats .= "";
}
LogicGetOptionArray($row->id, $step.'─', $channeltype, $dsql, $sonCats);
}
}
?>