mode_home_navAction.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. /**
  3. * 此文件是流程模块【home_nav.首页导航】对应控制器接口文件。
  4. */
  5. class mode_home_navClassAction extends inputAction{
  6. /**
  7. * 重写函数:保存前处理,主要用于判断是否可以保存
  8. * $table String 对应表名
  9. * $arr Array 表单参数
  10. * $id Int 对应表上记录Id 0添加时,大于0修改时
  11. * $addbo Boolean 是否添加时
  12. * return array('msg'=>'错误提示内容','rows'=> array()) 可返回空字符串,或者数组 rows 是可同时保存到数据库上数组
  13. */
  14. protected function savebefore($table, $arr, $id, $addbo){
  15. }
  16. /**
  17. * 重写函数:保存后处理,主要保存其他表数据
  18. * $table String 对应表名
  19. * $arr Array 表单参数
  20. * $id Int 对应表上记录Id
  21. * $addbo Boolean 是否添加时
  22. */
  23. protected function saveafter($table, $arr, $id, $addbo){
  24. }
  25. public function categoryList()
  26. {
  27. $admin = m('admin')->getone("id=$this->adminid");
  28. $comid = $admin['comid'];
  29. $data = m('home_nav')->getall("comid=$comid");
  30. if (is_array($data)){
  31. $arr = $this->getLevel($data);
  32. $result = $this->getChilds($arr);
  33. }else{
  34. $result = [];
  35. }
  36. return $result;
  37. }
  38. /**
  39. * 传递一个父级分类ID返回所有子分类
  40. * @param $cate
  41. * @param $pid
  42. * @return array
  43. */
  44. private function getChilds($data, $pid=null)
  45. {
  46. $arr = array();
  47. foreach ($data as $v) {
  48. if ($v['parent_id']==$pid){
  49. $nbsp = '&nbsp;&nbsp;&nbsp;&nbsp;';
  50. $res = str_repeat($nbsp,$v['level']-1);
  51. $value = array("name"=>$res.$v['title'],"value"=>$v['id']);
  52. $arr[] = $value;
  53. $arr = array_merge($arr, $this->getChilds($v['child'], $v['id']));
  54. }
  55. }
  56. return $arr;
  57. }
  58. /**
  59. * 传递一个父级分类ID返回所有子分类
  60. * @param $cate
  61. * @param $pid
  62. * @return array
  63. */
  64. private function getLevel($data, $pid=null,$level = 0)
  65. {
  66. $_arr = [];
  67. foreach ($data as $v) {
  68. if ($v['parent_id'] == $pid) {
  69. $arr = $v;
  70. $arr['level'] = $level+1;
  71. $arr['child'] = $this->getLevel($data, $v['id'],$arr['level']);
  72. $_arr[] = $arr;
  73. }
  74. }
  75. return $_arr;
  76. }
  77. }