get_all_submodules

    public function get_all_submodules($section = 'all')
    {
        $data = [];
        $submodules = (array) _class('core_api')->get_submodules($section);
        foreach ($submodules as $_section => $modules) {
            $i++;
            $section_id = $i;
            $data[$section_id] = [
                'name' => $_section,
            ];
            foreach ((array) $modules as $module => $submodules) {
                $i++;
                $module_id = $i;
                $data[$module_id] = [
                    'name' => $module,
                    'link' => './?object=' . __CLASS__ . '&action=get_methods&id=' . $_section . '-' . $module,
                    'parent_id' => $section_id,
                ];
                foreach ((array) $submodules as $submodule) {
                    $i++;
                    $submodule_id = $i;
                    $data[$submodule_id] = [
                        'name' => $submodule,
                        'link' => './?object=' . __CLASS__ . '&action=get_submodule_methods&id=' . $_section . '-' . $module . '-' . $submodule,
                        'parent_id' => $module_id,
                    ];
                }
            }
        }
        return _class('html')->tree($data, [
            'opened_levels' => 1,
            'draggable' => false,
        ]);
    }