public function main() { //init controller data $this->extensions->hk_InitData($this, __FUNCTION__); $this->loadLanguage('sale/coupon'); $this->loadModel('sale/coupon'); $limit = $this->request->post['rows']; // get how many rows we want to have into the grid $total = $this->model_sale_coupon->getTotalCoupons(array()); if ($total > 0) { $total_pages = ceil($total / $limit); } else { $total_pages = 0; } $response = new stdClass(); $response->page = $page; $response->total = $total_pages; $response->records = $total; $results = $this->model_sale_coupon->getCoupons(array()); $i = 0; $now = time(); foreach ($results as $result) { // check daterange if (dateISO2Int($result['date_start']) > $now || dateISO2Int($result['date_end']) < $now) { $result['status'] = 0; } $response->rows[$i]['id'] = $result['coupon_id']; $response->rows[$i]['cell'] = array($result['name'], $result['code'], moneyDisplayFormat($result['discount']), dateISO2Display($result['date_start'], $this->language->get('date_format_short')), dateISO2Display($result['date_end'], $this->language->get('date_format_short')), $this->html->buildCheckbox(array('name' => 'status[' . $result['coupon_id'] . ']', 'value' => $result['status'], 'style' => 'btn_switch'))); $i++; } //update controller data $this->extensions->hk_UpdateData($this, __FUNCTION__); $this->load->library('json'); $this->response->setOutput(AJson::encode($response)); }
public function main() { //init controller data $this->extensions->hk_InitData($this, __FUNCTION__); $this->loadLanguage('catalog/product'); $this->loadModel('catalog/product'); $this->loadModel('tool/image'); //Clean up parametres if needed if (isset($this->request->get['keyword']) && $this->request->get['keyword'] == $this->language->get('filter_product')) { unset($this->request->get['keyword']); } if (isset($this->request->get['pfrom']) && $this->request->get['pfrom'] == 0) { unset($this->request->get['pfrom']); } if (isset($this->request->get['pto']) && $this->request->get['pto'] == $this->language->get('filter_price_max')) { unset($this->request->get['pto']); } //Prepare filter config $filter_params = array('category', 'status', 'keyword', 'match', 'pfrom', 'pto'); $grid_filter_params = array('name', 'sort_order', 'model'); $filter_form = new AFilter(array('method' => 'get', 'filter_params' => $filter_params)); $filter_grid = new AFilter(array('method' => 'post', 'grid_filter_params' => $grid_filter_params)); $data = array_merge($filter_form->getFilterData(), $filter_grid->getFilterData()); $total = $this->model_catalog_product->getTotalProducts($data); $response = new stdClass(); $response->page = $filter_grid->getParam('page'); $response->total = $filter_grid->calcTotalPages($total); $response->records = $total; $response->userdata = new stdClass(); $response->userdata->classes = array(); $results = $this->model_catalog_product->getProducts($data); $product_ids = array(); foreach ($results as $result) { $product_ids[] = (int) $result['product_id']; } $resource = new AResource('image'); $thumbnails = $resource->getMainThumbList('products', $product_ids, $this->config->get('config_image_grid_width'), $this->config->get('config_image_grid_height')); $i = 0; foreach ($results as $result) { $thumbnail = $thumbnails[$result['product_id']]; $response->rows[$i]['id'] = $result['product_id']; if (dateISO2Int($result['date_available']) > time()) { $response->userdata->classes[$result['product_id']] = 'warning'; } if ($result['call_to_order'] > 0) { $price = $this->language->get('text_call_to_order'); } else { $price = $this->html->buildInput(array('name' => 'price[' . $result['product_id'] . ']', 'value' => moneyDisplayFormat($result['price']))); } $response->rows[$i]['cell'] = array($thumbnail['thumb_html'], $this->html->buildInput(array('name' => 'product_description[' . $result['product_id'] . '][name]', 'value' => $result['name'])), $this->html->buildInput(array('name' => 'model[' . $result['product_id'] . ']', 'value' => $result['model'])), $price, $this->html->buildInput(array('name' => 'quantity[' . $result['product_id'] . ']', 'value' => $result['quantity'])), $this->html->buildCheckbox(array('name' => 'status[' . $result['product_id'] . ']', 'value' => $result['status'], 'style' => 'btn_switch'))); $i++; } //update controller data $this->extensions->hk_UpdateData($this, __FUNCTION__); $this->load->library('json'); $this->response->setOutput(AJson::encode($response)); }
/** * @param $form AForm * @return string */ private function _option_value_form($form) { $this->data['option_attribute'] = $this->attribute_manager->getAttributeByProductOptionId($this->request->get['option_id']); $this->data['option_attribute']['values'] = ''; $this->data['option_attribute']['type'] = 'input'; $product_option_value_id = $this->request->get['product_option_value_id']; $group_attribute = array(); if ($this->data['option_attribute']['attribute_id']) { $group_attribute = $this->attribute_manager->getAttributes(array(), $this->data['language_id'], $this->data['option_attribute']['attribute_id']); } $this->data['elements_with_options'] = HtmlElementFactory::getElementsWithOptions(); //load values for attributes with options if (count($group_attribute)) { $this->data['option_attribute']['group'] = array(); foreach ($group_attribute as $attribute) { $option_id = $attribute['attribute_id']; $this->data['option_attribute']['group'][$option_id]['name'] = $attribute['name']; $this->data['option_attribute']['group'][$option_id]['type'] = 'hidden'; if (in_array($attribute['element_type'], $this->data['elements_with_options'])) { $this->data['option_attribute']['group'][$option_id]['type'] = 'selectbox'; $values = $this->attribute_manager->getAttributeValues($attribute['attribute_id'], $this->language->getContentLanguageID()); foreach ($values as $v) { $this->data['option_attribute']['group'][$option_id]['values'][$v['attribute_value_id']] = addslashes(html_entity_decode($v['value'], ENT_COMPAT, 'UTF-8')); } } } } else { if (in_array($this->data['option_attribute']['element_type'], $this->data['elements_with_options'])) { $this->data['option_attribute']['type'] = 'selectbox'; if (is_null($product_option_value_id)) { // for new row values $values = $this->attribute_manager->getAttributeValues($this->data['option_attribute']['attribute_id'], $this->language->getContentLanguageID()); } else { $values = $this->getProductOptionValues($this->data['option_attribute']['attribute_id'], $this->language->getContentLanguageID()); } foreach ($values as $v) { $this->data['option_attribute']['values'][$v['attribute_value_id']] = addslashes(html_entity_decode($v['value'], ENT_COMPAT, 'UTF-8')); } } } $this->data['cancel'] = $this->html->getSecureURL('product/product/load_option', '&product_id=' . $this->request->get['product_id'] . '&option_id=' . $this->request->get['option_id']); if (isset($this->request->get['product_option_value_id'])) { $this->data['row_id'] = 'row' . $product_option_value_id; $this->data['attr_val_id'] = $product_option_value_id; $item_info = $this->model_catalog_product->getProductOptionValue($this->request->get['product_id'], $product_option_value_id); } else { $this->data['row_id'] = 'new_row'; } $fields = array('default', 'name', 'sku', 'quantity', 'subtract', 'price', 'prefix', 'sort_order', 'weight', 'weight_type', 'attribute_value_id', 'children_options'); foreach ($fields as $f) { if (isset($this->request->post[$f])) { $this->data[$f] = $this->request->post[$f]; } elseif (isset($item_info)) { $this->data[$f] = $item_info[$f]; } else { $this->data[$f] = ''; } } if (isset($this->request->post['name'])) { $this->data['name'] = $this->request->post['name']; } elseif (isset($item_info)) { $this->data['name'] = $item_info['language'][$this->language->getContentLanguageID()]['name']; } if (isset($this->data['option_attribute']['group'])) { //process grouped (parent/chiled) options $this->data['form']['fields']['option_value'] = ''; foreach ($this->data['option_attribute']['group'] as $attribute_id => $data) { $this->data['form']['fields']['option_value'] .= '<span style="white-space: nowrap;">' . $data['name'] . '' . $form->getFieldHtml(array('type' => $data['type'], 'name' => 'attribute_value_id[' . $product_option_value_id . '][' . $attribute_id . ']', 'value' => $this->data['children_options'][$attribute_id], 'options' => $data['values'], 'attr' => '')) . '<span><br class="clr_both">'; } } else { if (in_array($this->data['option_attribute']['element_type'], $this->data['elements_with_options'])) { $this->data['form']['fields']['option_value'] = $form->getFieldHtml(array('type' => $this->data['option_attribute']['type'], 'name' => 'attribute_value_id[' . $product_option_value_id . ']', 'value' => $this->data['attribute_value_id'], 'options' => $this->data['option_attribute']['values'])); } else { if ($this->data['option_attribute']['element_type'] == 'U') { //for file there is no option value $this->data['form']['fields']['option_value'] = ''; } else { $arr = array('type' => 'input', 'name' => 'name[' . $product_option_value_id . ']', 'value' => $this->data['name']); // for checkbox show error when value is empty if ($this->data['option_data']['element_type'] == 'C' && $this->data['name'] == '') { $arr['style'] = 'alert-danger'; } $this->data['form']['fields']['option_value'] = $form->getFieldHtml($arr); } } } $this->data['form']['fields']['product_option_value_id'] = $form->getFieldHtml(array('type' => 'hidden', 'name' => 'product_option_value_id[' . $product_option_value_id . ']', 'value' => $product_option_value_id)); if (in_array($this->data['option_data']['element_type'], $this->data['elements_with_options'])) { $this->data['form']['fields']['default'] = $form->getFieldHtml(array('type' => 'radio', 'name' => 'default_value', 'id' => 'default_' . $product_option_value_id, 'value' => $this->data['default'] ? $product_option_value_id : '', 'options' => array($product_option_value_id => ''))); $this->data['with_default'] = 1; } $this->data['form']['fields']['sku'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'sku[' . $product_option_value_id . ']', 'value' => $this->data['sku'])); $this->data['form']['fields']['quantity'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'quantity[' . $product_option_value_id . ']', 'value' => $this->data['quantity'], 'style' => 'small-field')); $this->data['form']['fields']['subtract'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'subtract[' . $product_option_value_id . ']', 'value' => $this->data['subtract'], 'options' => array(1 => $this->language->get('text_yes'), 0 => $this->language->get('text_no')))); $this->data['form']['fields']['price'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'price[' . $product_option_value_id . ']', 'value' => moneyDisplayFormat($this->data['price']), 'style' => 'medium-field')); $this->data['prefix'] = trim($this->data['prefix']); $currency_symbol = $this->currency->getCurrency($this->config->get('config_currency')); $currency_symbol = $currency_symbol['symbol_left'] . $currency_symbol['symbol_right']; if (!$this->data['prefix']) { $this->data['prefix'] = $currency_symbol; } $this->data['form']['fields']['prefix'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'prefix[' . $product_option_value_id . ']', 'value' => $this->data['prefix'], 'options' => array('$' => $currency_symbol, '%' => '%'), 'style' => 'small-field')); $this->data['form']['fields']['sort_order'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'sort_order[' . $product_option_value_id . ']', 'value' => $this->data['sort_order'], 'style' => 'small-field')); $this->data['form']['fields']['weight'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'weight[' . $product_option_value_id . ']', 'value' => $this->data['weight'], 'style' => 'small-field')); //build available weight units for options $wht_options = array('%' => '%'); $this->loadModel('localisation/weight_class'); $selected_unit = trim($this->data['weight_type']); $prd_info = $this->model_catalog_product->getProduct($this->request->get['product_id']); $prd_weight_info = $this->model_localisation_weight_class->getWeightClass($prd_info['weight_class_id']); $wht_options[$prd_weight_info['unit']] = $prd_weight_info['title']; if (empty($selected_unit)) { //no weight yet, use product weight unit as default $selected_unit = trim($prd_weight_info['unit']); } else { if ($selected_unit != trim($prd_weight_info['unit']) && $selected_unit != '%') { //main product type has changed. Show what weight unit we have in option $weight_info = $this->model_localisation_weight_class->getWeightClassDescriptionByUnit($selected_unit); $wht_options[$selected_unit] = $weight_info['title']; } } $this->data['form']['fields']['weight_type'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'weight_type[' . $product_option_value_id . ']', 'value' => $selected_unit, 'options' => $wht_options)); $resources_html = $this->dispatch('responses/common/resource_library/get_resources_html'); $this->data['resources_html'] = $resources_html->dispatchGetOutput(); $this->view->batchAssign($this->data); return $this->view->fetch('responses/product/option_value_row.tpl'); }
private function _getForm() { $this->data['token'] = $this->session->data['token']; $this->data['cancel'] = $this->html->getSecureURL('sale/coupon'); $this->data['error'] = $this->error; $cont_lang_id = $this->language->getContentLanguageID(); $this->view->assign('category_products_url', $this->html->getSecureURL('r/product/product/category', '&language_id=' . $cont_lang_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('sale/coupon'), 'text' => $this->language->get('heading_title'), 'separator' => ' :: ')); if (has_value($this->request->get['coupon_id']) && $this->request->is_GET()) { $coupon_info = $this->model_sale_coupon->getCouponByID($this->request->get['coupon_id']); } $this->data['languages'] = $this->language->getAvailableLanguages(); foreach ($this->fields as $f) { if (isset($this->request->post[$f])) { $this->data[$f] = $this->request->post[$f]; } elseif (isset($coupon_info) && isset($coupon_info[$f])) { $this->data[$f] = $coupon_info[$f]; } else { $this->data[$f] = ''; } } if (!is_array($this->data['coupon_description'])) { if (isset($this->request->get['coupon_id'])) { $this->data['coupon_description'] = $this->model_sale_coupon->getCouponDescriptions($this->request->get['coupon_id']); } else { $this->data['coupon_description'] = array(); } } if (!is_array($this->data['coupon_product'])) { if (isset($coupon_info)) { $this->data['coupon_product'] = $this->model_sale_coupon->getCouponProducts($this->request->get['coupon_id']); } else { $this->data['coupon_product'] = array(); } } //check if coupon is active based on dates and update status $now = time(); if ($this->data['date_start'] && dateISO2Int($this->data['date_start']) > $now || $this->data['date_end'] && dateISO2Int($this->data['date_end']) < $now) { $this->data['status'] = 0; } if (isset($this->request->post['date_start'])) { $this->data['date_start'] = dateDisplay2ISO($this->request->post['date_start'], $this->language->get('date_format_short')); } elseif (isset($coupon_info)) { $this->data['date_start'] = dateISO2Display($coupon_info['date_start'], $this->language->get('date_format_short')); } else { $this->data['date_start'] = dateInt2Display(time(), $this->language->get('date_format_short')); } if (isset($this->request->post['date_end'])) { $this->data['date_end'] = dateDisplay2ISO($this->request->post['date_end'], $this->language->get('date_format_short')); } elseif (isset($coupon_info)) { $this->data['date_end'] = dateISO2Display($coupon_info['date_end'], $this->language->get('date_format_short')); } else { $this->data['date_end'] = ''; } if (isset($this->data['uses_total']) && $this->data['uses_total'] == -1) { $this->data['uses_total'] = ''; } elseif (isset($this->data['uses_total']) && $this->data['uses_total'] == '') { $this->data['uses_total'] = 1; } if (isset($this->data['uses_customer']) && $this->data['uses_customer'] == -1) { $this->data['uses_customer'] = ''; } elseif (isset($this->data['uses_customer']) && $this->data['uses_customer'] == '') { $this->data['uses_customer'] = 1; } if (!has_value($this->data['status'])) { $this->data['status'] = 1; } if (!has_value($this->request->get['coupon_id'])) { $this->data['action'] = $this->html->getSecureURL('sale/coupon/insert'); $this->data['heading_title'] = $this->language->get('text_insert') . ' ' . $this->language->get('text_coupon'); $this->data['update'] = ''; $form = new AForm('ST'); } else { $this->data['action'] = $this->html->getSecureURL('sale/coupon/update', '&coupon_id=' . $this->request->get['coupon_id']); $this->data['heading_title'] = $this->language->get('text_edit') . ' ' . $this->language->get('text_coupon') . ' - ' . $this->data['coupon_description'][$cont_lang_id]['name']; $this->data['update'] = $this->html->getSecureURL('listing_grid/coupon/update_field', '&id=' . $this->request->get['coupon_id']); $form = new AForm('HS'); } $this->document->addBreadcrumb(array('href' => $this->data['action'], 'text' => $this->data['heading_title'], 'separator' => ' :: ', 'current' => true)); $form->setForm(array('form_name' => 'couponFrm', 'update' => $this->data['update'])); $this->data['form']['id'] = 'couponFrm'; $this->data['form']['form_open'] = $form->getFieldHtml(array('type' => 'form', 'name' => 'couponFrm', 'attr' => 'data-confirm-exit="true" class="aform form-horizontal"', 'action' => $this->data['action'])); $this->data['form']['submit'] = $form->getFieldHtml(array('type' => 'button', 'name' => 'submit', 'text' => $this->language->get('button_save'), 'style' => 'button1')); $this->data['form']['cancel'] = $form->getFieldHtml(array('type' => 'button', 'name' => 'cancel', 'text' => $this->language->get('button_cancel'), 'style' => 'button2')); $this->data['form']['fields']['status'] = $form->getFieldHtml(array('type' => 'checkbox', 'name' => 'status', 'value' => $this->data['status'], 'style' => 'btn_switch')); $this->data['form']['fields']['name'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'coupon_description[' . $cont_lang_id . '][name]', 'value' => $this->data['coupon_description'][$cont_lang_id]['name'], 'required' => true, 'style' => 'large-field')); $this->data['form']['fields']['description'] = $form->getFieldHtml(array('type' => 'textarea', 'name' => 'coupon_description[' . $cont_lang_id . '][description]', 'value' => $this->data['coupon_description'][$cont_lang_id]['description'], 'required' => true, 'style' => 'large-field')); $this->data['form']['fields']['code'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'code', 'value' => $this->data['code'], 'required' => true)); $this->data['form']['fields']['type'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'type', 'value' => $this->data['type'], 'options' => array('P' => $this->language->get('text_percent'), 'F' => $this->language->get('text_amount')))); $this->data['form']['fields']['discount'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'discount', 'value' => moneyDisplayFormat($this->data['discount']))); $this->data['form']['fields']['total'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'total', 'value' => moneyDisplayFormat($this->data['total']))); $this->data['form']['fields']['logged'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'logged', 'value' => $this->data['logged'], 'options' => array(1 => $this->language->get('text_yes'), 0 => $this->language->get('text_no')))); $this->data['form']['fields']['shipping'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'shipping', 'value' => $this->data['shipping'], 'options' => array(1 => $this->language->get('text_yes'), 0 => $this->language->get('text_no')))); $this->data['form']['fields']['date_start'] = $form->getFieldHtml(array('type' => 'date', 'name' => 'date_start', 'value' => $this->data['date_start'], 'default' => dateNowDisplay(), 'dateformat' => format4Datepicker($this->language->get('date_format_short')), 'highlight' => 'future', 'required' => true)); $this->data['form']['fields']['date_end'] = $form->getFieldHtml(array('type' => 'date', 'name' => 'date_end', 'value' => $this->data['date_end'], 'default' => '', 'dateformat' => format4Datepicker($this->language->get('date_format_short')), 'highlight' => 'pased', 'required' => true)); $this->data['form']['fields']['uses_total'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'uses_total', 'value' => $this->data['uses_total'])); $this->data['form']['fields']['uses_customer'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'uses_customer', 'value' => $this->data['uses_customer'])); if ($this->request->get['coupon_id']) { $this->loadModel('sale/order'); $total = $this->model_sale_order->getTotalOrders(array('filter_coupon_id' => $this->request->get['coupon_id'])); $this->data['form']['fields']['total_coupon_usage'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'total_coupon_usage', 'value' => (int) $total, 'attr' => 'disabled')); } //load only prior saved products $resource = new AResource('image'); $this->data['products'] = array(); if (count($this->data['coupon_product'])) { $this->loadModel('catalog/product'); $filter = array('subsql_filter' => 'p.product_id in (' . implode(',', $this->data['coupon_product']) . ')'); $results = $this->model_catalog_product->getProducts($filter); foreach ($results as $r) { $thumbnail = $resource->getMainThumb('products', $r['product_id'], (int) $this->config->get('config_image_grid_width'), (int) $this->config->get('config_image_grid_height'), true); $this->data['products'][$r['product_id']]['name'] = $r['name'] . " (" . $r['model'] . ")"; $this->data['products'][$r['product_id']]['image'] = $thumbnail['thumb_html']; } } $this->data['form']['fields']['product'] = $form->getFieldHtml(array('type' => 'multiselectbox', 'name' => 'coupon_product[]', 'value' => $this->data['coupon_product'], 'options' => $this->data['products'], 'style' => 'chosen', 'ajax_url' => $this->html->getSecureURL('r/product/product/products'), 'placeholder' => $this->language->get('text_select_from_lookup'))); $this->view->assign('help_url', $this->gen_help_url('coupon_edit')); $this->view->batchAssign($this->data); $this->processTemplate('pages/sale/coupon_form.tpl'); }
private function _getForm() { if (isset($this->request->get['product_id']) && $this->request->is_GET()) { $product_id = $this->request->get['product_id']; $product_info = $this->model_catalog_product->getProduct($product_id); $product_info['featured'] = $product_info['featured'] ? 1 : 0; } $this->data['product_description'] = $this->model_catalog_product->getProductDescriptions($product_id); $this->data['error'] = $this->error; $this->data['cancel'] = $this->html->getSecureURL('catalog/product'); $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' => $product_id ? $this->language->get('text_edit') . ' ' . $this->language->get('text_product') . ' - ' . $this->data['product_description'][$this->session->data['content_language_id']]['name'] : $this->language->get('text_insert'), 'separator' => ' :: ', 'current' => true)); $this->loadModel('catalog/category'); $this->data['categories'] = array(); $results = $this->model_catalog_category->getCategories(0, $this->session->data['current_store_id']); foreach ($results as $r) { $this->data['categories'][$r['category_id']] = $r['name']; } $this->loadModel('setting/store'); $this->data['stores'] = array(0 => $this->language->get('text_default')); $results = $this->model_setting_store->getStores(); foreach ($results as $r) { $this->data['stores'][$r['store_id']] = $r['name']; } $this->loadModel('catalog/manufacturer'); $this->data['manufacturers'] = array(0 => $this->language->get('text_none')); $results = $this->model_catalog_manufacturer->getManufacturers(); foreach ($results as $r) { $this->data['manufacturers'][$r['manufacturer_id']] = $r['name']; } $this->loadModel('localisation/stock_status'); $this->data['stock_statuses'] = array(); $results = $this->model_localisation_stock_status->getStockStatuses(); foreach ($results as $r) { $this->data['stock_statuses'][$r['stock_status_id']] = $r['name']; } $this->loadModel('localisation/tax_class'); $this->data['tax_classes'] = array(0 => $this->language->get('text_none')); $results = $this->model_localisation_tax_class->getTaxClasses(); foreach ($results as $r) { $this->data['tax_classes'][$r['tax_class_id']] = $r['title']; } $this->loadModel('localisation/weight_class'); $this->data['weight_classes'] = array(); $results = $this->model_localisation_weight_class->getWeightClasses(); foreach ($results as $r) { $this->data['weight_classes'][$r['weight_class_id']] = $r['title']; } $this->loadModel('localisation/length_class'); $this->data['length_classes'] = array(); $results = $this->model_localisation_length_class->getLengthClasses(); foreach ($results as $r) { $this->data['length_classes'][$r['length_class_id']] = $r['title']; } $fields = array('product_category', 'featured', 'product_store', 'model', 'call_to_order', 'sku', 'location', 'keyword', 'image', 'manufacturer_id', 'shipping', 'ship_individually', 'shipping_price', 'free_shipping', 'quantity', 'minimum', 'maximum', 'subtract', 'sort_order', 'stock_status_id', 'price', 'cost', 'status', 'tax_class_id', 'weight', 'weight_class_id', 'length', 'width', 'height'); foreach ($fields as $f) { if (isset($this->request->post[$f])) { $this->data[$f] = $this->request->post[$f]; } elseif (isset($product_info)) { $this->data[$f] = $product_info[$f]; } } if (isset($this->request->post['product_category'])) { $this->data['product_category'] = $this->request->post['product_category']; } elseif (isset($product_info)) { $this->data['product_category'] = $this->model_catalog_product->getProductCategories($product_id); } else { $this->data['product_category'] = array(); } if (isset($this->request->post['product_store'])) { $this->data['product_store'] = $this->request->post['product_store']; } elseif (isset($product_info)) { $this->data['product_store'] = $this->model_catalog_product->getProductStores($product_id); } else { $this->data['product_store'] = array(0); } if (isset($this->request->post['product_description'])) { $this->data['product_description'] = $this->request->post['product_description']; } elseif (isset($product_info)) { $this->data['product_description'] = $this->model_catalog_product->getProductDescriptions($product_id, $this->session->data['content_language_id']); } else { $this->data['product_description'] = array(); } if (isset($this->request->post['featured'])) { $this->data['featured'] = $this->request->post['featured']; } elseif (isset($product_info)) { $this->data['featured'] = $product_info['featured']; } else { $this->data['featured'] = 0; } if (isset($this->request->post['product_tags'])) { $this->data['product_tags'] = $this->request->post['product_tags']; } elseif (isset($product_info)) { $this->data['product_tags'] = $this->model_catalog_product->getProductTags($product_id, $this->session->data['content_language_id']); } else { $this->data['product_tags'] = ''; } $this->loadModel('tool/image'); if (isset($product_info) && $product_info['image'] && file_exists(DIR_IMAGE . $product_info['image'])) { $this->data['preview'] = $this->model_tool_image->resize($product_info['image'], 100, 100); } else { $this->data['preview'] = $this->model_tool_image->resize('no_image.jpg', 100, 100); } if ($this->data['stock_status_id'] == '') { $this->data['stock_status_id'] = $this->config->get('config_stock_status_id'); } if (isset($this->request->post['date_available'])) { $this->data['date_available'] = $this->request->post['date_available']; } elseif (isset($product_info)) { $this->data['date_available'] = $product_info['date_available']; } else { $this->data['date_available'] = dateInt2ISO(time() - 86400); } $weight_info = $this->model_localisation_weight_class->getWeightClassDescriptionByUnit($this->config->get('config_weight_class')); if (isset($this->request->post['weight_class_id'])) { $this->data['weight_class_id'] = $this->request->post['weight_class_id']; } elseif (isset($product_info)) { $this->data['weight_class_id'] = $product_info['weight_class_id']; } elseif (isset($weight_info)) { $this->data['weight_class_id'] = $weight_info['weight_class_id']; } else { $this->data['weight_class_id'] = ''; } $length_info = $this->model_localisation_length_class->getLengthClassDescriptionByUnit($this->config->get('config_length_class')); if (isset($this->request->post['length_class_id'])) { $this->data['length_class_id'] = $this->request->post['length_class_id']; } elseif (isset($product_info)) { $this->data['length_class_id'] = $product_info['length_class_id']; } elseif (isset($length_info)) { $this->data['length_class_id'] = $length_info['length_class_id']; } else { $this->data['length_class_id'] = ''; } if ($this->data['status'] == '') { $this->data['status'] = 1; } if ($this->data['quantity'] == '') { $this->data['quantity'] = 1; } if ($this->data['minimum'] == '') { $this->data['minimum'] = 1; } if ($this->data['sort_order'] == '') { $this->data['sort_order'] = 1; } $this->data['active'] = 'details'; if (!isset($product_id)) { $this->data['action'] = $this->html->getSecureURL('catalog/product/insert'); $this->data['form_title'] = $this->language->get('text_insert') . $this->language->get('text_product'); $this->data['update'] = ''; $form = new AForm('ST'); $this->data['summary_form'] = ''; } else { $this->data['action'] = $this->html->getSecureURL('catalog/product/update', '&product_id=' . $product_id); $this->data['form_title'] = $this->language->get('text_edit') . ' ' . $this->language->get('text_product'); $this->data['update'] = $this->html->getSecureURL('listing_grid/product/update_field', '&id=' . $product_id); $form = new AForm('HS'); $this->data['active'] = 'general'; //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->addChild('pages/catalog/product_summary', 'summary_form', 'pages/catalog/product_summary.tpl'); } $form->setForm(array('form_name' => 'productFrm', 'update' => $this->data['update'])); $this->data['form']['id'] = 'productFrm'; $this->data['form']['form_open'] = $form->getFieldHtml(array('type' => 'form', 'name' => 'productFrm', 'action' => $this->data['action'], 'attr' => 'data-confirm-exit="true" class="aform form-horizontal"')); $this->data['form']['submit'] = $form->getFieldHtml(array('type' => 'button', 'name' => 'submit', 'text' => $this->language->get('button_save'), 'style' => 'button1')); $this->data['form']['cancel'] = $form->getFieldHtml(array('type' => 'button', 'name' => 'cancel', 'text' => $this->language->get('button_cancel'), 'style' => 'button2')); $this->data['form']['fields']['general']['status'] = $form->getFieldHtml(array('type' => 'checkbox', 'name' => 'status', 'value' => $this->data['status'], 'style' => 'btn_switch btn-group-sm', 'help_url' => $this->gen_help_url('?p=62'))); $this->data['form']['fields']['general']['featured'] = $form->getFieldHtml(array('type' => 'checkbox', 'name' => 'featured', 'value' => $this->data['featured'], 'style' => 'btn_switch btn-group-sm', 'help_url' => $this->gen_help_url('?p=62'))); $this->data['form']['fields']['general']['name'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'product_description[name]', 'value' => $this->data['product_description']['name'], 'required' => true, 'help_url' => $this->gen_help_url('?p=62'))); $this->data['form']['fields']['general']['description'] = $form->getFieldHtml(array('type' => 'textarea', 'name' => 'product_description[description]', 'value' => $this->data['product_description']['description'])); $this->data['form']['fields']['general']['meta_keywords'] = $form->getFieldHtml(array('type' => 'textarea', 'name' => 'product_description[meta_keywords]', 'value' => $this->data['product_description']['meta_keywords'], 'help_url' => $this->gen_help_url('?p=62'))); $this->data['form']['fields']['general']['meta_description'] = $form->getFieldHtml(array('type' => 'textarea', 'name' => 'product_description[meta_description]', 'value' => $this->data['product_description']['meta_description'])); $this->data['form']['fields']['general']['blurb'] = $form->getFieldHtml(array('type' => 'textarea', 'name' => 'product_description[blurb]', 'value' => $this->data['product_description']['blurb'])); $this->data['form']['fields']['general']['tags'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'product_tags', 'value' => $this->data['product_tags'])); $this->data['form']['fields']['general']['category'] = $form->getFieldHtml(array('type' => 'checkboxgroup', 'name' => 'product_category[]', 'value' => $this->data['product_category'], 'options' => $this->data['categories'], 'style' => 'chosen', 'placeholder' => $this->language->get('text_select_category'))); $this->data['form']['fields']['general']['store'] = $form->getFieldHtml(array('type' => 'checkboxgroup', 'name' => 'product_store[]', 'value' => $this->data['product_store'], 'options' => $this->data['stores'], 'style' => 'chosen', 'placeholder' => $this->language->get('entry_store'))); $this->data['form']['fields']['data']['manufacturer'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'manufacturer_id', 'value' => $this->data['manufacturer_id'], 'options' => $this->data['manufacturers'], 'style' => 'chosen', 'placeholder' => $this->language->get('entry_manufacturer'))); $this->data['form']['fields']['data']['model'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'model', 'value' => $this->data['model'], 'required' => false)); $this->data['form']['fields']['data']['call_to_order'] = $form->getFieldHtml(array('type' => 'checkbox', 'name' => 'call_to_order', 'value' => $this->data['call_to_order'], 'style' => 'btn_switch btn-group-sm', 'help_url' => $this->gen_help_url('?p=62'))); $this->data['form']['fields']['data']['price'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'price', 'value' => moneyDisplayFormat($this->data['price']), 'style' => 'small-field')); $this->data['form']['fields']['data']['cost'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'cost', 'value' => moneyDisplayFormat($this->data['cost']), 'style' => 'small-field')); $this->data['form']['fields']['data']['tax_class'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'tax_class_id', 'value' => $this->data['tax_class_id'], 'options' => $this->data['tax_classes'], 'help_url' => $this->gen_help_url('?p=62'), 'style' => 'medium-field')); $this->data['form']['fields']['data']['subtract'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'subtract', 'value' => $this->data['subtract'], 'options' => array(1 => $this->language->get('text_yes'), 0 => $this->language->get('text_no')), 'help_url' => $this->gen_help_url('?p=62'), 'style' => 'medium-field')); $this->data['form']['fields']['data']['quantity'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'quantity', 'value' => (int) $this->data['quantity'], 'style' => 'col-xs-1 small-field')); $this->data['form']['fields']['data']['minimum'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'minimum', 'value' => (int) $this->data['minimum'], 'style' => 'small-field')); $this->data['form']['fields']['data']['maximum'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'maximum', 'value' => (int) $this->data['maximum'], 'style' => 'small-field')); $this->data['form']['fields']['data']['stock_status'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'stock_status_id', 'value' => $this->data['stock_status_id'], 'options' => $this->data['stock_statuses'], 'style' => 'small-field')); $this->data['form']['fields']['data']['sku'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'sku', 'value' => $this->data['sku'], 'help_url' => $this->gen_help_url('?p=62'))); $this->data['form']['fields']['data']['location'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'location', 'value' => $this->data['location'])); //prepend button to generate keyword $this->data['keyword_button'] = $form->getFieldHtml(array('type' => 'button', 'name' => 'generate_seo_keyword', 'text' => $this->language->get('button_generate'), 'attr' => 'type="button"', 'style' => 'btn btn-info')); $this->data['generate_seo_url'] = $this->html->getSecureURL('common/common/getseokeyword', '&object_key_name=product_id&id=' . $product_id); $this->data['form']['fields']['data']['keyword'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'keyword', 'value' => $this->data['keyword'], 'help_url' => $this->gen_help_url('?p=62'), 'attr' => ' gen-value="' . SEOEncode($this->data['product_description']['name']) . '" ')); $this->data['form']['fields']['data']['date_available'] = $form->getFieldHtml(array('type' => 'date', 'name' => 'date_available', 'value' => dateISO2Display($this->data['date_available']), 'default' => dateNowDisplay(), 'dateformat' => format4Datepicker($this->language->get('date_format_short')), 'highlight' => 'future', 'style' => 'small-field')); $this->data['form']['fields']['data']['sort_order'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'sort_order', 'value' => $this->data['sort_order'], 'style' => 'tiny-field')); $this->data['form']['fields']['data']['shipping'] = $form->getFieldHtml(array('type' => 'checkbox', 'name' => 'shipping', 'style' => 'btn_switch btn-group-sm', 'value' => isset($this->data['shipping']) ? $this->data['shipping'] : 1)); $this->data['form']['fields']['data']['free_shipping'] = $form->getFieldHtml(array('type' => 'checkbox', 'name' => 'free_shipping', 'style' => 'btn_switch btn-group-sm', 'value' => isset($this->data['free_shipping']) ? $this->data['free_shipping'] : 0)); $this->data['form']['fields']['data']['ship_individually'] = $form->getFieldHtml(array('type' => 'checkbox', 'name' => 'ship_individually', 'style' => 'btn_switch btn-group-sm', 'value' => isset($this->data['ship_individually']) ? $this->data['ship_individually'] : 0)); $this->data['form']['fields']['data']['shipping_price'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'shipping_price', 'value' => moneyDisplayFormat($this->data['shipping_price']), 'style' => 'tiny-field')); $this->data['form']['fields']['data']['length'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'length', 'value' => $this->data['length'], 'style' => 'tiny-field')); $this->data['form']['fields']['data']['width'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'width', 'value' => $this->data['width'], 'attr' => ' autocomplete="false"', 'style' => 'tiny-field')); $this->data['form']['fields']['data']['height'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'height', 'value' => $this->data['height'], 'attr' => ' autocomplete="false"', 'style' => 'tiny-field')); if ($product_id && !$this->data['length_class_id']) { $this->data['length_classes'][0] = $this->language->get('text_none'); } $this->data['form']['fields']['data']['length_class'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'length_class_id', 'value' => $this->data['length_class_id'], 'options' => $this->data['length_classes'], 'style' => 'small-field')); if ($product_id && $this->data['shipping'] && (!(double) $this->data['weight'] || !$this->data['weight_class_id']) && !(double) $this->data['shipping_price']) { if (!$this->data['weight_class_id']) { $this->data['error']['weight_class'] = $this->language->get('error_weight_class'); } if (!(double) $this->data['weight']) { $this->data['error']['weight'] = $this->language->get('error_weight_value'); } } if ($product_id && !$this->data['weight_class_id']) { $this->data['weight_classes'][0] = $this->language->get('text_none'); } $this->data['form']['fields']['data']['weight'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'weight', 'value' => $this->data['weight'], 'attr' => ' autocomplete="false"', 'style' => 'tiny-field')); $this->data['form']['fields']['data']['weight_class'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'weight_class_id', 'value' => $this->data['weight_class_id'], 'options' => $this->data['weight_classes'], 'style' => 'small-field')); $this->data['product_id'] = $product_id; if ($product_id && $this->config->get('config_embed_status')) { $this->data['embed_url'] = $this->html->getSecureURL('common/do_embed/product', '&product_id=' . $product_id); } $this->data['text_clone'] = $this->language->get('text_clone'); $this->data['clone_url'] = $this->html->getSecureURL('catalog/product/copy', '&product_id=' . $this->request->get['product_id']); $this->data['form_language_switch'] = $this->html->getContentLanguageSwitcher(); $this->data['language_id'] = $this->session->data['content_language_id']; $this->data['language_code'] = $this->session->data['language']; $this->data['help_url'] = $this->gen_help_url('?p=62'); $this->data['rl'] = $this->html->getSecureURL('common/resource_library', '&object_name=&object_id&type=image&mode=url'); $this->view->batchAssign($this->data); $this->processTemplate('pages/catalog/product_form.tpl'); }
private function _getForm() { $view = new AView($this->registry, 0); $view->batchAssign($this->language->getASet('catalog/product')); $view->assign('error_warning', $this->error['warning']); $view->assign('success', $this->session->data['success']); if (isset($this->session->data['success'])) { unset($this->session->data['success']); } $this->data = array(); $this->data['error'] = $this->error; $this->data['cancel'] = $this->html->getSecureURL('catalog/product_promotions', '&product_id=' . $this->request->get['product_id']); $this->data['active'] = 'promotions'; $this->data['product_description'] = $this->model_catalog_product->getProductDescriptions($this->request->get['product_id']); $this->data['heading_title'] = $this->language->get('text_edit') . ' ' . $this->language->get('text_product') . ' - ' . $this->data['product_description'][$this->session->data['content_language_id']]['name']; if (isset($this->request->get['product_discount_id']) && $this->request->is_GET()) { $discount_info = $this->model_catalog_product->getProductDiscount($this->request->get['product_discount_id']); if ($discount_info['date_start'] == '0000-00-00') { $discount_info['date_start'] = ''; } if ($discount_info['date_end'] == '0000-00-00') { $discount_info['date_end'] = ''; } } $this->loadModel('sale/customer_group'); $results = $this->model_sale_customer_group->getCustomerGroups(); $this->data['customer_groups'] = array(); foreach ($results as $r) { $this->data['customer_groups'][$r['customer_group_id']] = $r['name']; } $fields = array('customer_group_id', 'quantity', 'priority', 'price', 'date_start', 'date_end'); foreach ($fields as $f) { if (isset($this->request->post[$f])) { $this->data[$f] = $this->request->post[$f]; if (in_array($f, array('date_start', 'date_end'))) { $this->data[$f] = dateDisplay2ISO($this->data[$f], $this->language->get('date_format_short')); } } elseif (isset($discount_info)) { $this->data[$f] = $discount_info[$f]; } else { $this->data[$f] = ''; } } if (!isset($this->request->get['product_discount_id'])) { $this->data['action'] = $this->html->getSecureURL('catalog/product_promotions', '&product_id=' . $this->request->get['product_id']); $this->data['form_title'] = $this->language->get('text_insert') . ' ' . $this->language->get('entry_discount'); $this->data['update'] = ''; $form = new AForm('ST'); } else { $this->data['action'] = $this->html->getSecureURL('catalog/product_promotions', '&product_id=' . $this->request->get['product_id'] . '&product_discount_id=' . $this->request->get['product_discount_id']); $this->data['form_title'] = $this->language->get('text_edit') . ' ' . $this->language->get('entry_discount'); $this->data['update'] = $this->html->getSecureURL('listing_grid/product/update_discount_field', '&id=' . $this->request->get['product_discount_id']); $form = new AForm('HS'); } $this->document->addBreadcrumb(array('href' => $this->data['action'], 'text' => $this->data['form_title'], 'separator' => ' :: ')); $form->setForm(array('form_name' => 'productFrm', 'update' => $this->data['update'])); $this->data['form']['id'] = 'productFrm'; $this->data['form']['form_open'] = $form->getFieldHtml(array('type' => 'form', 'name' => 'productFrm', 'action' => $this->data['action'], 'attr' => 'data-confirm-exit="true" class="aform form-horizontal"')) . $form->getFieldHtml(array('type' => 'hidden', 'name' => 'promotion_type', 'value' => 'discount')); $this->data['form']['submit'] = $form->getFieldHtml(array('type' => 'button', 'name' => 'submit', 'text' => $this->language->get('button_save'), 'style' => 'button1')); $this->data['form']['cancel'] = $form->getFieldHtml(array('type' => 'button', 'name' => 'cancel', 'text' => $this->language->get('button_cancel'), 'style' => 'button2')); $this->data['form']['fields']['customer_group'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'customer_group_id', 'value' => $this->data['customer_group_id'], 'options' => $this->data['customer_groups'])); $this->data['form']['fields']['quantity'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'quantity', 'value' => $this->data['quantity'], 'style' => 'small-field')); $this->data['form']['fields']['priority'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'priority', 'value' => $this->data['priority'], 'style' => 'small-field')); $this->data['form']['fields']['price'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'price', 'value' => moneyDisplayFormat($this->data['price']), 'style' => 'tiny-field')); $this->data['js_date_format'] = format4Datepicker($this->language->get('date_format_short')); $this->data['form']['fields']['date_start'] = $form->getFieldHtml(array('type' => 'date', 'name' => 'date_start', 'value' => dateISO2Display($this->data['date_start'], $this->language->get('date_format_short')), 'default' => '', 'dateformat' => format4Datepicker($this->language->get('date_format_short')), 'highlight' => 'future', 'style' => 'small-field')); $this->data['form']['fields']['date_end'] = $form->getFieldHtml(array('type' => 'date', 'name' => 'date_end', 'value' => dateISO2Display($this->data['date_end'], $this->language->get('date_format_short')), 'default' => '', 'dateformat' => format4Datepicker($this->language->get('date_format_short')), 'highlight' => 'future', 'style' => 'small-field')); $view->assign('help_url', $this->gen_help_url('product_discount_edit')); $view->batchAssign($this->data); $this->data['response'] = $view->fetch('responses/catalog/product_promotion_form.tpl'); $this->response->setOutput($this->data['response']); }
private function _getForm() { 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); } $this->data['token'] = $this->session->data['token']; $this->data['cancel'] = $this->html->getSecureURL('sale/coupon'); $this->data['error'] = $this->error; $this->view->assign('category_products', $this->html->getSecureURL('product/product/category')); $this->view->assign('products_list', $this->html->getSecureURL('product/product/products')); $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('sale/coupon'), 'text' => $this->language->get('heading_title'), 'separator' => ' :: ')); if (isset($this->request->get['coupon_id']) && !$this->request->server['REQUEST_METHOD'] != 'POST') { $coupon_info = $this->model_sale_coupon->getCouponByID($this->request->get['coupon_id']); } $this->data['languages'] = $this->language->getAvailableLanguages(); foreach ($this->fields as $f) { if (isset($this->request->post[$f])) { $this->data[$f] = $this->request->post[$f]; } elseif (isset($coupon_info) && isset($coupon_info[$f])) { $this->data[$f] = $coupon_info[$f]; } else { $this->data[$f] = ''; } } if (!is_array($this->data['coupon_description'])) { if (isset($this->request->get['coupon_id'])) { $this->data['coupon_description'] = $this->model_sale_coupon->getCouponDescriptions($this->request->get['coupon_id']); } else { $this->data['coupon_description'] = array(); } } if (!is_array($this->data['coupon_product'])) { if (isset($coupon_info)) { $this->data['coupon_product'] = $this->model_sale_coupon->getCouponProducts($this->request->get['coupon_id']); } else { $this->data['coupon_product'] = array(); } } if (isset($this->request->post['date_start'])) { $this->data['date_start'] = dateDisplay2ISO($this->request->post['date_start'], $this->language->get('date_format_short')); } elseif (isset($coupon_info)) { $this->data['date_start'] = date('Y-m-d', strtotime($coupon_info['date_start'])); } else { $this->data['date_start'] = date('Y-m-d', time()); } if (isset($this->request->post['date_end'])) { $this->data['date_end'] = dateDisplay2ISO($this->request->post['date_end'], $this->language->get('date_format_short')); } elseif (isset($coupon_info)) { $this->data['date_end'] = date('Y-m-d', strtotime($coupon_info['date_end'])); } else { $this->data['date_end'] = ''; } if (isset($this->data['uses_total']) && $this->data['uses_total'] == -1) { $this->data['uses_total'] = ''; } elseif (isset($this->data['uses_total']) && $this->data['uses_total'] == '') { $this->data['uses_total'] = 1; } if (isset($this->data['uses_customer']) && $this->data['uses_customer'] == -1) { $this->data['uses_customer'] = ''; } elseif (isset($this->data['uses_customer']) && $this->data['uses_customer'] == '') { $this->data['uses_customer'] = 1; } if (isset($this->data['status']) && $this->data['status'] == '') { $this->data['status'] = 1; } //check if coupon is active based on dates and update status $now = time(); if (dateISO2Int($this->data['date_start']) > $now || dateISO2Int($this->data['date_end']) < $now) { $this->data['status'] = 0; } if (!isset($this->request->get['coupon_id'])) { $this->data['action'] = $this->html->getSecureURL('sale/coupon/insert'); $this->data['heading_title'] = $this->language->get('text_insert') . ' ' . $this->language->get('text_coupon'); $this->data['update'] = ''; $form = new AForm('ST'); } else { $this->data['action'] = $this->html->getSecureURL('sale/coupon/update', '&coupon_id=' . $this->request->get['coupon_id']); $this->data['heading_title'] = $this->language->get('text_edit') . ' ' . $this->language->get('text_coupon') . ' - ' . $this->data['coupon_description'][$this->session->data['content_language_id']]['name']; $this->data['update'] = $this->html->getSecureURL('listing_grid/coupon/update_field', '&id=' . $this->request->get['coupon_id']); $form = new AForm('HS'); } $this->document->addBreadcrumb(array('href' => $this->data['action'], 'text' => $this->data['heading_title'], 'separator' => ' :: ')); $form->setForm(array('form_name' => 'couponFrm', 'update' => $this->data['update'])); $this->data['form']['id'] = 'couponFrm'; $this->data['form']['form_open'] = $form->getFieldHtml(array('type' => 'form', 'name' => 'couponFrm', 'attr' => 'confirm-exit="true"', 'action' => $this->data['action'])); $this->data['form']['submit'] = $form->getFieldHtml(array('type' => 'button', 'name' => 'submit', 'text' => $this->language->get('button_save'), 'style' => 'button1')); $this->data['form']['cancel'] = $form->getFieldHtml(array('type' => 'button', 'name' => 'cancel', 'text' => $this->language->get('button_cancel'), 'style' => 'button2')); $this->data['form']['fields']['status'] = $form->getFieldHtml(array('type' => 'checkbox', 'name' => 'status', 'value' => $this->data['status'], 'style' => 'btn_switch')); $this->data['form']['fields']['name'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'coupon_description[' . $this->session->data['content_language_id'] . '][name]', 'value' => $this->data['coupon_description'][$this->session->data['content_language_id']]['name'], 'required' => true, 'style' => 'large-field')); $this->data['form']['fields']['description'] = $form->getFieldHtml(array('type' => 'textarea', 'name' => 'coupon_description[' . $this->session->data['content_language_id'] . '][description]', 'value' => $this->data['coupon_description'][$this->session->data['content_language_id']]['description'], 'required' => true, 'style' => 'large-field')); $this->data['form']['fields']['code'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'code', 'value' => $this->data['code'], 'required' => true)); $this->data['form']['fields']['type'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'type', 'value' => $this->data['type'], 'options' => array('P' => $this->language->get('text_percent'), 'F' => $this->language->get('text_amount')))); $this->data['form']['fields']['discount'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'discount', 'value' => moneyDisplayFormat($this->data['discount']))); $this->data['form']['fields']['total'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'total', 'value' => moneyDisplayFormat($this->data['total']))); $this->data['form']['fields']['logged'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'logged', 'value' => $this->data['logged'], 'options' => array(1 => $this->language->get('text_yes'), 0 => $this->language->get('text_no')))); $this->data['form']['fields']['shipping'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'shipping', 'value' => $this->data['shipping'], 'options' => array(1 => $this->language->get('text_yes'), 0 => $this->language->get('text_no')))); $this->data['form']['fields']['date_start'] = $form->getFieldHtml(array('type' => 'date', 'name' => 'date_start', 'value' => dateISO2Display($this->data['date_start']), 'default' => dateNowDisplay(), 'dateformat' => format4Datepicker($this->language->get('date_format_short')), 'highlight' => 'future', 'required' => true, 'style' => 'medium-field')); $this->data['form']['fields']['date_end'] = $form->getFieldHtml(array('type' => 'date', 'name' => 'date_end', 'value' => dateISO2Display($this->data['date_end']), 'default' => '', 'dateformat' => format4Datepicker($this->language->get('date_format_short')), 'highlight' => 'pased', 'required' => true, 'style' => 'medium-field')); $this->data['form']['fields']['uses_total'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'uses_total', 'value' => $this->data['uses_total'])); $this->data['form']['fields']['uses_customer'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'uses_customer', 'value' => $this->data['uses_customer'])); if ($this->request->get['coupon_id']) { $this->loadModel('sale/order'); $total = $this->model_sale_order->getTotalOrders(array('filter_coupon_id' => $this->request->get['coupon_id'])); $this->data['form']['fields']['total_coupon_usage'] = (int) $total; } $this->load->library('json'); $listing_data = array(); if ($this->data['coupon_product']) { $this->loadModel('catalog/product'); foreach ($this->data['coupon_product'] as $product_id) { $product_info = $this->model_catalog_product->getProduct($product_id); $listing_data[$product_id] = array('id' => $product_id, 'name' => html_entity_decode($product_info['name'] . ' (' . $product_info['model'] . ')'), 'status' => 1); } } if ($this->request->server['REQUEST_METHOD'] == 'POST') { $listing_data = AJson::decode(html_entity_decode($this->request->post['selected'][0]), true); } $this->data['form']['fields']['product'] = $form->getFieldHtml(array('id' => 'coupon_products_list', 'type' => 'multivaluelist', 'name' => 'coupon_products', 'content_url' => $this->html->getSecureUrl('listing_grid/coupon/products'), 'edit_url' => '', 'multivalue_hidden_id' => 'popup', 'values' => $listing_data, 'return_to' => 'couponFrm_popup_item_count', 'text' => array('delete' => $this->language->get('button_delete'), 'delete_confirm' => $this->language->get('text_delete_confirm')))); $this->data['form']['fields']['list'] = $form->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/product_listing', '&form_name=couponFrm&multivalue_hidden_id=popup'), 'postvars' => '', 'return_to' => '', 'popup_height' => 708, 'js' => array('apply' => "couponFrm_coupon_products_buildList();", 'cancel' => 'couponFrm_coupon_products_buildList();'), '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->assign('help_url', $this->gen_help_url('coupon_edit')); $this->view->batchAssign($this->data); $this->processTemplate('pages/sale/coupon_form.tpl'); }
private function _getForm() { $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 = array(); $this->data['error'] = $this->error; $this->data['cancel'] = $this->html->getSecureURL('catalog/product_promotions', '&product_id=' . $this->request->get['product_id']); $this->data['active'] = 'promotions'; //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->data['product_description'] = $this->model_catalog_product->getProductDescriptions($this->request->get['product_id']); $this->data['heading_title'] = $this->language->get('text_edit') . ' ' . $this->language->get('text_product') . ' - ' . $this->data['product_description'][$this->session->data['content_language_id']]['name']; $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=' . $this->request->get['product_id']), 'text' => $this->data['heading_title'], 'separator' => ' :: ')); $this->document->addBreadcrumb(array('href' => $this->html->getSecureURL('catalog/product_promotions', '&product_id=' . $this->request->get['product_id']), 'text' => $this->language->get('tab_promotions'), 'separator' => ' :: ')); if (isset($this->request->get['product_discount_id']) && $this->request->server['REQUEST_METHOD'] != 'POST') { $discount_info = $this->model_catalog_product->getProductDiscount($this->request->get['product_discount_id']); if ($discount_info['date_start'] == '0000-00-00') { $discount_info['date_start'] = ''; } if ($discount_info['date_end'] == '0000-00-00') { $discount_info['date_end'] = ''; } } $this->loadModel('sale/customer_group'); $results = $this->model_sale_customer_group->getCustomerGroups(); $this->data['customer_groups'] = array(); foreach ($results as $r) { $this->data['customer_groups'][$r['customer_group_id']] = $r['name']; } $fields = array('customer_group_id', 'quantity', 'priority', 'price', 'date_start', 'date_end'); foreach ($fields as $f) { if (isset($this->request->post[$f])) { $this->data[$f] = $this->request->post[$f]; if (in_array($f, array('date_start', 'date_end'))) { $this->data[$f] = dateDisplay2ISO($this->data[$f], $this->language->get('date_format_short')); } } elseif (isset($discount_info)) { $this->data[$f] = $discount_info[$f]; } else { $this->data[$f] = ''; } } if (!isset($this->request->get['product_discount_id'])) { $this->data['action'] = $this->html->getSecureURL('catalog/product_discount/insert', '&product_id=' . $this->request->get['product_id']); $this->data['form_title'] = $this->language->get('text_insert') . ' ' . $this->language->get('entry_discount'); $this->data['update'] = ''; $form = new AForm('ST'); } else { $this->data['action'] = $this->html->getSecureURL('catalog/product_discount/update', '&product_id=' . $this->request->get['product_id'] . '&product_discount_id=' . $this->request->get['product_discount_id']); $this->data['form_title'] = $this->language->get('text_edit') . ' ' . $this->language->get('entry_discount'); $this->data['update'] = $this->html->getSecureURL('listing_grid/product/update_discount_field', '&id=' . $this->request->get['product_discount_id']); $form = new AForm('HS'); } $this->document->addBreadcrumb(array('href' => $this->data['action'], 'text' => $this->data['form_title'], 'separator' => ' :: ')); $form->setForm(array('form_name' => 'productFrm', 'update' => $this->data['update'])); $this->data['form']['id'] = 'productFrm'; $this->data['form']['form_open'] = $form->getFieldHtml(array('type' => 'form', 'name' => 'productFrm', 'action' => $this->data['action'], 'attr' => 'confirm-exit="true"')); $this->data['form']['submit'] = $form->getFieldHtml(array('type' => 'button', 'name' => 'submit', 'text' => $this->language->get('button_save'), 'style' => 'button1')); $this->data['form']['cancel'] = $form->getFieldHtml(array('type' => 'button', 'name' => 'cancel', 'text' => $this->language->get('button_cancel'), 'style' => 'button2')); $this->data['form']['fields']['customer_group'] = $form->getFieldHtml(array('type' => 'selectbox', 'name' => 'customer_group_id', 'value' => $this->data['customer_group_id'], 'options' => $this->data['customer_groups'])); $this->data['form']['fields']['quantity'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'quantity', 'value' => $this->data['quantity'], 'style' => 'small-field')); $this->data['form']['fields']['priority'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'priority', 'value' => $this->data['priority'], 'style' => 'small-field')); $this->data['form']['fields']['price'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'price', 'value' => moneyDisplayFormat($this->data['price']))); $this->data['js_date_format'] = format4Datepicker($this->language->get('date_format_short')); $this->data['form']['fields']['date_start'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'date_start', 'value' => dateISO2Display($this->data['date_start'], $this->language->get('date_format_short')), 'style' => 'date')); $this->data['form']['fields']['date_end'] = $form->getFieldHtml(array('type' => 'input', 'name' => 'date_end', 'value' => dateISO2Display($this->data['date_end'], $this->language->get('date_format_short')), 'style' => 'date')); $this->addChild('pages/catalog/product_summary', 'summary_form', 'pages/catalog/product_summary.tpl'); $this->view->assign('help_url', $this->gen_help_url('product_discount_edit')); $this->view->batchAssign($this->data); $this->processTemplate('pages/catalog/product_discount_form.tpl'); }