Extensions::_addExtension PHP Method

_addExtension() private method

private _addExtension ( )
    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;
    }