File: /web/data/www.tbbprovision.com/lib/category.class.php
<?php
class category{
public static function get_parent_cate_id_by_uid($uid)
{
if(!$uid) return 0;
$uid_ary = @explode(',',$uid);
return $uid_ary[count($uid_ary)-2];
}
public static function output_cate_to_select_ext($table='',$ext_cate=0,$select_id=0,$html='',$fig='',$where='uid="0,"',$field='cate_name')
{
global $model;
$list = $model->table($table)->where(array($where," and cate_id <>'{$ext_cate}'"))->order(array("my_order desc","cate_id asc"))->selectAll();
foreach((array)$list as $k=>$v){
$select = $select_id==$v['cate_id'] ? " selected ":"";
$fig2 = $k==count($list)-1 ?'└─':"├─";
$show_str = '';
if(!is_array($field)){
$show_str = $v[$field];
}else{
foreach((array)$field as $kk=>$vv){
$show_str[]=$v[$vv];
}
$show_str = implode(' / ',$show_str);
}
$html .= "<option value=\"{$v['cate_id']}\" {$select}>{$fig}{$fig2}{$show_str} </option>";
$html .= category::output_cate_to_select_ext($table,$ext_cate,$select_id,'',($k==count($list)-1 ?$fig." ":$fig."│ "),"uid='{$v['uid']}{$v['cate_id']},'",$field);
}
return $html;
}
/*
* 输入分类列表
*/
public static function output_cate_to_table($table=''){
global $model;
$list = $model->table($table)->where(1)->order(array('my_order desc','dept asc','cate_id asc'))->selectAll();
$list = category::change_cate_as_uid($list);
ob_start();
call_user_func("category::{$table}",$list);
$html = ob_get_contents();
ob_clean();
echo $html;
}
private static function news_cate($list=array(),$uid='0,',$fig='')
{
foreach((array)$list[$uid] as $k=>$v){
$fig_ext = count($list[$uid])==($k+1)?"└─":"├─";
echo "<tr>
<td width=\"5%\" class=\"\">{$v['cate_id']}</td>
<td width=\"75%\" class=\"\">{$fig}{$fig_ext}{$v['cate_name']}</td>
<td width=\"10%\" class=\"\">{$v['my_order']}</td>
<td width=\"10%\" class=\"\">
<a class=\"edit-btn btn btn-info btn-list\" data-id=\"{$v['cate_id']}\" title=\"编辑\"><span class=\"fa fa-pencil\"></span></a>
<a class=\"del-btn btn btn-info btn-list\" data-id=\"{$v['cate_id']}\" title=\"删除\"><span class=\"fa fa-trash-o\"></span></a>
</td>
</tr>";
if($list[$v['uid'].$v['cate_id'].',']){
self::news_cate($list,$v['uid'].$v['cate_id'].',',count($list[$uid])==($k+1)?$fig." ":$fig."│ ");
}
}
}
private static function article_cate($list=array(),$uid='0,',$fig='')
{
foreach((array)$list[$uid] as $k=>$v){
$fig_ext = count($list[$uid])==($k+1)?"└─":"├─";
echo"<tr>
<td width=\"5%\" class=\"\">{$v['cate_id']}</td>
<td width=\"75%\" class=\"\">{$fig}{$fig_ext}{$v['cate_name']}</td>
<td width=\"10%\" class=\"\">{$v['my_order']}</td>
<td width=\"10%\" class=\"\">
<a class=\"edit-btn btn btn-info btn-list\" data-id=\"{$v['cate_id']}\" title=\"编辑\"><span class=\"fa fa-pencil\"></span></a>
<a class=\"del-btn btn btn-info btn-list\" data-id=\"{$v['cate_id']}\" title=\"删除\"><span class=\"fa fa-trash-o\"></span></a>
</td>
</tr>";
if($list[$v['uid'].$v['cate_id'].',']){
self::article_cate($list,$v['uid'].$v['cate_id'].',',count($list[$uid])==($k+1)?$fig." ":$fig."│ ");
}
}
}
private static function ad_cate($list=array(),$uid='0,',$fig='')
{
foreach((array)$list[$uid] as $k=>$v){
$fig_ext = count($list[$uid])==($k+1)?"└─":"├─";
echo "<tr>
<td width=\"5%\" class=\"\">{$v['cate_id']}</td>
<td width=\"55%\" >{$fig}{$fig_ext}{$v['cate_name']}</td>
<td width=\"20%\" >{$v['pic_size']}</td>
<td width=\"10%\" class=\"\">{$v['my_order']}</td>
<td width=\"10%\" class=\"\">
<a class=\"edit-btn btn btn-info btn-list\" data-id=\"{$v['cate_id']}\" title=\"编辑\"><span class=\"fa fa-pencil\"></span></a>
<a class=\"del-btn btn btn-info btn-list\" data-id=\"{$v['cate_id']}\" title=\"删除\"><span class=\"fa fa-trash-o\"></span></a>
</td>
</tr>";
if($list[$v['uid'].$v['cate_id'].',']){
self::ad_cate($list,$v['uid'].$v['cate_id'].',',count($list[$uid])==($k+1)?$fig." ":$fig."│ ");
}
}
}
private static function pro_cate($list=array(),$uid='0,',$fig='')
{
foreach((array)$list[$uid] as $k=>$v){
$fig_ext = count($list[$uid])==($k+1)?"└─":"├─";
echo "<tr>
<td width=\"5%\" class=\"\">{$v['cate_id']}</td>
<td width=\"30%\" >{$fig}{$fig_ext}{$v['cate_name']}</td>
<td width=\"25%\" >{$v['brief']}</td>
<td width=\"10%\" class=\"text-center\">
<div class=\"switch inline text-left\">
<div class=\"onoffswitch\">
<input type=\"checkbox\" ".($v['is_close']?'':' checked ')." class=\"onoffswitch-checkbox\" id=\"example1\">
<label class=\"onoffswitch-label\" for=\"aexample1\">
<span class=\"onoffswitch-inner\"></span>
<span class=\"onoffswitch-switch\"></span>
</label>
</div>
</div>
</td>
<td width=\"10%\" align=\"center\">".(is_file(APP_PATH.$v['list_picture'])?"<img src='{$v['list_picture']}' width='30' height='30'>":''),"</td>
<td width=\"10%\" class=\"\">{$v['my_order']}</td>
<td width=\"10%\" class=\"\">
<a class=\"edit-btn btn btn-info btn-list\" data-id=\"{$v['cate_id']}\" title=\"编辑\"><span class=\"fa fa-pencil\"></span></a>
<a class=\"del-btn btn btn-info btn-list\" data-id=\"{$v['cate_id']}\" title=\"删除\"><span class=\"fa fa-trash-o\"></span></a>
</td>
</tr>";
if($list[$v['uid'].$v['cate_id'].',']){
self::pro_cate($list,$v['uid'].$v['cate_id'].',',count($list[$uid])==($k+1)?$fig." ":$fig."│ ");
}
}
}
public static function change_cate_as_uid($list=array())
{
$tmp = array();
foreach((array)$list as $k=>$v){
$tmp[$v['uid']][]=$v;
}
return $tmp;
}
public static function get_wehre_cateid_by_uid($uid,$table='')
{
global $model;
if(!$table){
return " and cate_id in(0,-1)";
}
$result = ' and cate_id in(0';
$result .= ','.category::get_parent_cate_id_by_uid($uid);
$list = $model->table($table)->where("uid like '{$uid}%'")->field(array('cate_id'))->selectAll();
foreach((array)$list as $k=>$v){
$result .= ",{$v['cate_id']}";
}
$result .= ',-1)';
return $result;
}
}
?>