Addons_model::activate PHP Метод

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

Activate a module
public activate ( $module_directory ) : boolean
Результат boolean
    public function activate($module_directory)
    {
        if (!$this->exists($module_directory)) {
            return FALSE;
        }
        $this->db->from('modules')->where('module_directory', $module_directory);
        $query = $this->db->get();
        if ($query->num_rows() > 0) {
            return FALSE;
        }
        if (!($data = $this->_get_config($module_directory))) {
            return FALSE;
        }
        // Check required
        if (isset($data['required']) && !empty($data['required'])) {
            $fail = FALSE;
            $required = lang('lang_dependencies') . '<br />';
            foreach ($data['required'] as $item) {
                if (!$this->events->active(strtolower($item))) {
                    $required .= $item . '<br />';
                    $fail = TRUE;
                }
            }
            if ($fail) {
                $this->session->set_flashdata('error', $required);
                return FALSE;
            }
        }
        // Check optionals
        if (isset($data['optional']) && !empty($data['optional'])) {
            $show_message = FALSE;
            $optional = lang('lang_optional_dependencies') . '<br />';
            foreach ($data['optional'] as $item) {
                if (!$this->events->active(strtolower($item))) {
                    $optional .= $item . '<br />';
                    $show_message = TRUE;
                }
            }
            if ($show_message) {
                $this->session->set_flashdata('info', $optional);
            }
        }
        // Module doesn't exist
        $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->insert('modules', $module_data);
        if ($this->db->affected_rows() == 0) {
            return FALSE;
        }
        // Delete any cache
        $this->cache->delete('load_addons');
        $module_id = $this->db->insert_id();
        return $this->init_module($module_directory, 'install');
    }