classcat
{
public$data;
publicfunction__construct()
{
@include"data.php";
$this->data=$class;
}
publicfunctionCreateSortLevel($fatherlevel)
{
if(empty($fatherlevel))
{
if(is_array($this->data))
{
$fast_level=array();
foreach($this->dataas$value)
{
if(strlen($value["sortlevel"])==3)
{
$fast_level[]=$value["sortlevel"];
}
}
$max_fast_level=max($fast_level);
unset($fast_level);
$sub=ceil($max_fast_level)+1;
switch(strlen($sub))
{
case1:
return"00{$sub}";
break;
case2:
return"0{$sub}";
break;
case3:
return$sub;
break;
}
}
else
{
return"001";
}
}
foreach($this->dataas$val)
{
if(eregi("^".$fatherlevel.".{3}$",$val["sortlevel"]))
{
$level[]=$val["sortlevel"];
}
}
if(is_array($level))
{
$max_two_level=max($level);
$sub=ceil(substr($max_two_level,-3))+1;
switch(strlen($sub))
{
case1:
returnsubstr($max_two_level,0,strlen($max_two_level)-1).$sub;
break;
case2:
returnsubstr($max_two_level,0,strlen($max_two_level)-2).$sub;
break;
case3:
returnsubstr($max_two_level,0,strlen($max_two_level)-3).$sub;
break;
}
}
else
{
return$fatherlevel."001";
}
}
publicfunctionorders()
{
$op=$this->data;
$this->array_usort($op,"sortlevel",SORT_ASC);
return$op;
}
publicfunctionadd_cat($sortname,$sortlevel)
{
$data=time();
$arr=array
(
"{$data}"=>array
(
"sortname"=>$sortname,
"sortlevel"=>$this->CreateSortLevel($sortlevel)
)
);
$rs=$this->data+$arr;
$this->add_wirte($rs);
}
privatefunctionarray_usort(&$array)
{
$args=func_get_args();
for($i=1,$cmd='',$size=count($args);$i<$size;$i++)
{
$num=$i;
$order="";
$con="@strcmp($a['$args[$num]'],$b['$args[$num]'])";
while(++$i<$size)
{
if($args[$i]===SORT_NUMERIC)
{
$con="($a['$args[$num]']-$b['$args[$num]'])";
}
elseif($args[$i]===SORT_DESC)
{
$order="-1*";
}
elseif(is_string($args[$i]))
{
$i--;
break;
}
}
$cmd.="if($num=$con)return$order$num;else";
if($order!='')
{
$i++;
}
}
@usort($array,@create_function('$a,$b',"$cmdreturn0;"));
}
publicfunctionwirte($sortname,$sortlevel)
{
$array="$array.='$class=array'."rn(rn";
$array.='"'.time().'"=>array'."rn";
$array.='('."rn";
$array.='"sortname"=>"'.$sortname.'"'.",rn";
$array.='"sortlevel"=>"'.$this->CreateSortLevel($sortlevel).'"'."rn";
$array.=')'."rn";
$array.=")rn?>";
file_put_contents("data.php",$array);
}
publicfunctionadd_wirte($rs)
{
$array="$array.='$class=array'."rn(rn";
foreach($rsas$key=>$value)
{
$array.="rn";
$array.='"'.$key.'"=>array'."rn";
$array.='('."rn";
$array.='"sortname"=>"'.$value["sortname"].'"'.",rn";
$array.='"sortlevel"=>"'.$value["sortlevel"].'"'."rn";
$array.='),';
}
$array=substr($array,0,-1);
$array.="rn)rn?>";
file_put_contents("data.php",$array);
}
}
$cat=newcat();
if($_GET["action"]=="add")
{
if(strlen($_POST["sortname"])<2)
{
echo'
echo'
exit;
}
if(file_exists("data.php"))
{
$cat->add_cat($_POST["sortname"],$_POST["sortlevel"]);
echo'
echo'
exit;
}
else
{
$cat->wirte($_POST["sortname"],$_POST["sortlevel"]);
echo'
echo'
exit;
exit;
}
}
if($_GET["action"]=="tpl")
{
echo'
echo'<selectname="sortlevel">'."rn";
echo'
foreach($cat->orders()as$val)
{
echo'
$clevel=strlen(substr($val['sortlevel'],0,-3));
for($i=0;$i<$clevel;$i++)
{
echo"-";
}
echo$val['sortname']."rn";
}
echo"select>rn";
echo'
echo'
echo"";
exit;
}
foreach($cat->orders()as$value)
{
$level=strlen(substr($value['sortlevel'],0,-3));
for($i=0;$i<$level;$i++)
{
echo"-";
}
echo$value["sortname"];
echo"
";
}
?>