private function _addExtension()
{
$this->user->restrict('Admin.Extensions.Add', site_url('extensions/add'));
if (isset($_FILES['extension_zip'])) {
if ($this->validateUpload() === TRUE) {
$message = $this->Extensions_model->extractExtension($_FILES['extension_zip']);
if ($message === TRUE) {
$extension_name = $_FILES['extension_zip']['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'] : '';
$alert = "Extension {$extension_title} uploaded ";
if ($this->Extensions_model->install($extension_type, $extension_name, $config)) {
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)));
$alert .= "and installed ";
}
$this->alert->set('success', sprintf($this->lang->line('alert_success'), $alert));
return TRUE;
}
$this->alert->danger_now(sprintf($this->lang->line('alert_error'), $message));
}
}
return FALSE;
}