public function update() { //init controller data $this->extensions->hk_InitData($this, __FUNCTION__); $this->document->setTitle($this->language->get('heading_title')); $this->menu = new AMenu_Storefront(); $this->view->assign('success', $this->session->data['success']); if (isset($this->session->data['success'])) { unset($this->session->data['success']); } if ($this->request->is_POST() && $this->_validateForm()) { if (isset($this->request->post['item_icon'])) { $this->request->post['item_icon'] = html_entity_decode($this->request->post['item_icon'], ENT_COMPAT, 'UTF-8'); } $item_keys = array('item_icon', 'item_text', 'item_url', 'parent_id', 'sort_order', 'item_icon_rl_id'); $update_item = array(); if ($this->request->get['item_id']) { foreach ($item_keys as $item_key) { if (isset($this->request->post[$item_key])) { $update_item[$item_key] = $this->request->post[$item_key]; } } // set condition for updating row $this->menu->updateMenuItem($this->request->get['item_id'], $update_item); } $this->session->data['success'] = $this->language->get('text_success'); $this->redirect($this->html->getSecureURL('design/menu/update', '&item_id=' . $this->request->get['item_id'])); } $this->_getForm(); //update controller data $this->extensions->hk_UpdateData($this, __FUNCTION__); }
/** * update only one field * * @return void */ public function update_field() { //init controller data $this->extensions->hk_InitData($this, __FUNCTION__); $this->loadLanguage('localisation/language'); if (!$this->user->canModify('listing_grid/menu')) { $error = new AError(''); return $error->toJSONResponse('NO_PERMISSIONS_402', array('error_text' => sprintf($this->language->get('error_permission_modify'), 'listing_grid/menu'), 'reset_value' => true)); } $menu = new AMenu_Storefront(); $allowedFields = array('item_icon', 'item_text', 'item_url', 'parent_id', 'sort_order'); if (isset($this->request->get['id'])) { //request sent from edit form. ID in url foreach ($this->request->post as $key => $value) { if (!in_array($key, $allowedFields)) { continue; } $data = array($key => $value); $menu->updateMenuItem($this->request->get['id'], $data); } return null; } //request sent from jGrid. ID is key of array foreach ($this->request->post as $key => $value) { if (!in_array($key, $allowedFields)) { continue; } foreach ($value as $k => $v) { $data = array($key => $v); $menu->updateMenuItem($k, $data); } } //update controller data $this->extensions->hk_UpdateData($this, __FUNCTION__); }