| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- <?php
- /**
- * 此文件是流程模块【aqyk_lm.安全预控新闻栏目】对应控制器接口文件。
- */
- class mode_aqyk_lmClassAction 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){
-
- }
-
- private function getselectdatas($rows,&$barr, $pid=NULL, $level=0)
- {
- foreach($rows as $k=>$rs){
- if($rs['parent_id']==$pid){
- $str = '';
- for($i=0;$i<$level;$i++)$str.=' ';
- if($str!='')$str.='├';
- $name = ''.$str.''.$rs['lm_name'].'';
- $barr[] = array(
- 'name' => $name,
- 'value' => $rs['id'],
- );
- $this->getselectdatas($rows, $barr, $rs['id'], $level+1);
- }
- }
- }
- public function getselectdata($lx=NULL)
- {
- $rows = m('aqyk_lm')->getall('1=1','`id`,lm_name,parent_id');
- $barr = array();
- if($lx==NULL)$barr[] = array(
- 'value' => NULL,
- 'name' => '最顶级',
- );
- $this->getselectdatas($rows, $barr, NULL, 0);
- return $barr;
- }
- public function lmdata()
- {
- return $this->getselectdata();
- }
-
- public function storeafter($table, $rows)
- {
- $barr = array();
- $this->gettreedata($rows, $barr);
- return array(
- 'rows' => $barr
- );
- }
- //树形结构
- public function gettreedata($rows, &$barr, $pid=NULL, $level=1)
- {
- foreach($rows as $k=>$rs){
- if($rs['parent_id']==$pid){
- $rs['level'] = $level;
- $rs['stotal'] = $this->gettreetotal($rows, $rs['id']);
- $barr[] = $rs;
- $this->gettreedata($rows, $barr, $rs['id'], $level+1);
- }
- }
- }
- public function gettreetotal($rows, $pid)
- {
- $stotal = 0;
- foreach($rows as $k=>$rs){
- if($rs['parent_id']==$pid){
- $stotal++;
- }
- }
- return $stotal;
- }
-
-
-
- public function lmCategoryList()
- {
- // $admin = m('admin')->getone("id=$this->adminid");
- // $comid = $admin['comid'];
- $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 = ' ';
- $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;
- }
- }
-
|