<?php
/**
*	此文件是流程模块【aqyk_xinwen.安全预控新闻列表】对应控制器接口文件。
*/ 
class mode_aqyk_xinwenClassAction extends inputAction{
	
	/**
	*	重写函数：保存前处理，主要用于判断是否可以保存
	*	$table String 对应表名
	*	$arr Array 表单参数
	*	$id Int 对应表上记录Id 0添加时，大于0修改时
	*	$addbo Boolean 是否添加时
	*	return array('msg'=>'错误提示内容','rows'=> array()) 可返回空字符串，或者数组 rows 是可同时保存到数据库上数组
	*/
	protected function savebefore($table, $arr, $id, $addbo){
		
	}
	
	/**
	*	重写函数：保存后处理，主要保存其他表数据
	*	$table String 对应表名
	*	$arr Array 表单参数
	*	$id Int 对应表上记录Id
	*	$addbo Boolean 是否添加时
	*/	
	protected function saveafter($table, $arr, $id, $addbo){
		
	}

	public function getLMList()
    {
        $data = m('aqyk_lm')->getall("1=1");
        if (is_array($data)){
            $arr = $this->getLevel($data);
            $result = $this->getChilds($arr);
        }else{
            $result = [];
        }
        return $result;
    }
    /**
     * 传递一个父级分类ID返回所有子分类
     * @param $cate
     * @param $pid
     * @return array
     */
    private function getChilds($data, $pid=null)
    {
        $arr = array();
        foreach ($data as $v) {
            if ($v['parent_id']==$pid){
                $nbsp = '&nbsp;&nbsp;&nbsp;&nbsp;';
                $res = str_repeat($nbsp,$v['level']-1);
                $value = array("name"=>$res.$v['lm_name'],"value"=>$v['id']);
                $arr[] = $value;
                $arr = array_merge($arr, $this->getChilds($v['child'], $v['id']));
            }
        }
        return $arr;
    }

    /**
     * 传递一个父级分类ID返回所有子分类
     * @param $cate
     * @param $pid
     * @return array
     */
    private function getLevel($data, $pid=null,$level = 0)
    {
        $_arr = [];
        foreach ($data as $v) {
            if ($v['parent_id'] == $pid) {
                $arr = $v;
                $arr['level'] = $level+1;
                $arr['child'] = $this->getLevel($data, $v['id'],$arr['level']);
                $_arr[] = $arr;
            }
        }
        return $_arr;
    }
}	
			
