Microweber\Providers\Modules::load PHP Метод

load() публичный Метод

public load ( $module_name, $attrs = [] )
    public function load($module_name, $attrs = array())
    {
        return $this->app->parser->load($module_name, $attrs);
        //
        //        $is_element = false;
        //        $custom_view = false;
        //        if (isset($attrs['view'])){
        //
        //            $custom_view = $attrs['view'];
        //            $custom_view = trim($custom_view);
        //            $custom_view = str_replace('\\', '/', $custom_view);
        //            $attrs['view'] = $custom_view = str_replace('..', '', $custom_view);
        //        }
        //
        //        if ($custom_view!=false and strtolower($custom_view)=='admin'){
        //            if ($this->app->user_manager->is_admin()==false){
        //                mw_error('Not logged in as admin');
        //            }
        //        }
        //
        //        $module_name = trim($module_name);
        //        $module_name = str_replace('\\', '/', $module_name);
        //        $module_name = str_replace('..', '', $module_name);
        //        // prevent hack of the directory
        //        $module_name = reduce_double_slashes($module_name);
        //
        //        $module_namei = $module_name;
        //
        //        if (strstr($module_name, 'admin')){
        //
        //            $module_namei = str_ireplace('\\admin', '', $module_namei);
        //            $module_namei = str_ireplace('/admin', '', $module_namei);
        //        }
        //
        //        //$module_namei = str_ireplace($search, $replace, $subject)e
        //
        //
        //        $uninstall_lock = $this->get('one=1&ui=any&module=' . $module_namei);
        //
        //        if (isset($uninstall_lock["installed"]) and $uninstall_lock["installed"]!='' and intval($uninstall_lock["installed"])!=1){
        //            return '';
        //        }
        //
        //        if (!defined('ACTIVE_TEMPLATE_DIR')){
        //            $this->app->content_manager->define_constants();
        //        }
        //
        //        $module_in_template_dir = ACTIVE_TEMPLATE_DIR . 'modules/' . $module_name . '';
        //        $module_in_template_dir = normalize_path($module_in_template_dir, 1);
        //        $module_in_template_file = ACTIVE_TEMPLATE_DIR . 'modules/' . $module_name . '.php';
        //        $module_in_template_file = normalize_path($module_in_template_file, false);
        //
        //        $try_file1 = false;
        //
        //        $mod_d = $module_in_template_dir;
        //        $mod_d1 = normalize_path($mod_d, 1);
        //        $try_file1zz = $mod_d1 . 'index.php';
        //        $in_dir = false;
        //
        //
        //        if ($custom_view==true){
        //
        //            $try_file1zz = $mod_d1 . trim($custom_view) . '.php';
        //        } else {
        //            $try_file1zz = $mod_d1 . 'index.php';
        //        }
        //
        //
        //        if (is_dir($module_in_template_dir) and is_file($try_file1zz)){
        //            $try_file1 = $try_file1zz;
        //
        //
        //            $in_dir = true;
        //        } elseif (is_file($module_in_template_file)) {
        //            $try_file1 = $module_in_template_file;
        //            $in_dir = false;
        //        } else {
        //
        //
        //            $module_in_default_dir = modules_path() . $module_name . '';
        //            $module_in_default_dir = normalize_path($module_in_default_dir, 1);
        //            $module_in_default_file = modules_path() . $module_name . '.php';
        //            $module_in_default_file_custom_view = modules_path() . $module_name . '_' . $custom_view . '.php';
        //
        //            $element_in_default_file = elements_path() . $module_name . '.php';
        //            $element_in_default_file = normalize_path($element_in_default_file, false);
        //
        //
        //            $module_in_default_file = normalize_path($module_in_default_file, false);
        //
        //            if (is_file($module_in_default_file)){
        //                $in_dir = false;
        //                if ($custom_view==true and is_file($module_in_default_file_custom_view)){
        //                    $try_file1 = $module_in_default_file_custom_view;
        //                } else {
        //
        //                    $try_file1 = $module_in_default_file;
        //                }
        //            } else {
        //
        //                if (is_dir($module_in_default_dir)){
        //                    $in_dir = true;
        //                    $mod_d1 = normalize_path($module_in_default_dir, 1);
        //
        //                    if ($custom_view==true){
        //
        //                        $try_file1 = $mod_d1 . trim($custom_view) . '.php';
        //                    } else {
        //                        $try_file1 = $mod_d1 . 'index.php';
        //                    }
        //                } elseif (is_file($element_in_default_file)) {
        //                    $in_dir = false;
        //                    $is_element = true;
        //
        //                    $try_file1 = $element_in_default_file;
        //                }
        //
        //
        //            }
        //        }
        //
        //
        //        if (isset($try_file1)!=false and $try_file1!=false and is_file($try_file1)){
        //
        //            if (isset($attrs) and is_array($attrs) and !empty($attrs)){
        //                $attrs2 = array();
        //                foreach ($attrs as $attrs_k => $attrs_v) {
        //                    $attrs_k2 = substr($attrs_k, 0, 5);
        //                    if (strtolower($attrs_k2)=='data-'){
        //                        $attrs_k21 = substr($attrs_k, 5);
        //                        $attrs2[ $attrs_k21 ] = $attrs_v;
        //                    } elseif (!isset($attrs[ 'data-' . $attrs_k ])) {
        //                        $attrs2[ 'data-' . $attrs_k ] = $attrs_v;
        //
        //                    }
        //
        //                    $attrs2[ $attrs_k ] = $attrs_v;
        //                }
        //                $attrs = $attrs2;
        //            }
        //
        //
        //            $config['path_to_module'] = $config['mp'] = $config['path'] = normalize_path((dirname($try_file1)) . '/', true);
        //            $config['the_module'] = $module_name;
        //            $config['module'] = $module_name;
        //            $module_name_dir = dirname($module_name);
        //            $config['module_name'] = $module_name_dir;
        //
        //            $config['module_name_url_safe'] = module_name_encode($module_name);
        //
        //
        //            $find_base_url = $this->app->url_manager->current(1);
        //            if ($pos = strpos($find_base_url, ':' . $module_name) or $pos = strpos($find_base_url, ':' . $config['module_name_url_safe'])){
        //                $find_base_url = substr($find_base_url, 0, $pos) . ':' . $config['module_name_url_safe'];
        //            }
        //            $config['url'] = $find_base_url;
        //
        //            $config['url_main'] = $config['url_base'] = strtok($find_base_url, '?');
        //
        //            if ($in_dir!=false){
        //                $mod_api = str_replace('/admin', '', $module_name);
        //            } else {
        //                $mod_api = str_replace('/admin', '', $module_name_dir);
        //            }
        //
        //            $config['module_api'] = $this->app->url_manager->site('api/' . $mod_api);
        //            $config['module_view'] = $this->app->url_manager->site('module/' . $module_name);
        //            $config['ns'] = str_replace('/', '\\', $module_name);
        //            $config['module_class'] = $this->css_class($module_name);
        //
        //            $config['url_to_module'] = $this->app->url_manager->link_to_file($config['path_to_module']);
        //
        //            $get_module_template_settings_from_options = mw_var('get_module_template_settings_from_options');
        //
        //            if (isset($attrs['id'])){
        //                $attrs['id'] = str_replace('__MODULE_CLASS_NAME__', $config['module_class'], $attrs['id']);
        //
        //                $template = false;
        //
        //            }
        //
        //            $lic = $this->license($module_name);
        //            //  $lic = 'valid';
        //            if ($lic!=false){
        //                $config['license'] = $lic;
        //            }
        //
        //            if (!isset($attrs['id']) and isset($attrs['module-id']) and $attrs['module-id']!=false){
        //                $attrs['id'] = $attrs['module-id'];
        //            }
        //
        //            if (!isset($attrs['id'])){
        //                global $mw_mod_counter;
        //                $mw_mod_counter ++;
        //                $seg_clean = $this->app->url_manager->segment(0, url_current());
        //
        //               // $seg_clean = $this->app->url_manager->segment(0);
        //                if (defined('IS_HOME')){
        //                    $seg_clean = '';
        //                }
        //                $seg_clean = str_replace('%20', '-', $seg_clean);
        //                $seg_clean = str_replace(' ', '-', $seg_clean);
        //                $seg_clean = str_replace('.', '', $seg_clean);
        //                $attrs1 = crc32(serialize($attrs) . $seg_clean . $mw_mod_counter);
        //                $attrs1 = str_replace('%20', '-', $attrs1);
        //                $attrs1 = str_replace(' ', '-', $attrs1);
        //                $attrs['id'] = ($config['module_class'] . '-' . $attrs1);
        //
        //            }
        //            if (isset($attrs['id']) and strstr($attrs['id'], '__MODULE_CLASS_NAME__')){
        //                $attrs['id'] = str_replace('__MODULE_CLASS_NAME__', $config['module_class'], $attrs['id']);
        //                //$attrs['id'] = ('__MODULE_CLASS__' . '-' . $attrs1);
        //            }
        //
        //
        //            $l1 = new \Microweber\View($try_file1);
        //            $l1->config = $config;
        //            $l1->app = $this->app;
        //            if (!empty($config)){
        //                foreach ($config as $key1 => $value1) {
        //                    mw_var($key1, $value1);
        //                }
        //            }
        //
        //
        //            if (!isset($attrs['module'])){
        //                $attrs['module'] = $module_name;
        //            }
        //
        //            if (!isset($attrs['parent-module'])){
        //                $attrs['parent-module'] = $module_name;
        //            }
        //
        //            if (!isset($attrs['parent-module-id'])){
        //                $attrs['parent-module-id'] = $attrs['id'];
        //            }
        //            $mw_restore_get = mw_var('mw_restore_get');
        //            if ($mw_restore_get!=false and is_array($mw_restore_get)){
        //                $l1->_GET = $mw_restore_get;
        //                $_GET = $mw_restore_get;
        //            }
        //            if (defined('MW_MODULE_ONDROP')){
        //                if (!isset($attrs['ondrop'])){
        //                    $attrs['ondrop'] = true;
        //                }
        //            }
        //            $l1->params = $attrs;
        //
        //            if ($config){
        //
        //                $this->current_module = ($config);
        //            }
        //            if ($attrs){
        //                $this->current_module_params = ($attrs);
        //
        //            }
        //            if (isset($attrs['view']) && (trim($attrs['view'])=='empty')){
        //
        //                $module_file = EMPTY_MOD_STR;
        //            } elseif (isset($attrs['view']) && (trim($attrs['view'])=='admin')) {
        //                $module_file = $l1->__toString();
        //            } else {
        //                if (isset($attrs['display']) && (trim($attrs['display'])=='custom')){
        //                    $module_file = $l1->__get_vars();
        //
        //                    return $module_file;
        //                } else if (isset($attrs['format']) && (trim($attrs['format'])=='json')){
        //                    $module_file = $l1->__get_vars();
        //                    header("Content-type: application/json");
        //                    exit(json_encode($module_file));
        //                } else {
        //                    $module_file = $l1->__toString();
        //                }
        //            }
        //            //	$l1 = null;
        //            unset($l1);
        //            if ($lic!=false and isset($lic["error"]) and ($lic["error"]=='no_license_found')){
        //                $lic_l1_try_file1 = MW_ADMIN_VIEWS_DIR . 'activate_license.php';
        //                $lic_l1 = new \Microweber\View($lic_l1_try_file1);
        //
        //                $lic_l1->config = $config;
        //                $lic_l1->params = $attrs;
        //
        //                $lic_l1e_file = $lic_l1->__toString();
        //                unset($lic_l1);
        //                $module_file = $lic_l1e_file . $module_file;
        //            }
        //
        //            // $mw_loaded_mod_memory[$function_cache_id] = $module_file;
        //            return $module_file;
        //        } else {
        //            //define($cache_content, FALSE);
        //            // $mw_loaded_mod_memory[$function_cache_id] = false;
        //            return false;
        //        }
    }