public function get() { //init controller data $this->extensions->hk_InitData($this, __FUNCTION__); $product_id = $this->request->get['product_id']; $resource_type = $this->request->get['resource_type']; if (!$product_id) { $this->rest->setResponseData(array('Error' => 'Missing product ID as a required parameter')); $this->rest->sendResponse(200); return; } $resources = array(); $resource = new AResource('image'); if ($resource_type == 'image') { $images = array(); $results = $resource->getResources('products', $product_id, $this->config->get('storefront_language_id')); foreach ($results as $result) { $thumbnail = $resource->getResourceThumb($result['resource_id'], $this->config->get('config_image_additional_width'), $this->config->get('config_image_additional_height')); if ($thumbnail) { $images[] = array('origial' => HTTP_DIR_RESOURCE . 'image/' . $result['resource_path'], 'thumb' => $thumbnail); } } $resources = $images; } else { if ($resource_type == 'pdf') { // TODO Add support to other types to return files or codes } else { $resource = new AResource('image'); //Getting all available types. NOTE there is no easy way, yet, to tell what resources are available in what type for given product. //This is possible only in admin for now $resources = $resource->getAllResourceTypes(); } } //init controller data $this->extensions->hk_UpdateData($this, __FUNCTION__); $this->rest->setResponseData(array('total' => count($resources), 'resources' => $resources)); $this->rest->sendResponse(200); }
public function main() { //init controller data $this->extensions->hk_InitData($this, __FUNCTION__); $this->loadLanguage('catalog/files'); $this->document->setTitle($this->language->get('heading_title')); $this->loadModel('catalog/product'); $this->loadModel('catalog/download'); $product_id = $this->request->get['product_id']; if (!$product_id) { $this->redirect($this->html->getSecureURL('catalog/product')); } if (has_value($product_id) && $this->request->is_GET()) { $product_info = $this->model_catalog_product->getProduct($product_id); if (!$product_info) { $this->session->data['warning'] = $this->language->get('error_product_not_found'); $this->redirect($this->html->getSecureURL('catalog/product')); } // remove if (has_value($this->request->get['act']) && $this->request->get['act'] == 'delete') { $download_info = $this->model_catalog_download->getDownload($this->request->get['download_id']); $map_list = $this->model_catalog_download->getDownloadMapList($this->request->get['download_id']); if (sizeof($map_list) == 1 && key($map_list) == $product_id || $download_info['shared'] != 1) { $this->model_catalog_download->deleteDownload($this->request->get['download_id']); } else { $this->model_catalog_download->unmapDownload($this->request->get['download_id'], $product_id); } $this->session->data['success'] = $this->language->get('text_success_remove'); $this->redirect($this->html->getSecureURL('catalog/product_files', '&product_id=' . $product_id)); } } //Downloads disabled. Warn user if (!$this->config->get('config_download')) { $this->error['warning'] = $this->html->convertLinks($this->language->get('error_downloads_disabled')); } if ($this->request->is_POST() && $this->_validateForm()) { foreach ($this->request->post['selected'] as $id) { $this->model_catalog_download->mapDownload($id, $product_id); } $this->session->data['success'] = $this->language->get('text_map_success'); $this->redirect($this->html->getSecureURL('catalog/product_files', '&product_id=' . $product_id)); } $this->view->assign('error_warning', $this->error['warning']); $this->view->assign('success', $this->session->data['success']); if (isset($this->session->data['success'])) { unset($this->session->data['success']); } $this->data['product_description'] = $this->model_catalog_product->getProductDescriptions($product_id); $this->document->initBreadcrumb(array('href' => $this->html->getSecureURL('index/home'), 'text' => $this->language->get('text_home'), 'separator' => FALSE)); $this->document->addBreadcrumb(array('href' => $this->html->getSecureURL('catalog/product'), 'text' => $this->language->get('heading_title'), 'separator' => ' :: ')); $this->document->addBreadcrumb(array('href' => $this->html->getSecureURL('catalog/product/update', '&product_id=' . $product_id), 'text' => $this->language->get('text_edit') . ' ' . $this->language->get('text_product') . ' - ' . $this->data['product_description'][$this->session->data['content_language_id']]['name'], 'separator' => ' :: ')); $this->document->addBreadcrumb(array('href' => $this->html->getSecureURL('catalog/product_files', '&product_id=' . $product_id), 'text' => $this->language->get('tab_files'), 'separator' => ' :: ', 'current' => true)); $this->data['active'] = 'files'; //load tabs controller $tabs_obj = $this->dispatch('pages/catalog/product_tabs', array($this->data)); $this->data['product_tabs'] = $tabs_obj->dispatchGetOutput(); unset($tabs_obj); $this->loadModel('catalog/download'); $this->data['downloads'] = array(); $this->data['product_files'] = $this->model_catalog_download->getProductDownloadsDetails($product_id); $rl = new AResource('download'); $rl_dir = $rl->getTypeDir(); foreach ($this->data['product_files'] as &$file) { $resource_id = $rl->getIdFromHexPath(str_replace($rl_dir, '', $file['filename'])); $resource_info = $rl->getResource($resource_id); $thumbnail = $rl->getResourceThumb($resource_id, $this->config->get('config_image_grid_width'), $this->config->get('config_image_grid_height')); if ($resource_info['resource_path']) { $file['icon'] = $this->html->buildResourceImage(array('url' => $thumbnail, 'width' => $this->config->get('config_image_grid_width'), 'height' => $this->config->get('config_image_grid_height'), 'attr' => 'alt="' . $resource_info['title'] . '"')); } else { $file['icon'] = $resource_info['resource_code']; } $file['status'] = $file['status'] ? $this->language->get('text_enabled') : $this->language->get('text_disabled'); $file['button_edit'] = $this->html->buildElement(array('type' => 'button', 'text' => $this->language->get('button_edit'), 'href' => $this->html->getSecureURL('r/product/product/buildDownloadForm', '&product_id=' . $product_id . '&download_id=' . $file['download_id']))); $map_list = $this->model_catalog_download->getDownloadMapList($file['download_id']); if (sizeof($map_list) == 1 && key($map_list) == $product_id || $file['shared'] != 1) { $text = $this->language->get('button_delete'); $icon = 'fa-trash-o'; } else { $text = $this->language->get('button_unmap'); $icon = 'fa-chain-broken'; } $file['button_delete'] = $this->html->buildElement(array('type' => 'button', 'text' => $text, 'href' => $this->html->getSecureURL('catalog/product_files', '&act=delete&product_id=' . $product_id . '&download_id=' . $file['download_id']), 'icon' => $icon)); $orders_count = $this->model_catalog_download->getTotalOrdersWithProduct($product_id); if ($orders_count) { $file['push_to_customers'] = $this->html->buildElement(array('type' => 'button', 'name' => 'push_to_customers', 'text' => sprintf($this->language->get('text_push_to_orders'), $orders_count), 'title' => $this->language->get('text_push'), 'icon' => 'fa-share-alt-square', 'href' => $this->html->getSecureURL('catalog/product_files/pushToCustomers', '&product_id=' . $product_id . '&download_id=' . $file['download_id']), 'attr' => 'data-orders-count="' . $orders_count . '"')); } } unset($file); $this->data['button_add_file'] = $this->html->buildElement(array('type' => 'button', 'text' => $this->language->get('text_add_file'), 'href' => $this->html->getSecureURL('r/product/product/buildDownloadForm', '&product_id=' . $product_id))); if ($this->config->get('config_embed_status')) { $this->data['embed_url'] = $this->html->getSecureURL('common/do_embed/product', '&product_id=' . $product_id); } $this->addChild('pages/catalog/product_summary', 'summary_form', 'pages/catalog/product_summary.tpl'); $this->view->assign('help_url', $this->gen_help_url('product_files')); $this->view->assign('form_language_switch', $this->html->getContentLanguageSwitcher()); $this->view->batchAssign($this->data); $this->processTemplate('pages/catalog/product_files.tpl'); //update controller data $this->extensions->hk_UpdateData($this, __FUNCTION__); }
public function main() { //init controller data $this->extensions->hk_InitData($this, __FUNCTION__); $language_id = $this->session->data['content_language_id']; $this->loadLanguage('design/menu'); $this->loadModel('tool/image'); $model = $this->model_tool_image; $page = $this->request->post['page']; // get the requested page if ((int) $page < 0) { $page = 0; } $limit = $this->request->post['rows']; // get how many rows we want to have into the grid $sidx = $this->request->post['sidx']; // get index row - i.e. user click to sort $sord = $this->request->post['sord']; // get the direction $search_str = ''; //process custom search form $this->menu = new AMenu_Storefront(); $menu_items = $this->menu->getMenuItems(); $new_level = 0; $leafnodes = array(); //get all leave menus $leafnodes = $this->menu->getLeafMenus(); //build parent id $menu_parent_id = ''; if ($this->request->get['parent_id']) { $menu_parent_id = $this->request->get['parent_id']; } else { if ($this->request->post['nodeid']) { $menu_parent_id = $this->request->post['nodeid']; $new_level = (int) $this->request->post["n_level"] + 1; } } if (!empty($menu_parent_id)) { $menu_items = $menu_items[$menu_parent_id]; } else { $menu_items = $menu_items[""]; } //sort $allowedSort = array('item_id', 'item_text', 'sort_order'); $allowedDirection = array(SORT_ASC => 'asc', SORT_DESC => 'desc'); if (!in_array($sidx, $allowedSort)) { $sidx = $allowedSort[0]; } if (!in_array($sord, $allowedDirection)) { $sord = SORT_ASC; } else { $sord = array_search($sord, $allowedDirection); } $sort = array(); $total = count($menu_items); $response = new stdClass(); if ($total > 0) { foreach ($menu_items as $item) { if ($sidx == 'item_text') { $sort[] = $item[$sidx][$language_id]; } else { $sort[] = $item[$sidx]; } } array_multisort($sort, $sord, $menu_items); $total_pages = ceil($total / $limit); $results = array_slice($menu_items, ($page - 1) * -$limit, $limit); $i = 0; $ar = new AResource('image'); foreach ($results as $result) { $resource = $ar->getResource($result['item_icon_rl_id']); if ($resource['resource_path'] || !$resource['resource_code']) { $thumb = $ar->getResourceThumb($result['item_icon_rl_id'], (int) $this->config->get('config_image_grid_width'), (int) $this->config->get('config_image_grid_height')); $icon = '<img src="' . $thumb . '" alt="" />'; } elseif ($resource['resource_code']) { $icon = '<i class="fa fa-code fa-2x"></i>'; } $response->rows[$i]['id'] = $result['item_id']; $response->rows[$i]['cell'] = array($icon, $result['item_id'], $result['item_text'][$language_id], $this->html->buildInput(array('name' => 'sort_order[' . $result['item_id'] . ']', 'value' => $result['sort_order'])), 'action', $new_level, $menu_parent_id ? $menu_parent_id : NULL, $result['item_id'] == $leafnodes[$result['item_id']] ? true : false, false); $i++; } } else { $total_pages = 0; } $response->page = $page; $response->total = $total_pages; $response->records = $total; //update controller data $this->extensions->hk_UpdateData($this, __FUNCTION__); $this->load->library('json'); $this->response->setOutput(AJson::encode($response)); }
private function _json_response() { // json-response for jqgrid $this->loadLanguage('catalog/download'); $this->loadModel('catalog/download'); $excludes = $this->session->data['multivalue_excludes']; $grid_filter_params = array('name'); // if need to show all downloads of product if ($this->request->get['product_id']) { $additional_filter_string = sizeof($excludes) ? "AND p2d.download_id NOT IN (" . implode(', ', $excludes) . ")" : ''; if (isset($this->request->get['shared_only'])) { $additional_filter_string .= 'AND shared=1'; } $filter_grid = new AFilter(array('method' => 'post', 'grid_filter_params' => $grid_filter_params, 'additional_filter_string' => $additional_filter_string)); $results = $this->model_catalog_download->getProductDownloadsDetails($this->request->get['product_id'], $filter_grid->getFilterData()); $total = sizeof($results); } else { //Prepare filter config $additional_filter_string = sizeof($excludes) ? " d.download_id NOT IN (" . implode(', ', $excludes) . ")" : ''; if (isset($this->request->get['shared_only'])) { $additional_filter_string .= 'AND shared=1'; } $filter_grid = new AFilter(array('method' => 'post', 'grid_filter_params' => $grid_filter_params, 'additional_filter_string' => $additional_filter_string)); $total = $this->model_catalog_download->getTotalDownloads($filter_grid->getFilterData()); $results = $this->model_catalog_download->getDownloads($filter_grid->getFilterData()); } $response = new stdClass(); $response->page = $filter_grid->getParam('page'); $response->total = $filter_grid->calcTotalPages($total); $response->records = $total; $i = 0; $response->userdata = (object) array('page' => $page); $data_type = 'download_id'; $rl = new AResource('download'); $rl_dir = $rl->getTypeDir(); if ($results) { foreach ($results as $result) { $resource_id = $rl->getIdFromHexPath(str_replace($rl_dir, '', $result['filename'])); $resource_info = $rl->getResource($resource_id); $thumbnail = $rl->getResourceThumb($resource_id, 27, 27); if ($resource_info['resource_path']) { $thumbnail = $this->html->buildResourceImage(array('url' => $thumbnail, 'width' => 27, 'height' => 27, 'attr' => 'alt="' . $resource_info['title'] . '"')); } else { $thumbnail = $resource_info['resource_code']; } $response->rows[$i]['id'] = $result['download_id']; $response->rows[$i]['cell'] = array($thumbnail, $result['name'], '<a class="btn_action" href="JavaScript:void(0);" onclick="showPopup(\'' . $this->html->getSecureURL('catalog/download/update', '&' . $data_type . '=' . $result[$data_type]) . '\')" title="' . $this->language->get('text_view') . '">' . '<img height="27" src="' . RDIR_TEMPLATE . 'image/icons/icon_grid_view.png" alt="' . $this->language->get('text_edit') . '" /></a>'); $i++; } } $this->data['response'] = AJson::encode($response); }
/** * @param array $file_data * @param string $tpl */ public function buildDownloadForm($file_data, $tpl) { $this->data = array(); //init controller data $this->extensions->hk_InitData($this, __FUNCTION__); $this->loadLanguage('catalog/files'); $this->loadModel('localisation/order_status'); $this->loadModel('catalog/download'); $product_id = $file_data['product_id']; $order_statuses = $this->model_localisation_order_status->getOrderStatuses(); $this->data['date_added'] = dateISO2Display($file_data['date_added'], $this->language->get('date_format_short') . ' ' . $this->language->get('time_format')); $this->data['date_modified'] = dateISO2Display($file_data['date_modified'], $this->language->get('date_format_short') . ' ' . $this->language->get('time_format')); $this->data['action'] = $this->html->getSecureURL('r/product/product/processDownloadForm', '&product_id=' . $product_id); $this->data['form_title'] = $this->language->get('text_edit') . ' ' . $this->language->get('text_product'); $this->data['download_id'] = (int) $file_data['download_id']; if ($this->data['download_id']) { $form = new AForm('HS'); $this->data['update'] = $this->html->getSecureURL('listing_grid/download/update_field', '&id=' . $this->data['download_id']); } else { $form = new AForm('HT'); } $form->setForm(array('form_name' => 'downloadFrm' . $file_data['download_id'], 'update' => $this->data['update'])); $this->data['form']['form_open'] = $form->getFieldHtml(array('type' => 'form', 'name' => 'downloadFrm' . $file_data['download_id'], 'attr' => 'confirm-exit="true"', 'action' => $this->data['action'])); $this->data['form']['submit'] = $form->getFieldHtml(array('type' => 'button', 'name' => 'submit', 'text' => (int) $this->data['download_id'] ? $this->language->get('button_save') : $this->language->get('text_add'), 'style' => 'button1')); $this->data['form']['cancel'] = $form->getFieldHtml(array('type' => 'button', 'name' => 'cancel', 'href' => $this->html->getSecureURL('catalog/product_files', '&product_id=' . $product_id), 'text' => $this->language->get('button_cancel'), 'style' => 'button2')); $rl = new AResource('download'); $rl_dir = $rl->getTypeDir(); $resource_id = $rl->getIdFromHexPath(str_replace($rl_dir, '', $file_data['filename'])); $resource_info = $rl->getResource($resource_id); $thumbnail = $rl->getResourceThumb($resource_id, 30, 30); if ($resource_info['resource_path']) { $this->data['icon'] = $this->html->buildResourceImage(array('url' => $thumbnail, 'width' => 30, 'height' => 30, 'attr' => 'alt="' . $resource_info['title'] . '"')); } else { $this->data['icon'] = $resource_info['resource_code']; } if ($resource_id) { $this->data['preview']['href'] = $this->html->getSecureURL('common/resource_library/get_resource_preview', '&resource_id=' . $resource_id, true); $this->data['preview']['path'] = 'resources/' . $file_data['filename']; } $r = $this->dispatch('responses/common/resource_library/get_resource_html_single', array('type' => 'download', 'wrapper_id' => 'download_' . (int) $this->data['download_id'], 'resource_id' => $resource_id, 'field' => 'download_rl_path_' . $this->data['download_id'])); $this->data['resource'] = $r->dispatchGetOutput(); $resources_scripts = $this->dispatch('responses/common/resource_library/get_resources_scripts', array('object_name' => 'downloads', 'object_id' => (int) $this->data['download_id'], 'types' => 'download', 'mode' => 'url')); $this->data['resources_scripts'] = $resources_scripts->dispatchGetOutput(); $this->data['form']['fields']['download_rl_path'] = $form->getFieldHtml(array('type' => 'hidden', 'name' => 'download_rl_path_' . $this->data['download_id'], 'value' => htmlspecialchars($file_data['filename'], ENT_COMPAT, 'UTF-8'))); $this->data['form']['fields']['status'] = $form->getFieldHtml(array('type' => 'checkbox', 'name' => 'status', 'value' => 1, 'checked' => $file_data['status'] ? true : false, 'style' => 'btn_switch')); $orders_count = $this->model_catalog_download->getTotalOrdersWithProduct($product_id); if ($orders_count) { $this->data['push_to_customers'] = $this->html->buildElement(array('type' => 'button', 'name' => 'push_to_customers', 'title' => sprintf($this->language->get('text_push_to_orders'), $orders_count), 'text' => $this->language->get('text_push'), 'href' => $this->html->getSecureURL('r/product/product/pushToCustomers', '&product_id=' . $product_id . '&download_id=' . $this->data['download_id']), 'style' => 'button2', 'attr' => 'data-orders-count="' . $orders_count . '"')); } $this->data['maplist'] = array(); $file_data['map_list'] = (array) $file_data['map_list']; foreach ($file_data['map_list'] as $map_id => $map_name) { if ($map_id == $product_id) { continue; } $this->data['maplist'][] = array('href' => $this->html->getSecureURL('catalog/product_files', '&product_id=' . $map_id . '&download_id=' . $this->data['download_id'], true), 'text' => $map_name); } if (!sizeof($this->data['maplist'])) { $this->data['already_shared'] = false; } else { $this->data['already_shared'] = true; } $this->data['delete_unmap_href'] = $this->html->getSecureURL('catalog/product_files', '&act=' . ($file_data['shared'] ? 'unmap' : 'delete') . '&product_id=' . $product_id . '&download_id=' . $this->data['download_id'], true); $this->data['form']['fields']['shared'] = $form->getFieldHtml(array('type' => 'checkbox', 'name' => 'shared', 'value' => $file_data['shared'], 'attr' => $this->data['already_shared'] ? ' disabled=disabled' : '')); if ($file_data['shared']) { $this->data['text_attention_shared'] = $this->language->get('attention_shared'); } $this->data['form']['fields']['download_id'] = $form->getFieldHtml(array('type' => 'hidden', 'name' => 'download_id', 'value' => $this->data['download_id'])); $this->data['form']['fields']['name'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'name', 'value' => $file_data['name'], 'attr' => ' maxlength="64" ')); $this->data['form']['fields']['mask'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'mask', 'value' => $file_data['mask'])); $this->data['form']['fields']['max_downloads'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'max_downloads', 'value' => $file_data['max_downloads'], 'style' => 'small-field')); $this->data['form']['fields']['activate'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'activate', 'value' => $file_data['activate'], 'options' => array('' => $this->language->get('text_select'), 'before_order' => $this->language->get('text_before_order'), 'immediately' => $this->language->get('text_immediately'), 'order_status' => $this->language->get('text_on_order_status'), 'manually' => $this->language->get('text_manually')), 'required' => true, 'style' => 'download_activate no-save')); $options = array('' => $this->language->get('text_select')); foreach ($order_statuses as $order_status) { $options[$order_status['order_status_id']] = $order_status['name']; } $this->data['form']['fields']['order_statuses'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'activate_order_status_id', 'value' => $file_data['activate_order_status_id'], 'options' => $options, 'required' => true, 'style' => 'no-save')); $this->data['form']['fields']['sort_order'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'sort_order', 'style' => 'small-field', 'value' => $file_data['sort_order'])); $this->data['form']['fields']['expire_days'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'expire_days', 'style' => 'small-field', 'value' => $file_data['expire_days'])); /* * DOWNLOAD ATTRIBUTES PIECE OF FORM * */ $attributes = $this->model_catalog_download->getDownloadAttributes($this->data['download_id']); $elements = HtmlElementFactory::getAvailableElements(); $html_multivalue_elements = HtmlElementFactory::getMultivalueElements(); $html_elements_with_options = HtmlElementFactory::getElementsWithOptions(); if (!$attributes) { $attr_mng = new AAttribute_Manager('download_attribute'); $attr_type_id = $attr_mng->getAttributeTypeID('download_attribute'); $this->data['text_no_download_attributes_yet'] = sprintf($this->language->get('text_no_download_attributes_yet'), $this->html->getSecureURL('catalog/attribute/insert', '&attribute_type_id=' . $attr_type_id)); } else { foreach ($attributes as $attribute) { $html_type = $elements[$attribute['element_type']]['type']; if (!$html_type || !$attribute['status']) { continue; } $values = $value = array(); //values that was setted if (in_array($attribute['element_type'], $html_elements_with_options) && $attribute['element_type'] != 'R') { if (is_array($attribute['selected_values'])) { foreach ($attribute['selected_values'] as $val) { $value[$val] = $val; } } else { $value = $attribute['selected_values']; } } else { if (isset($attribute['selected_values'])) { $value = $attribute['selected_values']; if ($attribute['element_type'] == 'R' && is_array($value)) { $value = current($value); } } else { $value = $attribute['values'][0]['value']; } } // possible values foreach ($attribute['values'] as $val) { $values[$val['attribute_value_id']] = $val['value']; } if (!in_array($attribute['element_type'], $html_multivalue_elements)) { $option_name = 'attributes[' . $this->data['download_id'] . '][' . $attribute['attribute_id'] . ']'; } else { $option_name = 'attributes[' . $this->data['download_id'] . '][' . $attribute['attribute_id'] . '][' . $attribute['attribute_value_id'] . ']'; } $disabled = ''; $required = $attribute['required']; $option_data = array('type' => $html_type, 'name' => $option_name, 'value' => $value, 'options' => $values, 'required' => $required, 'attr' => $disabled, 'style' => 'large-field'); if ($html_type == 'checkboxgroup') { $option_data['scrollbox'] = true; } $this->data['entry_attribute_' . $this->data['download_id'] . '_' . $attribute['attribute_id']] = $attribute['name']; $this->data['attributes'][$this->data['download_id'] . '_' . $attribute['attribute_id']] = $form->getFieldHtml($option_data); } } // for new download - create form for mapping shared downloads to product if (!$file_data['download_id']) { if (!$this->registry->has('jqgrid_script')) { $locale = $this->session->data['language']; if (!file_exists(DIR_ROOT . '/' . RDIR_TEMPLATE . 'javascript/jqgrid/js/i18n/grid.locale-' . $locale . '.js')) { $locale = 'en'; } $this->document->addScript(RDIR_TEMPLATE . 'javascript/jqgrid/js/i18n/grid.locale-' . $locale . '.js'); $this->document->addScript(RDIR_TEMPLATE . 'javascript/jqgrid/js/jquery.jqGrid.min.js'); $this->document->addScript(RDIR_TEMPLATE . 'javascript/jqgrid/plugins/jquery.grid.fluid.js'); $this->document->addScript(RDIR_TEMPLATE . 'javascript/jqgrid/js/jquery.ba-bbq.min.js'); $this->document->addScript(RDIR_TEMPLATE . 'javascript/jqgrid/js/grid.history.js'); //set flag to not include scripts/css twice $this->registry->set('jqgrid_script', true); } $form0 = new AForm('ST'); $form0->setForm(array('form_name' => 'SharedFrm' . $file_data['download_id'], 'update' => $this->data['update'])); $this->data['form0']['form_open'] = $form0->getFieldHtml(array('type' => 'form', 'name' => 'SharedFrm' . $file_data['download_id'], 'attr' => 'confirm-exit="true"', 'action' => $this->html->getSecureURL('catalog/product_files', '&product_id=' . $product_id))); // exclude this product from multivalue list. why we need relate recursion? $this->session->data['multivalue_excludes']['product_id'] = $this->request->get['product_id']; $this->data['form0']['fields']['list_hidden'] = $form0->getFieldHtml(array('id' => 'popup', 'type' => 'multivalue', 'name' => 'popup', 'title' => $this->language->get('text_select_from_list'), 'selected' => $listing_data ? AJson::encode($listing_data) : "{}", 'content_url' => $this->html->getSecureUrl('catalog/download_listing', '&shared_only=1&form_name=SharedFrm' . $file_data['download_id'] . '&multivalue_hidden_id=popup'), 'postvars' => '', 'return_to' => '', 'popup_height' => 708, 'text' => array('selected' => $this->language->get('text_count_selected'), 'edit' => $this->language->get('text_save_edit'), 'apply' => $this->language->get('text_apply'), 'save' => $this->language->get('button_save'), 'reset' => $this->language->get('button_reset')))); } $this->view->batchAssign($this->data); $this->processTemplate($tpl); //update controller data $this->extensions->hk_UpdateData($this, __FUNCTION__); }