protected function getForm()
{
$data['heading_title'] = $this->language->get('heading_title');
$data['text_form'] = !isset($this->request->get['menu_id']) ? $this->language->get('text_add') : $this->language->get('text_edit');
$data['text_enabled'] = $this->language->get('text_enabled');
$data['text_disabled'] = $this->language->get('text_disabled');
$data['text_default'] = $this->language->get('text_default');
$data['text_link'] = $this->language->get('text_link');
$data['text_module'] = $this->language->get('text_module');
$data['entry_name'] = $this->language->get('entry_name');
$data['entry_store'] = $this->language->get('entry_store');
$data['entry_type'] = $this->language->get('entry_type');
$data['entry_link'] = $this->language->get('entry_link');
$data['entry_module'] = $this->language->get('entry_module');
$data['entry_code'] = $this->language->get('entry_code');
$data['entry_status'] = $this->language->get('entry_status');
$data['entry_sort_order'] = $this->language->get('entry_sort_order');
$data['button_save'] = $this->language->get('button_save');
$data['button_cancel'] = $this->language->get('button_cancel');
$data['button_module_add'] = $this->language->get('button_module_add');
$data['button_remove'] = $this->language->get('button_remove');
if (isset($this->error['warning'])) {
$data['error_warning'] = $this->error['warning'];
} else {
$data['error_warning'] = '';
}
if (isset($this->error['name'])) {
$data['error_name'] = $this->error['name'];
} else {
$data['error_name'] = '';
}
$url = '';
if (isset($this->request->get['sort'])) {
$url .= '&sort=' . $this->request->get['sort'];
}
if (isset($this->request->get['order'])) {
$url .= '&order=' . $this->request->get['order'];
}
if (isset($this->request->get['page'])) {
$url .= '&page=' . $this->request->get['page'];
}
$data['breadcrumbs'] = array();
$data['breadcrumbs'][] = array('text' => $this->language->get('text_home'), 'href' => $this->url->link('common/dashboard', 'token=' . $this->session->data['token'], true));
$data['breadcrumbs'][] = array('text' => $this->language->get('heading_title'), 'href' => $this->url->link('design/menu', 'token=' . $this->session->data['token'] . $url, true));
if (!isset($this->request->get['menu_id'])) {
$data['action'] = $this->url->link('design/menu/add', 'token=' . $this->session->data['token'] . $url, true);
} else {
$data['action'] = $this->url->link('design/menu/edit', 'token=' . $this->session->data['token'] . '&menu_id=' . $this->request->get['menu_id'] . $url, true);
}
$data['cancel'] = $this->url->link('design/menu', 'token=' . $this->session->data['token'] . $url, true);
if (isset($this->request->get['menu_id']) && $this->request->server['REQUEST_METHOD'] != 'POST') {
$menu_info = $this->model_design_menu->getMenu($this->request->get['menu_id']);
}
$data['token'] = $this->session->data['token'];
$this->load->model('localisation/language');
$data['languages'] = $this->model_localisation_language->getLanguages();
if (isset($this->request->post['menu_description'])) {
$data['menu_description'] = $this->request->post['menu_description'];
} elseif (isset($this->request->get['menu_id'])) {
$data['menu_description'] = $this->model_design_menu->getMenuDescriptions($this->request->get['menu_id']);
} else {
$data['menu_description'] = array();
}
$this->load->model('setting/store');
$data['stores'] = $this->model_setting_store->getStores();
if (isset($this->request->post['store_id'])) {
$data['store_id'] = $this->request->post['store_id'];
} elseif (!empty($menu_info)) {
$data['store_id'] = $menu_info['store_id'];
} else {
$data['store_id'] = '';
}
if (isset($this->request->post['type'])) {
$data['type'] = $this->request->post['type'];
} elseif (!empty($menu_info)) {
$data['type'] = $menu_info['type'];
} else {
$data['type'] = '';
}
if (isset($this->request->post['link'])) {
$data['link'] = $this->request->post['link'];
} elseif (!empty($menu_info)) {
$data['link'] = $menu_info['link'];
} else {
$data['link'] = '';
}
if (isset($this->request->post['sort_order'])) {
$data['sort_order'] = $this->request->post['sort_order'];
} elseif (!empty($menu_info)) {
$data['sort_order'] = $menu_info['sort_order'];
} else {
$data['sort_order'] = 0;
}
if (isset($this->request->post['status'])) {
$data['status'] = $this->request->post['status'];
} elseif (!empty($menu_info)) {
$data['status'] = $menu_info['status'];
} else {
$data['status'] = true;
}
$this->load->model('extension/extension');
$data['extensions'] = array();
// Get a list of installed modules
$extensions = $this->model_extension_extension->getInstalled('menu');
// Add all the modules which have multiple settings for each module
foreach ($extensions as $code) {
$this->load->language('extension/module/' . $code);
$module_data = array();
$modules = $this->model_extension_module->getModulesByCode($code);
foreach ($modules as $module) {
$module_data[] = array('name' => strip_tags($module['name']), 'code' => $code . '.' . $module['module_id']);
}
if ($module_data) {
$data['extensions'][] = array('name' => strip_tags($this->language->get('heading_title')), 'code' => $code, 'module' => $module_data);
}
}
if (isset($this->request->post['menu_module'])) {
$menu_modules = $this->request->post['menu_module'];
} elseif (isset($this->request->get['menu_id'])) {
$menu_modules = $this->model_design_menu->getMenuModules($this->request->get['menu_id']);
} else {
$menu_modules = array();
}
$data['menu_modules'] = array();
foreach ($menu_modules as $menu_module) {
$part = explode('.', $menu_module['code']);
$this->load->language('extension/menu/' . $part[0]);
$data['menu_modules'][$key][] = array('name' => strip_tags($this->language->get('heading_title')), 'code' => $menu_module['code'], 'sort_order' => $menu_module['sort_order']);
}
$data['header'] = $this->load->controller('common/header');
$data['column_left'] = $this->load->controller('common/column_left');
$data['footer'] = $this->load->controller('common/footer');
$this->response->setOutput($this->load->view('design/menu_form', $data));
}