Shota
Shota

Reputation: 513

How to create sub modules inside modules folder in CI HMVC design Pattern?

I use CI HMVC design pattern. Currently, this is my module structure:

modules/auth/controllers/backend/Auth.php
modules/auth/models/
modules/auth/views/backend/standart/administrator/login.php
modules/captcha/controllers/backend/captcha.php
modules/captcha/models/Model_captcha.php
modules/captcha/views/backend/standart/administrator/
modules/test/controllers/backend/test.php
modules/test/models/Model_test.php
modules/test/views/backend/standart/administrator/form_test.php

I want to change it so some module grouped into one module. For example, any module that has something to do with login is grouped into one module_login. This is what I am looking for:

modules/module_login/auth/controllers/backend/Auth.php
modules/module_login/auth/models/
modules/module_login/auth/views/backend/standart/administrator/login.php
modules/module_login/captcha/controllers/backend/captcha.php
modules/module_login/captcha/models/Model_captcha.php
modules/module_login/captcha/views/backend/standart/administrator/
modules/test/controllers/backend/test.php
modules/test/models/Model_test.php
modules/test/views/backend/standart/administrator/form_test.php

This is my config in thid_party/MX :

class MX_Config extends CI_Config 
{   
    public function load($file = '', $use_sections = FALSE, $fail_gracefully = FALSE, $_module = '') 
    {
        if (in_array($file, $this->is_loaded, TRUE)) return $this->item($file);

        $_module OR $_module = CI::$APP->router->fetch_module();
        list($path, $file) = Modules::find($file, $_module, 'config/');
        
        if ($path === FALSE)
        {
            parent::load($file, $use_sections, $fail_gracefully);                   
            return $this->item($file);
        }  
        
        if ($config = Modules::load_file($file, $path, 'config'))
        {
            /* reference to the config array */
            $current_config =& $this->config;

            if ($use_sections === TRUE) 
            {
                if (isset($current_config[$file])) 
                {
                    $current_config[$file] = array_merge($current_config[$file], $config);
                } 
                else 
                {
                    $current_config[$file] = $config;
                }
                
            } 
            else 
            {
                $current_config = array_merge($current_config, $config);
            }

            $this->is_loaded[] = $file;
            unset($config);
            return $this->item($file);
        }
    }
}

I read here and here but still have no clue what to do to get the desired result.

Upvotes: 0

Views: 73

Answers (0)

Related Questions