public function delete()
{
$this->user->restrict('Admin.Extensions.Access');
$this->user->restrict('Admin.Extensions.Delete');
$this->template->setTitle($this->lang->line('text_delete_heading'));
$this->template->setHeading($this->lang->line('text_delete_heading'));
$data['extension_name'] = $this->input->get('name') ? $this->input->get('name') : $this->uri->rsegment(4);
if (!$this->uri->rsegment(3) or !$this->Extensions_model->extensionExists($data['extension_name'])) {
redirect(referrer_url());
}
$extension = $this->Extensions_model->getExtension($data['extension_name'], FALSE);
$config = $this->extension->loadConfig($data['extension_name'], FALSE, TRUE);
$data['extension_title'] = isset($config['extension_meta']['title']) ? $config['extension_meta']['title'] : '';
$data['extension_type'] = isset($config['extension_meta']['type']) ? $config['extension_meta']['type'] : '';
$data['extension_data'] = !empty($extension['ext_data']) ? TRUE : FALSE;
$data['delete_action'] = !empty($extension['ext_data']) ? $this->lang->line('text_files_data') : $this->lang->line('text_files');
if ($this->input->post('confirm_delete') === $data['extension_name']) {
$delete_data = $this->input->post('delete_data') === '1' ? TRUE : FALSE;
if ($this->Extensions_model->delete($this->uri->rsegment(3), $data['extension_name'], $delete_data)) {
log_activity($this->user->getStaffId(), 'deleted', 'extensions', get_activity_message('activity_custom_no_link', array('{staff}', '{action}', '{context}', '{item}'), array($this->user->getStaffName(), 'deleted', $data['extension_type'] . ' extension', $data['extension_title'])));
$this->alert->set('success', sprintf($this->lang->line('alert_success'), "Extension {$data['extension_name']} deleted "));
} else {
$this->alert->danger_now($this->lang->line('alert_error_try_again'));
}
redirect('extensions?filter_type=' . $data['extension_type']);
}
$files = $this->Extensions_model->getExtensionFiles($data['extension_name']);
$data['files_to_delete'] = $files;
$this->template->render('extensions_delete', $data);
}