public function index()
{
$this->user->restrict('Admin.Extensions');
$url = '?';
$filter = array();
if ($this->input->get('page')) {
$filter['page'] = (int) $this->input->get('page');
} else {
$filter['page'] = '';
}
if ($this->config->item('page_limit')) {
$filter['limit'] = $this->config->item('page_limit');
}
if ($this->input->get('filter_search')) {
$filter['filter_search'] = $data['filter_search'] = $this->input->get('filter_search');
$url .= 'filter_search=' . $filter['filter_search'] . '&';
} else {
$data['filter_search'] = '';
}
if ($this->input->get('filter_type')) {
$filter['filter_type'] = $data['filter_type'] = $this->input->get('filter_type');
$url .= 'filter_type=' . $filter['filter_type'] . '&';
} else {
$filter['filter_type'] = $data['filter_type'] = 'module';
}
if (is_numeric($this->input->get('filter_status'))) {
$filter['filter_status'] = $data['filter_status'] = $this->input->get('filter_status');
$url .= 'filter_status=' . $filter['filter_status'] . '&';
} else {
$filter['filter_status'] = $data['filter_status'] = '';
}
if ($this->input->get('sort_by')) {
$filter['sort_by'] = $data['sort_by'] = $this->input->get('sort_by');
} else {
$filter['sort_by'] = $data['sort_by'] = 'name';
}
if ($this->input->get('order_by')) {
$filter['order_by'] = $data['order_by'] = $this->input->get('order_by');
$data['order_by_active'] = $this->input->get('order_by') . ' active';
} else {
$filter['order_by'] = $data['order_by'] = 'ASC';
$data['order_by_active'] = 'ASC';
}
$this->template->setTitle($this->lang->line('text_title'));
$this->template->setHeading($this->lang->line('text_heading'));
$this->template->setButton($this->lang->line('button_new'), array('class' => 'btn btn-primary', 'href' => page_url() . '/add'));
$this->template->setButton($this->lang->line('button_browse'), array('class' => 'btn btn-default disabled', 'href' => page_url() . '/browse'));
$order_by = (isset($filter['order_by']) and $filter['order_by'] == 'ASC') ? 'DESC' : 'ASC';
$data['sort_name'] = site_url('extensions' . $url . 'sort_by=name&order_by=' . $order_by);
$data['sort_type'] = site_url('extensions' . $url . 'sort_by=type&order_by=' . $order_by);
$data['extensions'] = array();
$results = $this->Extensions_model->getList($filter);
foreach ($results as $result) {
if (!is_array($result['config'])) {
$this->alert->warning_now($result['config']);
continue;
}
if ($result['installed'] === TRUE and $result['status'] === '1') {
$manage = 'uninstall';
} else {
$manage = 'install';
}
$data['extensions'][] = array('extension_id' => $result['extension_id'], 'author' => isset($result['author']) ? $result['author'] : '--', 'name' => $result['name'], 'title' => $result['title'], 'version' => !empty($result['meta']['version']) ? $result['meta']['version'] : '', 'type' => ucfirst($result['type']), 'description' => isset($result['description']) ? substr($result['description'], 0, 128) : '', 'installed' => $result['installed'], 'settings' => $result['settings'], 'status' => $result['status'], 'edit' => site_url("extensions/edit/{$result['type']}/{$result['name']}"), 'delete' => site_url("extensions/delete/{$result['type']}/{$result['name']}"), 'manage' => site_url("extensions/{$manage}/{$result['type']}/{$result['name']}"));
}
$this->template->render('extensions', $data);
}