Microweber\Providers\Modules::get_modules_from_current_site_template PHP Method

get_modules_from_current_site_template() public method

    public function get_modules_from_current_site_template()
    {
        if (!defined('ACTIVE_TEMPLATE_DIR')) {
            $this->app->content_manager->define_constants();
        }
        $dir_name = ACTIVE_TEMPLATE_DIR . 'modules' . DS;
        if (is_dir($dir_name)) {
            $configs = array();
            $glob_patern = '*config.php';
            $dir = rglob($glob_patern, 0, $dir_name);
            $replace_root = normalize_path($dir_name);
            $def_icon = modules_path() . 'default.png';
            if (!empty($dir)) {
                foreach ($dir as $module) {
                    $module_dir = dirname($module);
                    $module_dir = normalize_path($module_dir);
                    $config = array();
                    include $module;
                    $module_name = str_replace($replace_root, '', $module_dir);
                    $module_name = rtrim($module_name, '\\');
                    $module_name = rtrim($module_name, '/');
                    $config['module'] = $module_name;
                    $config['module'] = rtrim($config['module'], '\\');
                    $config['module'] = rtrim($config['module'], '/');
                    $try_icon = $module_dir . $module_name . '.png';
                    if (is_file($try_icon)) {
                        $config['icon'] = $this->app->url_manager->link_to_file($try_icon);
                    } else {
                        $config['icon'] = $this->app->url_manager->link_to_file($def_icon);
                    }
                    $configs[] = $config;
                }
            }
            return $configs;
        }
    }