Addons_model::init_module PHP Метод

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

Install an add-on
public init_module ( $module_name, $action = '', $msg = '' ) : mixed
Результат mixed
    public function init_module($module_name, $action = '', $msg = '')
    {
        $this->_load_init($module_name);
        $class = ucfirst($module_name) . '_init';
        if (class_exists($class)) {
            $init_class = new $class($this);
        }
        if ($action == 'install') {
            if (method_exists($class, 'install')) {
                $msg = $init_class->install();
            }
        } elseif ($action == 'uninstall') {
            if (method_exists($class, 'uninstall')) {
                $msg = $init_class->uninstall();
            }
            $this->db->delete('modules', array('module_name' => $module_name));
        } elseif ($action == 'deactivate') {
            $this->db->delete('modules', array('module_name' => $module_name));
        } elseif ($action == 'upgrade') {
            $data = $this->_get_config($module_name);
            if (method_exists($class, 'upgrade')) {
                $msg = $init_class->upgrade($data['module']['version']);
            }
            $module_data = array('module_name' => $data['module_name'], 'module_display_name' => $data['module_display_name'], 'module_description' => $data['module_description'], 'module_directory' => $data['module_name'], 'module_version' => $data['module_version'], 'module_order' => $data['module_order'], 'module_active' => 'yes');
            $this->db->where('module_name', $module_name);
            $this->db->update('modules', $module_data);
        }
        $this->events->trigger('init_addon');
        // Delete any cache
        $this->cache->delete('load_addons');
        if ($msg != '') {
            return $msg;
        }
        return TRUE;
    }