private function _validateForm() { if (!$this->user->canModify('design/menu')) { $this->error['warning'] = $this->language->get('error_permission'); } if (!empty($this->request->post['item_id'])) { $ids = $this->menu->getItemIds(); if (!ctype_alnum($this->request->post['item_id'])) { $this->error['item_id'] = $this->language->get('error_non_ascii'); } else { if (in_array($this->request->post['item_id'], $ids)) { $this->error['item_id'] = $this->language->get('error_non_unique'); } } } if (empty($this->request->post['item_id']) && empty($this->request->get['item_id'])) { $this->error['item_id'] = $this->language->get('error_empty'); } if (empty($this->request->post['item_text'][$this->session->data['content_language_id']])) { $this->error['item_text'] = $this->language->get('error_empty'); } if (!$this->error) { return TRUE; } else { return FALSE; } }
private function _validateForm() { if (!$this->user->canModify('design/menu')) { $this->error['warning'] = $this->language->get('error_permission'); } $post = $this->request->post; if (!empty($post['item_id'])) { $ids = $this->menu->getItemIds(); if (!ctype_alnum($post['item_id'])) { $this->error['item_id'] = $this->language->get('error_non_ascii'); } else { if (in_array($post['item_id'], $ids)) { $this->error['item_id'] = $this->language->get('error_non_unique'); } } } if (empty($post['item_id']) && empty($this->request->get['item_id'])) { $this->error['item_id'] = $this->language->get('error_empty'); } if (empty($post['item_text'][$this->language->getContentLanguageID()])) { $this->error['item_text'] = $this->language->get('error_empty'); } $this->extensions->hk_ValidateData($this); if (!$this->error) { return true; } else { return false; } }
public function update() { //init controller data $this->extensions->hk_InitData($this, __FUNCTION__); $this->loadLanguage('design/menu'); 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(); $item_keys = array('item_text', 'item_url', 'parent_id', 'sort_order'); switch ($this->request->post['oper']) { case 'del': $ids = explode(',', $this->request->post['id']); if (!empty($ids)) { $all_menu_ids = $menu->getItemIds(); foreach ($ids as $item_id) { if (in_array($item_id, $all_menu_ids)) { $menu->deleteMenuItem($item_id); } } } break; case 'save': $ids = explode(',', $this->request->post['id']); if (!empty($ids)) { //resort required. if ($this->request->post['resort'] == 'yes') { //get only ids we need foreach ($ids as $id) { $array[$id] = $this->request->post['sort_order'][$id]; } $new_sort = build_sort_order($ids, min($array), max($array), $this->request->post['sort_direction']); $this->request->post['sort_order'] = $new_sort; } foreach ($ids as $item_id) { $item_values = array(); foreach ($item_keys as $key) { if (isset($this->request->post[$key][$item_id])) { $item_values[$key] = $this->request->post[$key][$item_id]; } } // if item already in menu dataset if ($menu->getMenuItem($item_id)) { $menu->updateMenuItem($item_id, $item_values); } } } break; default: } //update controller data $this->extensions->hk_UpdateData($this, __FUNCTION__); }