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;
}