后台操作的时普通用户不应该看到 更改 移动 删除
<?php
if(!defined('DEDEINC')) exit('Request Error!');
require_once(DEDEINC."/channelunit.func.php");
class TypeUnit
{
var $dsql;
var $artDir;
var $baseDir;
var $idCounter;
var $idArrary;
var $shortName;
var $CatalogNums;
//php5构造函数
function __construct()
{
$this->idCounter = 0;
$this->artDir = $GLOBALS['cfg_cmspath'].$GLOBALS['cfg_arcdir'];
$this->baseDir = $GLOBALS['cfg_basedir'];
$this->shortName = $GLOBALS['art_shortname'];
$this->idArrary = '';
$this->dsql = 0;
}
function TypeUnit()
{
$this->__construct();
}
//清理类
function Close()
{
}
//获取所有栏目的文档ID数
function UpdateCatalogNum()
{
$this->dsql->SetQuery("SELECT typeid,count(typeid) as dd FROM `qrx_arctiny` where arcrank <>-2 group by typeid");
$this->dsql->Execute();
while($row = $this->dsql->GetArray())
{
$this->CatalogNums[$row['typeid']] = $row['dd'];
}
}
function GetTotalArc($tid)
{
if(!is_array($this->CatalogNums))
{
$this->UpdateCatalogNum();
}
if(!isset($this->CatalogNums[$tid]))
{
return 0;
}
else
{
$totalnum = 0;
$ids = explode(',',GetSonIds($tid));
foreach($ids as $tid)
{
if(isset($this->CatalogNums[$tid]))
{
$totalnum += $this->CatalogNums[$tid];
}
}
return $totalnum;
}
}
//----读出所有分类,在类目管理页(list_type)中使用----------
function ListAllType($channel=0,$nowdir=0)
{
global $cfg_admin_channel, $admin_catalogs;
$this->dsql = $GLOBALS['dsql'];
//检测用户有权限的顶级栏目
if($cfg_admin_channel=='array')
{
$admin_catalog = join(',', $admin_catalogs);
$this->dsql->SetQuery("Select reid From `qrx_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,sortrank,ishidden From `qrx_arctype` where reid=0 order by sortrank");
$this->dsql->Execute(0);
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;
$rank = $row->sortrank;
if($row->ishidden=='1')
{
$nss = "<font color='red'>[隐]</font>";
}
else
{
$nss = '';
}
echo "<table width='100%' border='0' cellspacing='0' cellpadding='2'>\r\n";
//普通列表
if($ispart==0)
{
echo " <tr bgcolor='#F5FAE4'>\r\n";
echo " <td width='2%' class='bline'><img style='cursor:pointer' onClick=\"LoadSuns('suns".$id."',$id);\" src='img/dedeexplode.gif' width='11' height='11'></td>\r\n";
echo " <td class='bline'><table width='98%' border='0' cellspacing='0' cellpadding='0'><tr><td width='50%'><input class='np' type='checkbox' name='tids[]' value='{$id}'><a href='catalog_do.php?cid=".$id."&dopost=listArchives' oncontextmenu=\"CommonMenu(event,this,$id,'".urlencode($typeName)."')\">{$nss}".$typeName."[ID:".$id."]</a>(文档:".$this->GetTotalArc($id).") <a onclick=\"AlertMsg('快捷编辑窗口','$id');\" href=\"javascript:;\"><img src='img/write2.gif'/></a>";
echo " </td><td align='right'>";
echo "<a href='{$GLOBALS['cfg_phpurl']}/list.php?tid={$id}' target='_blank'>预览</a>";
echo "|<a href='catalog_do.php?cid={$id}&dopost=listArchives'>内容</a>";
echo "|<a href='catalog_add.php?id={$id}'>增加子类</a>";
echo "|<a href='catalog_edit.php?id={$id}'>更改</a>";
echo "|<a href='catalog_do.php?dopost=moveCatalog&typeid={$id}'>移动</a>";
echo "|<a href='catalog_del.php?id={$id}&typeoldname=".urlencode($typeName)."'>删除</a>";
echo " <input type='text' name='sortrank{$id}' value='{$rank}' style='width:25;height:16'></td></tr></table></td></tr>\r\n";
}
//带封面的频道
else if($ispart==1)
{
echo " <tr bgcolor='#F5FAE4'>\r\n";
echo " <td width='2%' class='bline'><img style='cursor:pointer' onClick=\"LoadSuns('suns".$id."',$id);\" src='img/dedeexplode.gif' width='11' height='11'></td>\r\n";
echo " <td class='bline'><table width='98%' border='0' cellspacing='0' cellpadding='0'><tr><td width='50%'><input class='np' type='checkbox' name='tids[]' value='{$id}'><a href='catalog_do.php?cid=".$id."&dopost=listArchives' oncontextmenu=\"CommonMenuPart(event,this,$id,'".urlencode($typeName)."')\">{$nss}".$typeName."[ID:".$id."]</a> <a onclick=\"AlertMsg('快捷编辑窗口','$id');\" href=\"javascript:;\"> <img src='img/write2.gif'/> </a>";
echo " </td><td align='right'>";
/* echo "<a href='{$GLOBALS['cfg_phpurl']}/list.php?tid={$id}' target='_blank'>预览</a>";
echo "|<a href='catalog_do.php?cid={$id}&dopost=listArchives'>内容</a>";
echo "|<a href='catalog_add.php?id={$id}'>增加子类</a>";
echo "|<a href='catalog_edit.php?id={$id}'>更改</a>";
echo "|<a href='catalog_do.php?dopost=moveCatalog&typeid={$id}'>移动</a>";
echo "|<a href='catalog_del.php?id={$id}&typeoldname=".urlencode($typeName)."'>删除</a>";
echo " <input type='text' name='sortrank{$id}' value='{$rank}' style='width:25;height:16'></td></tr></table></td></tr>\r\n";
*/
}
//独立页面
else if($ispart==2)
{
echo " <tr height='24' bgcolor='#F5FAE4'>\r\n";
echo " <td width='2%' class='bline2'><img style='cursor:pointer' onClick=\"LoadSuns('suns".$id."',$id);\" src='img/dedeexplode.gif' width='11' height='11'></td>\r\n";
echo " <td class='bline2'><table width='98%' border='0' cellspacing='0' cellpadding='0'><tr><td width='50%'><input class='np' type='checkbox' name='tids[]' value='{$id}'><a href='catalog_edit.php?id=".$id."' oncontextmenu=\"SingleMenu(event,this,$id,'".urlencode($typeName)."')\">{$nss}".$typeName."[ID:".$id."]</a> <a onclick=\"AlertMsg('快捷编辑窗口','$id');\" href=\"javascript:;\"><img src='img/write2.gif'/></a>";
echo " </td><td align='right'>";
/* echo "<a href='{$typeDir}' target='_blank'>预览</a>";
echo "|<a href='catalog_edit.php?id={$id}'> </a>";
echo "|<a href='catalog_do.php?dopost=moveCatalog&typeid={$id}'>移动</a>";
echo "|<a href='catalog_del.php?id={$id}&typeoldname=".urlencode($typeName)."'>删除</a>";
echo " <input type='text' name='sortrank{$id}' value='{$rank}' style='width:25;height:16'></td></tr></table></td></tr>\r\n";
*/
}
echo " <tr><td colspan='2' id='suns".$id."'>";
$lastid = GetCookie('lastCid');
if($channel==$id || $lastid==$id || isset($GLOBALS['exallct']) || $cfg_admin_channel=='array')
{
echo " <table width='100%' border='0' cellspacing='0' cellpadding='0'>\r\n";
$this->LogicListAllSunType($id," ");
echo " </table>\r\n";
}
echo "</td></tr>\r\n</table>\r\n";
}
}
//获得子类目的递归调用
function LogicListAllSunType($id,$step)
{
global $cfg_admin_channel, $admin_catalogs;
$fid = $id;
$this->dsql->SetQuery("Select id,reid,typedir,typename,ispart,sortrank,ishidden From `qrx_arctype` where reid='".$id."' order by sortrank");
$this->dsql->Execute($fid);
if($this->dsql->GetTotalRow($fid)>0)
{
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;
if($step==" ")
{
$stepdd = 2;
}
else
{
$stepdd = 3;
}
$rank = $row->sortrank;
if($row->ishidden=='1')
{
$nss = "<font color='red'>[隐]</font>";
}
else
{
$nss = '';
}
//普通列表
if($ispart==0)
{
echo "<tr height='24' oncontextmenu=\"CommonMenu(event,this,$id,'".urlencode($typeName)."')\">\r\n";
echo "<td class='nbline'>";
echo "<table width='98%' border='0' cellspacing='0' cellpadding='0'>";
echo "<tr onMouseMove=\"javascript:this.bgColor='#FAFCE0';\" onMouseOut=\"javascript:this.bgColor='#FFFFFF';\"><td width='50%'>";
echo "<input class='np' type='checkbox' name='tids[]' value='{$id}'><a href='catalog_do.php?cid=".$id."&dopost=listArchives'>$step ·{$nss}".$typeName."[ID:".$id."]</a>(文档:".$this->GetTotalArc($id).") <a onclick=\"AlertMsg('快捷编辑窗口','$id');\" href=\"javascript:;\"><img src='img/write2.gif'/></a>";
echo "</td><td align='right'>";
echo "<a href='{$GLOBALS['cfg_phpurl']}/list.php?tid={$id}' target='_blank'>预览</a>";
echo "|<a href='catalog_do.php?cid={$id}&dopost=listArchives'>内容</a>";
echo "|<a href='catalog_add.php?id={$id}'>增加子类</a>";
echo "|<a href='catalog_edit.php?id={$id}'>更改</a>";
echo "|<a href='catalog_do.php?dopost=moveCatalog&typeid={$id}'>移动</a>";
echo "|<a href='catalog_del.php?id={$id}&typeoldname=".urlencode($typeName)."'>删除</a>";
echo " <input type='text' name='sortrank{$id}' value='{$rank}' style='width:25;height:16'></td></tr></table></td></tr>\r\n";
}
//封面频道
else if($ispart==1)
{
echo " <tr height='24' oncontextmenu=\"CommonMenu(event,this,$id,'".urlencode($typeName)."')\">\r\n";
echo "<td class='nbline'><table width='98%' border='0' cellspacing='0' cellpadding='0'><tr onMouseMove=\"javascript:this.bgColor='#FAFCE0';\" onMouseOut=\"javascript:this.bgColor='#FFFFFF';\"><td width='50%'>";
echo "<input class='np' type='checkbox' name='tids[]' value='{$id}'><a href='catalog_do.php?cid=".$id."&dopost=listArchives'>$step ·{$nss}".$typeName."[ID:".$id."]</a> <a onclick=\"AlertMsg('快捷编辑窗口','$id');\" href=\"javascript:;\"><img src='img/write2.gif'/></a>";
echo "</td><td align='right'>";
echo "<a href='{$GLOBALS['cfg_phpurl']}/list.php?tid={$id}' target='_blank'>预览</a>";
echo "|<a href='catalog_do.php?cid={$id}&dopost=listArchives'>内容</a>";
echo "|<a href='catalog_add.php?id={$id}'>增加子类</a>";
echo "|<a href='catalog_edit.php?id={$id}'>更改</a>";
echo "|<a href='catalog_do.php?dopost=moveCatalog&typeid={$id}'>移动</a>";
echo "|<a href='catalog_del.php?id={$id}&typeoldname=".urlencode($typeName)."'>删除</a>";
echo " <input type='text' name='sortrank{$id}' value='{$rank}' style='width:25;height:16'></td></tr></table></td></tr>\r\n";
}
//独立页面
else if($ispart==2)
{
echo "<tr height='24' oncontextmenu=\"SingleMenu(event,this,$id,'".urlencode($typeName)."')\">\r\n";
echo "<td class='bline2'><table width='98%' border='0' cellspacing='0' cellpadding='0'>";
echo "<tr onMouseMove=\"javascript:this.bgColor='#FAFCE0';\" onMouseOut=\"javascript:this.bgColor='#FFFFFF';\"><td width='50%'>";
echo "<input class='np' type='checkbox' name='tids[]' value='{$id}'><a href='catalog_do.php?cid=".$id."&dopost=listArchives'>$step ·{$nss}".$typeName."[ID:".$id."]</a> <a onclick=\"AlertMsg('快捷编辑窗口','$id');\" href=\"javascript:;\"><img src='img/write2.gif'/></a>";
echo "</td><td align='right'>";
echo "<a href='{$typeDir}' target='_blank'>预览</a>";
echo "|<a href='catalog_edit.php?id={$id}'>更改</a>";
echo "|<a href='catalog_do.php?dopost=moveCatalog&typeid={$id}'>移动</a>";
echo "|<a href='catalog_del.php?id={$id}&typeoldname=".urlencode($typeName)."'>删除</a>";
echo " <input type='text' name='sortrank{$id}' value='{$rank}' style='width:25;height:16'></td></tr></table></td></tr>\r\n";
}
$this->LogicListAllSunType($id,$step." ");
}
}
}
//-----返回与某个目相关的下级目录的类目ID列表(删除类目或文章时调用)
function GetSunTypes($id,$channel=0)
{
$this->dsql = $GLOBALS['dsql'];
$this->idArray[$this->idCounter]=$id;
$this->idCounter++;
$fid = $id;
if($channel!=0)
{
$csql = " And channeltype=$channel ";
}
else
{
$csql = "";
}
$this->dsql->SetQuery("Select id From `qrx_arctype` where reid=$id $csql");
$this->dsql->Execute("gs".$fid);
//if($this->dsql->GetTotalRow("gs".$fid)!=0)
//{
while($row=$this->dsql->GetObject("gs".$fid))
{
$nid = $row->id;
$this->GetSunTypes($nid,$channel);
}
//}
return $this->idArray;
}
//删除类目
function DelType($id,$isDelFile)
{
$this->idCounter = 0;
$this->idArray = "";
$this->GetSunTypes($id);
$query = "
Select q_arctype.*,q_channeltype.typename as ctypename,
q_channeltype.addtable
From `qrx_arctype` left join q_channeltype
on q_channeltype.id=q_arctype.channeltype
where q_arctype.id='$id'
";
$typeinfos = $this->dsql->GetOne($query);
$topinfos = $this->dsql->GetOne("Select moresite,siteurl From `qrx_arctype` where id='".$typeinfos['topid']."'");
if(!is_array($typeinfos))
{
return false;
}
$indir = $typeinfos['typedir'];
$addtable = $typeinfos['addtable'];
$ispart = $typeinfos['ispart'];
$defaultname = $typeinfos['defaultname'];
//删除数据库里的相关记录
foreach($this->idArray as $id)
{
$myrow = $this->dsql->GetOne("Select * From `qrx_arctype` where id='$id'");
if($myrow['topid']>0)
{
$mytoprow = $this->dsql->GetOne("Select moresite,siteurl From `qrx_arctype` where id='".$myrow['topid']."'");
if(is_array($mytoprow) && !empty($mytoprow))
{
foreach($mytoprow as $k=>$v)
{
if(!ereg("[0-9]",$k))
{
$myrow[$k] = $v;
}
}
}
}
//删除目录和目录里的所有文件 ### 禁止了此功能
//删除单独页面
if($myrow['ispart']==2 && $myrow['typedir']=='')
{
if( is_file($this->baseDir.'/'.$myrow['defaultname']) )
{
@unlink($this->baseDir.'/'.$myrow['defaultname']);
}
}
//删除数据库信息
$this->dsql->ExecuteNoneQuery("Delete From `qrx_arctype` where id='$id'");
$this->dsql->ExecuteNoneQuery("Delete From `qrx_arctiny` where typeid='$id'");
$this->dsql->ExecuteNoneQuery("Delete From `qrx_archives` where typeid='$id'");
$this->dsql->ExecuteNoneQuery("Delete From `qrx_spec` where typeid='$id'");
$this->dsql->ExecuteNoneQuery("Delete From `qrx_feedback` where typeid='$id'");
if($addtable!="")
{
$this->dsql->ExecuteNoneQuery("Delete From $addtable where typeid='$id'");
}
}
//删除目录和目录里的所有文件 ### 禁止了此功能
//删除单独页面
if($ispart==2 && $indir=="")
{
if( is_file($this->baseDir."/".$defaultname) )
{
@unlink($this->baseDir."/".$defaultname);
}
}
@reset($this->idArray);
$this->idCounter = 0;
return true;
}
//---- 删除指定目录的所有文件
function RmDirFile($indir)
{
if(!file_exists($indir)) return;
$dh = dir($indir);
while($file = $dh->read())
{
if($file == "." || $file == "..")
{
continue;
}
else if(is_file("$indir/$file"))
{
@unlink("$indir/$file");
}
else
{
$this->RmDirFile("$indir/$file");
}
if(is_dir("$indir/$file"))
{
@rmdir("$indir/$file");
}
}
$dh->close();
return(1);
}
}
?>
- 上一篇:joomla dedecms 哪个更好用
- 下一篇:php未初始化变量漏洞