¡¡¡¡<?php
¡¡¡¡class cat
¡¡¡¡{
¡¡¡¡public $data;
¡¡¡¡public function __construct()
¡¡¡¡{
¡¡¡¡@include "data.php";
¡¡¡¡$this->data = $class;
¡¡¡¡}
¡¡¡¡public function CreateSortLevel($fatherlevel)
¡¡¡¡{
¡¡¡¡if(empty($fatherlevel))
¡¡¡¡{
¡¡¡¡if(is_array($this->data))
¡¡¡¡{
¡¡¡¡$fast_level = array();
¡¡¡¡foreach($this->data as $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))
¡¡¡¡{
¡¡¡¡case 1:
¡¡¡¡return "00{$sub}";
¡¡¡¡break;
¡¡¡¡case 2:
¡¡¡¡return "0{$sub}";
¡¡¡¡break;
¡¡¡¡case 3:
¡¡¡¡return $sub;
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡else
¡¡¡¡{
¡¡¡¡return "001";
¡¡¡¡}
¡¡¡¡}
¡¡¡¡foreach($this->data as $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))
¡¡¡¡{
¡¡¡¡case 1:
¡¡¡¡return substr($max_two_level,0,strlen($max_two_level)-1).$sub;
¡¡¡¡break;
¡¡¡¡case 2:
¡¡¡¡return substr($max_two_level,0,strlen($max_two_level)-2).$sub;
¡¡¡¡break;
¡¡¡¡case 3:
¡¡¡¡return substr($max_two_level,0,strlen($max_two_level)-3).$sub;
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡else
¡¡¡¡{
¡¡¡¡return $fatherlevel."001";
¡¡¡¡}
¡¡¡¡}
¡¡¡¡public function orders()
¡¡¡¡{
¡¡¡¡$op = $this->data;
¡¡¡¡$this->array_usort($op,"sortlevel",SORT_ASC);
¡¡¡¡return $op;
¡¡¡¡}
¡¡¡¡public function add_cat($sortname,$sortlevel)
¡¡¡¡{
¡¡¡¡$data = time();
¡¡¡¡$arr = array
¡¡¡¡(
¡¡¡¡"{$data}" => array
¡¡¡¡(
¡¡¡¡"sortname" => $sortname,
¡¡¡¡"sortlevel" => $this->CreateSortLevel($sortlevel)
¡¡¡¡)
¡¡¡¡);
¡¡¡¡$rs = $this->data + $arr;
¡¡¡¡$this->add_wirte($rs);
¡¡¡¡}
¡¡¡¡private function array_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]'])";
¡¡¡¡}
¡¡¡¡else if($args[$i] === SORT_DESC)
¡¡¡¡{
¡¡¡¡$order = "-1*";
¡¡¡¡}
¡¡¡¡else if(is_string($args[$i]))
¡¡¡¡{
¡¡¡¡$i--;
¡¡¡¡break;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡$cmd .= "if($num = $con)return $order$num;else ";
¡¡¡¡if($order != '')
¡¡¡¡{
¡¡¡¡$i++;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡@usort($array,@create_function('$a,$b',"$cmd return 0;"));
¡¡¡¡}
¡¡¡¡public function wirte($sortname,$sortlevel)
¡¡¡¡{
¡¡¡¡$array = "<?phprn";
¡¡¡¡$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);
¡¡¡¡}
¡¡¡¡public function add_wirte($rs)
¡¡¡¡{
¡¡¡¡$array = "<?phprn";
¡¡¡¡$array .= '$class = array'."rn(rn";
¡¡¡¡foreach($rs as $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 = new cat();
¡¡¡¡if($_GET["action"] == "add")
¡¡¡¡{
¡¡¡¡if(strlen($_POST["sortname"]) < 2)
¡¡¡¡{
¡¡¡¡echo '<script language="JavaScript">alert("ÇëÌí¼Ó·ÖÀàÃû×Ö")</script>';
¡¡¡¡echo '<script language="JavaScript">location.href="/cat.php?action=tpl"</script>';
¡¡¡¡exit;
¡¡¡¡}
¡¡¡¡if(file_exists("data.php"))
¡¡¡¡{
¡¡¡¡$cat->add_cat($_POST["sortname"],$_POST["sortlevel"]);
¡¡¡¡echo '<script language="JavaScript">alert("Ìí¼Ó³É¹¦")</script>';
¡¡¡¡echo '<script language="JavaScript">location.href="/cat.php"</script>';
¡¡¡¡exit;
¡¡¡¡}
¡¡¡¡else
¡¡¡¡{
¡¡¡¡$cat->wirte($_POST["sortname"],$_POST["sortlevel"]);
¡¡¡¡echo '<script language="JavaScript">alert("Ìí¼Ó³É¹¦")</script>';
¡¡¡¡echo '<script language="JavaScript">location.href="/cat.php"</script>';
¡¡¡¡exit;
¡¡¡¡exit;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡if($_GET["action"] == "tpl")
¡¡¡¡{
¡¡¡¡echo '<form id="form1" name="form1" method="post" action="cat.php?action=add">';"rn";
¡¡¡¡echo '<select name="sortlevel">'."rn";
¡¡¡¡echo '<option value="" selected="selected">¸ù·ÖÀà</option>'."rn";
¡¡¡¡foreach($cat->orders() as $val)
¡¡¡¡{
¡¡¡¡echo '<option value="'.$val["sortlevel"].'">';
¡¡¡¡$clevel = strlen(substr($val['sortlevel'],0,-3));
¡¡¡¡for($i = 0; $i < $clevel; $i++)
¡¡¡¡{
¡¡¡¡echo "-";
¡¡¡¡}
¡¡¡¡echo $val['sortname']."</option>rn";
¡¡¡¡}
¡¡¡¡echo "</select>rn";
¡¡¡¡echo ' <input name="sortname" type="text" id="sortname" />'."rn";
¡¡¡¡echo '<input type="submit" name="Submit" value="Ìá½»" />';
¡¡¡¡echo "</form>";
¡¡¡¡exit;
¡¡¡¡}
¡¡¡¡foreach($cat->orders() as $value)
¡¡¡¡{
¡¡¡¡$level = strlen(substr($value['sortlevel'],0,-3));
¡¡¡¡for($i = 0; $i < $level; $i++)
¡¡¡¡{
¡¡¡¡echo "-";
¡¡¡¡}
¡¡¡¡echo $value["sortname"];
¡¡¡¡echo "<br>";
¡¡¡¡}
¡¡¡¡?>