/** * 获得全部文章分类--无限极分类(编辑菜单时选项) * * @descript 递归组合无限极分类,为了编辑页面和增加页面select 展示 * @param $name 表单name名称 * @param $id 当前id * @return array * @author yangyifan <*****@*****.**> */ public static function getAllForSchemaOption($name, $id = 0) { //加载函数库 load_func('common'); $data = $id > 0 ? merge_tree_node(obj_to_array(self::where('id', '<>', $id)->get())) : merge_tree_node(obj_to_array(self::all())); array_unshift($data, ['id' => '0', $name => '顶级分类']); return $data; }
/** * 获得全部文章分类--无限极分类(编辑菜单时选项) * * @descript 递归组合无限极分类,为了编辑页面和增加页面select 展示 * @param $name 表单name名称 * @param $id 当前id * @return array * @author yangyifan <*****@*****.**> */ public static function getAllForSchemaOption($name, $id = 0, $first = true) { //加载函数库 load_func('common'); $data = $id > 0 ? merge_tree_node(obj_to_array(self::where('id', '<>', $id)->where('user_info_id', '=', is_user_login())->where('deleted_at', '=', '0000-00-00 00:00:00')->get())) : merge_tree_node(obj_to_array(self::where('user_info_id', '=', is_user_login())->get())); $first == true && array_unshift($data, ['id' => '0', $name => '顶级分类']); return $data; }
/** * 获得全部文章分类 * * @return array * @author yangyifan <*****@*****.**> */ public static function getAll() { //加载函数库 load_func('common'); $role_id = self::getRoleId(); //设置允许查看全部论坛角色组 if (in_array($role_id, config('config.forum_cat_supper_role_ids'))) { return merge_tree_node(obj_to_array(self::mergeData(self::where('status', '=', 1)->where('deleted_at', '=', '0000-00-00 00:00:00')->get()))); } return merge_tree_node(obj_to_array(self::mergeData(DB::table('forum_access AS fa')->join('forum_cat AS fc', 'fa.forum_cat_id', '=', 'fc.id')->where('fa.role_id', '=', $role_id)->where('fc.status', '=', 1)->where('fc.deleted_at', '=', '0000-00-00 00:00:00')->get()))); }
/** * 组合tree节点 * * @param $data * @param $pid * @param $level * @param $parent_id * @param $current_id * @return array * @auther yangyifan <*****@*****.**> */ function merge_tree_node($data, $pid = 0, $level = 0, $parent_id = 0, $current_id = 0) { $array = []; if (!empty($data)) { foreach ($data as $k => $v) { if ($v['pid'] == $pid) { $v['parent_id'] = $v['pid'] == 0 ? '' : ltrim($parent_id . '-' . $v['pid'], '-'); $v['current_id'] = $v['pid'] == 0 ? $v['id'] : $current_id . '-' . $v['id']; $v['level'] = $level; $array[] = $v; unset($data[$k]); $array = array_merge($array, merge_tree_node($data, $v['id'], $level + 1, $v['parent_id'], $v['current_id'])); } } } return $array; }
/** * 获得全部文章分类 * * @return array * @auther yangyifan <*****@*****.**> */ public static function getAll() { //加载函数库 load_func('common'); return merge_tree_node(obj_to_array(self::mergeData(self::all()))); }
/** * 获得全部文章分类 * * @return array * @author yangyifan <*****@*****.**> */ public static function getAll() { //加载函数库 load_func('common'); return merge_tree_node(obj_to_array(self::mergeData(self::where('status', '=', 1)->where('deleted_at', '=', '0000-00-00 00:00:00')->get()))); }
/** * 构建tree数据 * * @param $data * @return \Illuminate\View\View * @author yangyifan <*****@*****.**> */ public function builderTreeData($data) { //加载函数库 load_func('common'); $this->tree_data = merge_tree_node(obj_to_array($data)); return $this; }