public function install()
{
$this->user->restrict('Admin.Extensions.Access');
$this->user->restrict('Admin.Extensions.Manage');
$extension_name = $this->input->get('name') ? $this->input->get('name') : $this->uri->rsegment(4);
if ($this->Extensions_model->extensionExists($extension_name)) {
$config = $this->extension->loadConfig($extension_name, FALSE, TRUE);
$extension_title = isset($config['extension_meta']['title']) ? $config['extension_meta']['title'] : '';
$extension_type = isset($config['extension_meta']['type']) ? $config['extension_meta']['type'] : '';
if ($this->Extensions_model->install($this->uri->rsegment(3), $extension_name, $config)) {
$success = TRUE;
log_activity($this->user->getStaffId(), 'installed', 'extensions', get_activity_message('activity_custom_no_link', array('{staff}', '{action}', '{context}', '{item}'), array($this->user->getStaffName(), 'installed', $extension_type . ' extension', $extension_title)));
$this->alert->set('success', sprintf($this->lang->line('alert_success'), "Extension {$extension_title} installed "));
if (isset($config['layout_ready']) and $config['layout_ready'] === TRUE) {
$this->alert->set('info', sprintf($this->lang->line('alert_info_layouts'), site_url('layouts')));
}
}
}
if (empty($success)) {
$this->alert->danger_now($this->lang->line('alert_error_try_again'));
}
redirect(referrer_url());
}