Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 3 минуты назад, kwakin сказал: Вам комиссар жюв правильно намекал Что у вас сайт с кривым кодом И как это потом работать будет одному богу известно ничего там не скривым кодом, просто в категории хочет вывести еще опции и вставляет код из контройлера product, но не правильно вставляет внимательно на его ошибки посмотрите Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 не работает таже хрень,ладно это дохлый номер спасибо Notice: Undefined variable: product_info in storage/modification/catalog/controller/product/category.php on line 259 Надіслати Поділитися на інших сайтах More sharing options... kwakin Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 4 минуты назад, Venter сказал: ничего там не скривым кодом, просто в категории хочет вывести еще опции и вставляет код из контройлера product, но не правильно вставляет внимательно на его ошибки посмотрите Комиссар жюв правильно сказал. Модуль ставьте Мы тоже 2 часа помучились магазин обуви заказчик потом модуль купил Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) 7 minutes ago, kwakin said: Комиссар жюв правильно сказал. Модуль ставьте Мы тоже 2 часа помучились магазин обуви заказчик потом модуль купил У меня всё готово, только нули не могу убрать! На C# уже юб давно сделал я не знаю синтаксис и как правильно пройтись по масивам и переприсвоить их покурю PHP может допилю ПРОСТО МАССИВЫ ЗАТИРАЮТЬСЯ Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 кончно работать не будет... я там кое что не учел и ты тоже, разницу в названиях не видишь Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) 5 minutes ago, Venter said: кончно работать не будет... я там кое что не учел и ты тоже, разницу в названиях не видишь зачем загадками говорить, пишите сразу в чем проблема НЕ ВИЖУ РАЗНИЦЫ вы про этое? me_optionse и me_options ??????? Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) вот так у меня работает <?php // * @source See SOURCE.txt for source and other copyright. // * @license GNU General Public License version 3; see LICENSE.txt class ControllerProductCategory extends Controller { public function index() { $this->load->language('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $data['text_empty'] = $this->language->get('text_empty'); if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; $this->document->setRobots('noindex,follow'); } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; $this->document->setRobots('noindex,follow'); } else { $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; $this->document->setRobots('noindex,follow'); } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; $this->document->setRobots('noindex,follow'); } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = (int)$this->request->get['limit']; $this->document->setRobots('noindex,follow'); } else { $limit = $this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit'); } $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home') ); if (isset($this->request->get['path'])) { $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); foreach ($parts as $path_id) { if (!$path) { $path = (int)$path_id; } else { $path .= '_' . (int)$path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path . $url) ); } } } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { if ($category_info['meta_title']) { $this->document->setTitle($category_info['meta_title']); } else { $this->document->setTitle($category_info['name']); } if ($category_info['noindex'] <= 0) { $this->document->setRobots('noindex,follow'); } if ($category_info['meta_h1']) { $data['heading_title'] = $category_info['meta_h1']; } else { $data['heading_title'] = $category_info['name']; } $this->document->setDescription($category_info['meta_description']); $this->document->setKeywords($category_info['meta_keyword']); $data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); // Set the last category breadcrumb $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']) ); if ($category_info['image']) { $data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_category_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_category_height')); } else { $data['thumb'] = ''; } $data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); $data['compare'] = $this->url->link('product/compare'); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['categories'] = array(); $results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $filter_data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); if ($result['image']) { //$image = $this->model_tool_image->resize($result['image'], 100, 100); $image = '/image/'.$result['image']; } else { $image = $this->model_tool_image->resize('placeholder.png', 1, 1); } $data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url), 'thumb' => $image ); } $data['products'] = array(); $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data); //я добавлял //$data['me_options'] = array(); //я добавлял $product_option_value_data = array(); $data['me_options'] = array(); foreach ($results as $result) { ///////////////////////////////////////////////////////////////////////// $options = $this->model_catalog_product->getProductOptions($result['product_id']); foreach($options as $option){ $product_option_value_data = array(); foreach ($option['product_option_value'] as $option_value) { $data['me_options'][] = array('name' => $option_value['name'], 'price' => number_format($option_value['price'], 0, '', ''), 'product_option_value_id' => $option_value['product_option_value_id'] ); if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) { if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) { $price = $this->currency->format($this->tax->calculate($option_value['price'], $result['tax_class_id'], $this->config->get('config_tax') ? 'P' : false), $this->session->data['currency']); } else { $price = false; } $product_option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'image' => $this->model_tool_image->resize($option_value['image'], 50, 50), 'price' => $price, 'price_prefix' => $option_value['price_prefix'] ); } } $data['options'][] = array( 'product_option_id' => $option['product_option_id'], 'product_option_value' => $product_option_value_data, 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'value' => $option['value'], 'required' => $option['required'] ); } //////////////////////////////////////////////////// if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height')); } if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price'], $this->session->data['currency']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } //НЕУЖЕЛИ НЕЛЬЗЯ БЫЛО СКОПИРОВАТЬ НОРМАЛЬНО ИЗ ФАЙЛА PRODUCT???? //А ГОВОРИШЬ ЧТО ПРОГРАММИСТ $data['products'][] = array( 'product_id' => $result['product_id'], 'options' => $options, 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(trim(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'))), 0, $this->config->get('theme_' . $this->config->get('config_theme') . '_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $result['rating'], 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['sorts'] = array(); $data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) ); } $data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $data['limits'] = array(); $limits = array_unique(array($this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $value) { $data['limits'][] = array( 'text' => $value, 'value' => $value, 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $value) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $data['pagination'] = $pagination->render(); $data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit)); // http://googlewebmastercentral.blogspot.com/2011/09/pagination-with-relnext-and-relprev.html if ($page == 1) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id']), 'canonical'); } else { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. $page), 'canonical'); } if ($page > 1) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . (($page - 2) ? '&page='. ($page - 1) : '')), 'prev'); } if ($limit && ceil($product_total / $limit) > $page) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1)), 'next'); } $data['sort'] = $sort; $data['order'] = $order; $data['limit'] = $limit; $data['continue'] = $this->url->link('common/home'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('product/category', $data)); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/category', $url) ); $this->document->setTitle($this->language->get('text_error')); $data['continue'] = $this->url->link('common/home'); $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . ' 404 Not Found'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('error/not_found', $data)); } } } Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 10 минут назад, Dimusik сказал: У меня всё готово, только нули не могу убрать! На C# уже юб давно сделал я не знаю синтаксис и как правильно пройтись по масивам и переприсвоить их покурю PHP может допилю ПРОСТО МАССИВЫ ЗАТИРАЮТЬСЯ я тебе сказал как прописывать массив?? вот так $data['me_options'] = array(); $data['me_options'][] = array('name' => $option_value['name'], 'price' => number_format($option_value['price'], 0, '', ''), 'product_option_value_id' => $option_value['product_option_value_id'] ); а ты пишешь $data['me_options'] = array(); $data['me_optionse'][] = array('name' => $option_value['name'], 'price' => number_format($option_value['price'], 0, '', ''), 'product_option_value_id' => $option_value['product_option_value_id'] ); разница есть? Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 4 minutes ago, Venter said: вот так у меня работает <?php // * @source See SOURCE.txt for source and other copyright. // * @license GNU General Public License version 3; see LICENSE.txt class ControllerProductCategory extends Controller { public function index() { $this->load->language('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $data['text_empty'] = $this->language->get('text_empty'); if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; $this->document->setRobots('noindex,follow'); } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; $this->document->setRobots('noindex,follow'); } else { $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; $this->document->setRobots('noindex,follow'); } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; $this->document->setRobots('noindex,follow'); } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = (int)$this->request->get['limit']; $this->document->setRobots('noindex,follow'); } else { $limit = $this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit'); } $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home') ); if (isset($this->request->get['path'])) { $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); foreach ($parts as $path_id) { if (!$path) { $path = (int)$path_id; } else { $path .= '_' . (int)$path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path . $url) ); } } } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { if ($category_info['meta_title']) { $this->document->setTitle($category_info['meta_title']); } else { $this->document->setTitle($category_info['name']); } if ($category_info['noindex'] <= 0) { $this->document->setRobots('noindex,follow'); } if ($category_info['meta_h1']) { $data['heading_title'] = $category_info['meta_h1']; } else { $data['heading_title'] = $category_info['name']; } $this->document->setDescription($category_info['meta_description']); $this->document->setKeywords($category_info['meta_keyword']); $data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); // Set the last category breadcrumb $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']) ); if ($category_info['image']) { $data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_category_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_category_height')); } else { $data['thumb'] = ''; } $data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); $data['compare'] = $this->url->link('product/compare'); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['categories'] = array(); $results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $filter_data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); if ($result['image']) { //$image = $this->model_tool_image->resize($result['image'], 100, 100); $image = '/image/'.$result['image']; } else { $image = $this->model_tool_image->resize('placeholder.png', 1, 1); } $data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url), 'thumb' => $image ); } $data['products'] = array(); $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data); //я добавлял //$data['me_options'] = array(); //я добавлял $product_option_value_data = array(); $data['me_options'] = array(); foreach ($results as $result) { ///////////////////////////////////////////////////////////////////////// $options = $this->model_catalog_product->getProductOptions($result['product_id']); foreach($options as $option){ $product_option_value_data = array(); foreach ($option['product_option_value'] as $option_value) { $data['me_options'][] = array('name' => $option_value['name'], 'price' => number_format($option_value['price'], 0, '', ''), 'product_option_value_id' => $option_value['product_option_value_id'] ); if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) { if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) { $price = $this->currency->format($this->tax->calculate($option_value['price'], $result['tax_class_id'], $this->config->get('config_tax') ? 'P' : false), $this->session->data['currency']); } else { $price = false; } $product_option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'image' => $this->model_tool_image->resize($option_value['image'], 50, 50), 'price' => $price, 'price_prefix' => $option_value['price_prefix'] ); } } $data['options'][] = array( 'product_option_id' => $option['product_option_id'], 'product_option_value' => $product_option_value_data, 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'value' => $option['value'], 'required' => $option['required'] ); } //////////////////////////////////////////////////// if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height')); } if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price'], $this->session->data['currency']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } //НЕУЖЕЛИ НЕЛЬЗЯ БЫЛО СКОПИРОВАТЬ НОРМАЛЬНО ИЗ ФАЙЛА PRODUCT???? //А ГОВОРИШЬ ЧТО ПРОГРАММИСТ $data['products'][] = array( 'product_id' => $result['product_id'], 'options' => $options, 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(trim(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'))), 0, $this->config->get('theme_' . $this->config->get('config_theme') . '_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $result['rating'], 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['sorts'] = array(); $data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) ); } $data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $data['limits'] = array(); $limits = array_unique(array($this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $value) { $data['limits'][] = array( 'text' => $value, 'value' => $value, 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $value) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $data['pagination'] = $pagination->render(); $data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit)); // http://googlewebmastercentral.blogspot.com/2011/09/pagination-with-relnext-and-relprev.html if ($page == 1) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id']), 'canonical'); } else { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. $page), 'canonical'); } if ($page > 1) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . (($page - 2) ? '&page='. ($page - 1) : '')), 'prev'); } if ($limit && ceil($product_total / $limit) > $page) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1)), 'next'); } $data['sort'] = $sort; $data['order'] = $order; $data['limit'] = $limit; $data['continue'] = $this->url->link('common/home'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('product/category', $data)); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/category', $url) ); $this->document->setTitle($this->language->get('text_error')); $data['continue'] = $this->url->link('common/home'); $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . ' 404 Not Found'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('error/not_found', $data)); } } } у меня тоже работает и без ошибок но нули не ушли Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 вот на скринах то что я вывел, не повторяются опции. спецом скрин продукта опций сделал чтоб сравнил с опциями в категориях Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 2 минуты назад, Dimusik сказал: у меня тоже работает и без ошибок но нули не ушли в админку иди икак писал до этого Система-Локализация-Валюта поставь 0 Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) Последний вариант тоже не работает выводит все сразу А почему нельзя перезаписать тот же масив что мы получаем отсюда $options = $this->model_catalog_product->getProductOptions($result['product_id']); Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 2 minutes ago, Venter said: в админку иди икак писал до этого Система-Локализация-Валюта поставь 0 сделал уже давно Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) 3 минуты назад, Dimusik сказал: Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? а я че сделал? ты ваще понял че говоришь??? по массиву прошлись и в массив положили. по сути в шаблоне me_options это переменная которая содержит массив если на 2.3 опенкарт делать то будет вот так $me_options Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 2 минуты назад, Dimusik сказал: сделал уже давно Как ты выводишь в шаблоне??? в студию код Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 4 минуты назад, Dimusik сказал: Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? ты по ходу вообще не в курсе что есть MVC и как опенкарт выводит данные в шаблон и не знаешь что такое extract Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 вот {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 8 минут назад, Dimusik сказал: Последний вариант тоже не работает выводит все сразу что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 Должно Just now, Venter said: что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит должно выводить столько опций сколько есть у конкретного товара. 20 мм 30мм 40 мм а оно непонятно что выводит в одном товаре со всех товаров чтоли опции Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) Я понял в чем проблема если me_option выводит все опции что относятся к странице ,со всех товаров ,то этот вариант нам точно не подходит.Потому что он все опции со всех товаров впихивает в цикле в один товар, а мн еэто не нужно, ЭТО ХОРОШО БЫ РАБОТАЛО ЕСЛИ НАМ НАДО БЫЛО ВЫВЕСТИ ОДИН ТОВАР Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) Спойлер {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if me_options %} {% set i = 1 %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 там по ходу нужно свой запрос в модели сделать, ща посмотрю. в азарт вошел ))) Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 я проверил цикл как работает, оказывается не изменяются просто в цикле почему то цены не округляются к (int) вот что выводит пп1500.0000 пп2000.0000 пп2500.0000 пп1200.0000 пп1400.0000 пп1600.0000 вот потому мы и получаем нули потому что циклы как то неправильно присваивают значения ЭХ ЗНАЛ БЫ Я PHP досконально Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 )))) ты труба.... в верхней части ты просто данные привел к целому но не объявил echo (int)$option_value['price']; Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 Вперед Сторінка 4 з 5 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Звіти про помилки Сделать список цен опций без нулей после точки Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 не работает таже хрень,ладно это дохлый номер спасибо Notice: Undefined variable: product_info in storage/modification/catalog/controller/product/category.php on line 259 Надіслати Поділитися на інших сайтах More sharing options...
kwakin Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 4 минуты назад, Venter сказал: ничего там не скривым кодом, просто в категории хочет вывести еще опции и вставляет код из контройлера product, но не правильно вставляет внимательно на его ошибки посмотрите Комиссар жюв правильно сказал. Модуль ставьте Мы тоже 2 часа помучились магазин обуви заказчик потом модуль купил Надіслати Поділитися на інших сайтах More sharing options...
Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) 7 minutes ago, kwakin said: Комиссар жюв правильно сказал. Модуль ставьте Мы тоже 2 часа помучились магазин обуви заказчик потом модуль купил У меня всё готово, только нули не могу убрать! На C# уже юб давно сделал я не знаю синтаксис и как правильно пройтись по масивам и переприсвоить их покурю PHP может допилю ПРОСТО МАССИВЫ ЗАТИРАЮТЬСЯ Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options...
Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 кончно работать не будет... я там кое что не учел и ты тоже, разницу в названиях не видишь Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) 5 minutes ago, Venter said: кончно работать не будет... я там кое что не учел и ты тоже, разницу в названиях не видишь зачем загадками говорить, пишите сразу в чем проблема НЕ ВИЖУ РАЗНИЦЫ вы про этое? me_optionse и me_options ??????? Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) вот так у меня работает <?php // * @source See SOURCE.txt for source and other copyright. // * @license GNU General Public License version 3; see LICENSE.txt class ControllerProductCategory extends Controller { public function index() { $this->load->language('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $data['text_empty'] = $this->language->get('text_empty'); if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; $this->document->setRobots('noindex,follow'); } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; $this->document->setRobots('noindex,follow'); } else { $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; $this->document->setRobots('noindex,follow'); } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; $this->document->setRobots('noindex,follow'); } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = (int)$this->request->get['limit']; $this->document->setRobots('noindex,follow'); } else { $limit = $this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit'); } $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home') ); if (isset($this->request->get['path'])) { $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); foreach ($parts as $path_id) { if (!$path) { $path = (int)$path_id; } else { $path .= '_' . (int)$path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path . $url) ); } } } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { if ($category_info['meta_title']) { $this->document->setTitle($category_info['meta_title']); } else { $this->document->setTitle($category_info['name']); } if ($category_info['noindex'] <= 0) { $this->document->setRobots('noindex,follow'); } if ($category_info['meta_h1']) { $data['heading_title'] = $category_info['meta_h1']; } else { $data['heading_title'] = $category_info['name']; } $this->document->setDescription($category_info['meta_description']); $this->document->setKeywords($category_info['meta_keyword']); $data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); // Set the last category breadcrumb $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']) ); if ($category_info['image']) { $data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_category_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_category_height')); } else { $data['thumb'] = ''; } $data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); $data['compare'] = $this->url->link('product/compare'); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['categories'] = array(); $results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $filter_data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); if ($result['image']) { //$image = $this->model_tool_image->resize($result['image'], 100, 100); $image = '/image/'.$result['image']; } else { $image = $this->model_tool_image->resize('placeholder.png', 1, 1); } $data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url), 'thumb' => $image ); } $data['products'] = array(); $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data); //я добавлял //$data['me_options'] = array(); //я добавлял $product_option_value_data = array(); $data['me_options'] = array(); foreach ($results as $result) { ///////////////////////////////////////////////////////////////////////// $options = $this->model_catalog_product->getProductOptions($result['product_id']); foreach($options as $option){ $product_option_value_data = array(); foreach ($option['product_option_value'] as $option_value) { $data['me_options'][] = array('name' => $option_value['name'], 'price' => number_format($option_value['price'], 0, '', ''), 'product_option_value_id' => $option_value['product_option_value_id'] ); if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) { if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) { $price = $this->currency->format($this->tax->calculate($option_value['price'], $result['tax_class_id'], $this->config->get('config_tax') ? 'P' : false), $this->session->data['currency']); } else { $price = false; } $product_option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'image' => $this->model_tool_image->resize($option_value['image'], 50, 50), 'price' => $price, 'price_prefix' => $option_value['price_prefix'] ); } } $data['options'][] = array( 'product_option_id' => $option['product_option_id'], 'product_option_value' => $product_option_value_data, 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'value' => $option['value'], 'required' => $option['required'] ); } //////////////////////////////////////////////////// if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height')); } if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price'], $this->session->data['currency']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } //НЕУЖЕЛИ НЕЛЬЗЯ БЫЛО СКОПИРОВАТЬ НОРМАЛЬНО ИЗ ФАЙЛА PRODUCT???? //А ГОВОРИШЬ ЧТО ПРОГРАММИСТ $data['products'][] = array( 'product_id' => $result['product_id'], 'options' => $options, 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(trim(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'))), 0, $this->config->get('theme_' . $this->config->get('config_theme') . '_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $result['rating'], 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['sorts'] = array(); $data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) ); } $data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $data['limits'] = array(); $limits = array_unique(array($this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $value) { $data['limits'][] = array( 'text' => $value, 'value' => $value, 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $value) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $data['pagination'] = $pagination->render(); $data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit)); // http://googlewebmastercentral.blogspot.com/2011/09/pagination-with-relnext-and-relprev.html if ($page == 1) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id']), 'canonical'); } else { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. $page), 'canonical'); } if ($page > 1) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . (($page - 2) ? '&page='. ($page - 1) : '')), 'prev'); } if ($limit && ceil($product_total / $limit) > $page) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1)), 'next'); } $data['sort'] = $sort; $data['order'] = $order; $data['limit'] = $limit; $data['continue'] = $this->url->link('common/home'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('product/category', $data)); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/category', $url) ); $this->document->setTitle($this->language->get('text_error')); $data['continue'] = $this->url->link('common/home'); $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . ' 404 Not Found'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('error/not_found', $data)); } } } Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 10 минут назад, Dimusik сказал: У меня всё готово, только нули не могу убрать! На C# уже юб давно сделал я не знаю синтаксис и как правильно пройтись по масивам и переприсвоить их покурю PHP может допилю ПРОСТО МАССИВЫ ЗАТИРАЮТЬСЯ я тебе сказал как прописывать массив?? вот так $data['me_options'] = array(); $data['me_options'][] = array('name' => $option_value['name'], 'price' => number_format($option_value['price'], 0, '', ''), 'product_option_value_id' => $option_value['product_option_value_id'] ); а ты пишешь $data['me_options'] = array(); $data['me_optionse'][] = array('name' => $option_value['name'], 'price' => number_format($option_value['price'], 0, '', ''), 'product_option_value_id' => $option_value['product_option_value_id'] ); разница есть? Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 4 minutes ago, Venter said: вот так у меня работает <?php // * @source See SOURCE.txt for source and other copyright. // * @license GNU General Public License version 3; see LICENSE.txt class ControllerProductCategory extends Controller { public function index() { $this->load->language('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $data['text_empty'] = $this->language->get('text_empty'); if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; $this->document->setRobots('noindex,follow'); } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; $this->document->setRobots('noindex,follow'); } else { $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; $this->document->setRobots('noindex,follow'); } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; $this->document->setRobots('noindex,follow'); } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = (int)$this->request->get['limit']; $this->document->setRobots('noindex,follow'); } else { $limit = $this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit'); } $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home') ); if (isset($this->request->get['path'])) { $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); foreach ($parts as $path_id) { if (!$path) { $path = (int)$path_id; } else { $path .= '_' . (int)$path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path . $url) ); } } } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { if ($category_info['meta_title']) { $this->document->setTitle($category_info['meta_title']); } else { $this->document->setTitle($category_info['name']); } if ($category_info['noindex'] <= 0) { $this->document->setRobots('noindex,follow'); } if ($category_info['meta_h1']) { $data['heading_title'] = $category_info['meta_h1']; } else { $data['heading_title'] = $category_info['name']; } $this->document->setDescription($category_info['meta_description']); $this->document->setKeywords($category_info['meta_keyword']); $data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); // Set the last category breadcrumb $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']) ); if ($category_info['image']) { $data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_category_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_category_height')); } else { $data['thumb'] = ''; } $data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); $data['compare'] = $this->url->link('product/compare'); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['categories'] = array(); $results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $filter_data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); if ($result['image']) { //$image = $this->model_tool_image->resize($result['image'], 100, 100); $image = '/image/'.$result['image']; } else { $image = $this->model_tool_image->resize('placeholder.png', 1, 1); } $data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url), 'thumb' => $image ); } $data['products'] = array(); $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data); //я добавлял //$data['me_options'] = array(); //я добавлял $product_option_value_data = array(); $data['me_options'] = array(); foreach ($results as $result) { ///////////////////////////////////////////////////////////////////////// $options = $this->model_catalog_product->getProductOptions($result['product_id']); foreach($options as $option){ $product_option_value_data = array(); foreach ($option['product_option_value'] as $option_value) { $data['me_options'][] = array('name' => $option_value['name'], 'price' => number_format($option_value['price'], 0, '', ''), 'product_option_value_id' => $option_value['product_option_value_id'] ); if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) { if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) { $price = $this->currency->format($this->tax->calculate($option_value['price'], $result['tax_class_id'], $this->config->get('config_tax') ? 'P' : false), $this->session->data['currency']); } else { $price = false; } $product_option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'image' => $this->model_tool_image->resize($option_value['image'], 50, 50), 'price' => $price, 'price_prefix' => $option_value['price_prefix'] ); } } $data['options'][] = array( 'product_option_id' => $option['product_option_id'], 'product_option_value' => $product_option_value_data, 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'value' => $option['value'], 'required' => $option['required'] ); } //////////////////////////////////////////////////// if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height')); } if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price'], $this->session->data['currency']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } //НЕУЖЕЛИ НЕЛЬЗЯ БЫЛО СКОПИРОВАТЬ НОРМАЛЬНО ИЗ ФАЙЛА PRODUCT???? //А ГОВОРИШЬ ЧТО ПРОГРАММИСТ $data['products'][] = array( 'product_id' => $result['product_id'], 'options' => $options, 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(trim(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'))), 0, $this->config->get('theme_' . $this->config->get('config_theme') . '_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $result['rating'], 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['sorts'] = array(); $data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) ); } $data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $data['limits'] = array(); $limits = array_unique(array($this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $value) { $data['limits'][] = array( 'text' => $value, 'value' => $value, 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $value) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $data['pagination'] = $pagination->render(); $data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit)); // http://googlewebmastercentral.blogspot.com/2011/09/pagination-with-relnext-and-relprev.html if ($page == 1) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id']), 'canonical'); } else { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. $page), 'canonical'); } if ($page > 1) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . (($page - 2) ? '&page='. ($page - 1) : '')), 'prev'); } if ($limit && ceil($product_total / $limit) > $page) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1)), 'next'); } $data['sort'] = $sort; $data['order'] = $order; $data['limit'] = $limit; $data['continue'] = $this->url->link('common/home'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('product/category', $data)); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/category', $url) ); $this->document->setTitle($this->language->get('text_error')); $data['continue'] = $this->url->link('common/home'); $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . ' 404 Not Found'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('error/not_found', $data)); } } } у меня тоже работает и без ошибок но нули не ушли Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 вот на скринах то что я вывел, не повторяются опции. спецом скрин продукта опций сделал чтоб сравнил с опциями в категориях Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 2 минуты назад, Dimusik сказал: у меня тоже работает и без ошибок но нули не ушли в админку иди икак писал до этого Система-Локализация-Валюта поставь 0 Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) Последний вариант тоже не работает выводит все сразу А почему нельзя перезаписать тот же масив что мы получаем отсюда $options = $this->model_catalog_product->getProductOptions($result['product_id']); Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 2 minutes ago, Venter said: в админку иди икак писал до этого Система-Локализация-Валюта поставь 0 сделал уже давно Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) 3 минуты назад, Dimusik сказал: Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? а я че сделал? ты ваще понял че говоришь??? по массиву прошлись и в массив положили. по сути в шаблоне me_options это переменная которая содержит массив если на 2.3 опенкарт делать то будет вот так $me_options Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 2 минуты назад, Dimusik сказал: сделал уже давно Как ты выводишь в шаблоне??? в студию код Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 4 минуты назад, Dimusik сказал: Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? ты по ходу вообще не в курсе что есть MVC и как опенкарт выводит данные в шаблон и не знаешь что такое extract Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 вот {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 8 минут назад, Dimusik сказал: Последний вариант тоже не работает выводит все сразу что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 Должно Just now, Venter said: что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит должно выводить столько опций сколько есть у конкретного товара. 20 мм 30мм 40 мм а оно непонятно что выводит в одном товаре со всех товаров чтоли опции Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) Я понял в чем проблема если me_option выводит все опции что относятся к странице ,со всех товаров ,то этот вариант нам точно не подходит.Потому что он все опции со всех товаров впихивает в цикле в один товар, а мн еэто не нужно, ЭТО ХОРОШО БЫ РАБОТАЛО ЕСЛИ НАМ НАДО БЫЛО ВЫВЕСТИ ОДИН ТОВАР Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) Спойлер {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if me_options %} {% set i = 1 %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 там по ходу нужно свой запрос в модели сделать, ща посмотрю. в азарт вошел ))) Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 я проверил цикл как работает, оказывается не изменяются просто в цикле почему то цены не округляются к (int) вот что выводит пп1500.0000 пп2000.0000 пп2500.0000 пп1200.0000 пп1400.0000 пп1600.0000 вот потому мы и получаем нули потому что циклы как то неправильно присваивают значения ЭХ ЗНАЛ БЫ Я PHP досконально Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 )))) ты труба.... в верхней части ты просто данные привел к целому но не объявил echo (int)$option_value['price']; Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 Вперед Сторінка 4 з 5 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Звіти про помилки Сделать список цен опций без нулей после точки Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) 5 minutes ago, Venter said: кончно работать не будет... я там кое что не учел и ты тоже, разницу в названиях не видишь зачем загадками говорить, пишите сразу в чем проблема НЕ ВИЖУ РАЗНИЦЫ вы про этое? me_optionse и me_options ??????? Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options...
Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) вот так у меня работает <?php // * @source See SOURCE.txt for source and other copyright. // * @license GNU General Public License version 3; see LICENSE.txt class ControllerProductCategory extends Controller { public function index() { $this->load->language('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $data['text_empty'] = $this->language->get('text_empty'); if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; $this->document->setRobots('noindex,follow'); } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; $this->document->setRobots('noindex,follow'); } else { $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; $this->document->setRobots('noindex,follow'); } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; $this->document->setRobots('noindex,follow'); } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = (int)$this->request->get['limit']; $this->document->setRobots('noindex,follow'); } else { $limit = $this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit'); } $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home') ); if (isset($this->request->get['path'])) { $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); foreach ($parts as $path_id) { if (!$path) { $path = (int)$path_id; } else { $path .= '_' . (int)$path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path . $url) ); } } } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { if ($category_info['meta_title']) { $this->document->setTitle($category_info['meta_title']); } else { $this->document->setTitle($category_info['name']); } if ($category_info['noindex'] <= 0) { $this->document->setRobots('noindex,follow'); } if ($category_info['meta_h1']) { $data['heading_title'] = $category_info['meta_h1']; } else { $data['heading_title'] = $category_info['name']; } $this->document->setDescription($category_info['meta_description']); $this->document->setKeywords($category_info['meta_keyword']); $data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); // Set the last category breadcrumb $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']) ); if ($category_info['image']) { $data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_category_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_category_height')); } else { $data['thumb'] = ''; } $data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); $data['compare'] = $this->url->link('product/compare'); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['categories'] = array(); $results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $filter_data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); if ($result['image']) { //$image = $this->model_tool_image->resize($result['image'], 100, 100); $image = '/image/'.$result['image']; } else { $image = $this->model_tool_image->resize('placeholder.png', 1, 1); } $data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url), 'thumb' => $image ); } $data['products'] = array(); $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data); //я добавлял //$data['me_options'] = array(); //я добавлял $product_option_value_data = array(); $data['me_options'] = array(); foreach ($results as $result) { ///////////////////////////////////////////////////////////////////////// $options = $this->model_catalog_product->getProductOptions($result['product_id']); foreach($options as $option){ $product_option_value_data = array(); foreach ($option['product_option_value'] as $option_value) { $data['me_options'][] = array('name' => $option_value['name'], 'price' => number_format($option_value['price'], 0, '', ''), 'product_option_value_id' => $option_value['product_option_value_id'] ); if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) { if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) { $price = $this->currency->format($this->tax->calculate($option_value['price'], $result['tax_class_id'], $this->config->get('config_tax') ? 'P' : false), $this->session->data['currency']); } else { $price = false; } $product_option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'image' => $this->model_tool_image->resize($option_value['image'], 50, 50), 'price' => $price, 'price_prefix' => $option_value['price_prefix'] ); } } $data['options'][] = array( 'product_option_id' => $option['product_option_id'], 'product_option_value' => $product_option_value_data, 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'value' => $option['value'], 'required' => $option['required'] ); } //////////////////////////////////////////////////// if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height')); } if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price'], $this->session->data['currency']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } //НЕУЖЕЛИ НЕЛЬЗЯ БЫЛО СКОПИРОВАТЬ НОРМАЛЬНО ИЗ ФАЙЛА PRODUCT???? //А ГОВОРИШЬ ЧТО ПРОГРАММИСТ $data['products'][] = array( 'product_id' => $result['product_id'], 'options' => $options, 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(trim(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'))), 0, $this->config->get('theme_' . $this->config->get('config_theme') . '_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $result['rating'], 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['sorts'] = array(); $data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) ); } $data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $data['limits'] = array(); $limits = array_unique(array($this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $value) { $data['limits'][] = array( 'text' => $value, 'value' => $value, 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $value) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $data['pagination'] = $pagination->render(); $data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit)); // http://googlewebmastercentral.blogspot.com/2011/09/pagination-with-relnext-and-relprev.html if ($page == 1) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id']), 'canonical'); } else { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. $page), 'canonical'); } if ($page > 1) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . (($page - 2) ? '&page='. ($page - 1) : '')), 'prev'); } if ($limit && ceil($product_total / $limit) > $page) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1)), 'next'); } $data['sort'] = $sort; $data['order'] = $order; $data['limit'] = $limit; $data['continue'] = $this->url->link('common/home'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('product/category', $data)); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/category', $url) ); $this->document->setTitle($this->language->get('text_error')); $data['continue'] = $this->url->link('common/home'); $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . ' 404 Not Found'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('error/not_found', $data)); } } } Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 10 минут назад, Dimusik сказал: У меня всё готово, только нули не могу убрать! На C# уже юб давно сделал я не знаю синтаксис и как правильно пройтись по масивам и переприсвоить их покурю PHP может допилю ПРОСТО МАССИВЫ ЗАТИРАЮТЬСЯ я тебе сказал как прописывать массив?? вот так $data['me_options'] = array(); $data['me_options'][] = array('name' => $option_value['name'], 'price' => number_format($option_value['price'], 0, '', ''), 'product_option_value_id' => $option_value['product_option_value_id'] ); а ты пишешь $data['me_options'] = array(); $data['me_optionse'][] = array('name' => $option_value['name'], 'price' => number_format($option_value['price'], 0, '', ''), 'product_option_value_id' => $option_value['product_option_value_id'] ); разница есть? Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 4 minutes ago, Venter said: вот так у меня работает <?php // * @source See SOURCE.txt for source and other copyright. // * @license GNU General Public License version 3; see LICENSE.txt class ControllerProductCategory extends Controller { public function index() { $this->load->language('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $data['text_empty'] = $this->language->get('text_empty'); if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; $this->document->setRobots('noindex,follow'); } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; $this->document->setRobots('noindex,follow'); } else { $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; $this->document->setRobots('noindex,follow'); } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; $this->document->setRobots('noindex,follow'); } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = (int)$this->request->get['limit']; $this->document->setRobots('noindex,follow'); } else { $limit = $this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit'); } $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home') ); if (isset($this->request->get['path'])) { $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); foreach ($parts as $path_id) { if (!$path) { $path = (int)$path_id; } else { $path .= '_' . (int)$path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path . $url) ); } } } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { if ($category_info['meta_title']) { $this->document->setTitle($category_info['meta_title']); } else { $this->document->setTitle($category_info['name']); } if ($category_info['noindex'] <= 0) { $this->document->setRobots('noindex,follow'); } if ($category_info['meta_h1']) { $data['heading_title'] = $category_info['meta_h1']; } else { $data['heading_title'] = $category_info['name']; } $this->document->setDescription($category_info['meta_description']); $this->document->setKeywords($category_info['meta_keyword']); $data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); // Set the last category breadcrumb $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']) ); if ($category_info['image']) { $data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_category_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_category_height')); } else { $data['thumb'] = ''; } $data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); $data['compare'] = $this->url->link('product/compare'); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['categories'] = array(); $results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $filter_data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); if ($result['image']) { //$image = $this->model_tool_image->resize($result['image'], 100, 100); $image = '/image/'.$result['image']; } else { $image = $this->model_tool_image->resize('placeholder.png', 1, 1); } $data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url), 'thumb' => $image ); } $data['products'] = array(); $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data); //я добавлял //$data['me_options'] = array(); //я добавлял $product_option_value_data = array(); $data['me_options'] = array(); foreach ($results as $result) { ///////////////////////////////////////////////////////////////////////// $options = $this->model_catalog_product->getProductOptions($result['product_id']); foreach($options as $option){ $product_option_value_data = array(); foreach ($option['product_option_value'] as $option_value) { $data['me_options'][] = array('name' => $option_value['name'], 'price' => number_format($option_value['price'], 0, '', ''), 'product_option_value_id' => $option_value['product_option_value_id'] ); if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) { if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) { $price = $this->currency->format($this->tax->calculate($option_value['price'], $result['tax_class_id'], $this->config->get('config_tax') ? 'P' : false), $this->session->data['currency']); } else { $price = false; } $product_option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'image' => $this->model_tool_image->resize($option_value['image'], 50, 50), 'price' => $price, 'price_prefix' => $option_value['price_prefix'] ); } } $data['options'][] = array( 'product_option_id' => $option['product_option_id'], 'product_option_value' => $product_option_value_data, 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'value' => $option['value'], 'required' => $option['required'] ); } //////////////////////////////////////////////////// if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height')); } if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price'], $this->session->data['currency']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } //НЕУЖЕЛИ НЕЛЬЗЯ БЫЛО СКОПИРОВАТЬ НОРМАЛЬНО ИЗ ФАЙЛА PRODUCT???? //А ГОВОРИШЬ ЧТО ПРОГРАММИСТ $data['products'][] = array( 'product_id' => $result['product_id'], 'options' => $options, 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(trim(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'))), 0, $this->config->get('theme_' . $this->config->get('config_theme') . '_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $result['rating'], 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['sorts'] = array(); $data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) ); } $data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $data['limits'] = array(); $limits = array_unique(array($this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $value) { $data['limits'][] = array( 'text' => $value, 'value' => $value, 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $value) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $data['pagination'] = $pagination->render(); $data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit)); // http://googlewebmastercentral.blogspot.com/2011/09/pagination-with-relnext-and-relprev.html if ($page == 1) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id']), 'canonical'); } else { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. $page), 'canonical'); } if ($page > 1) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . (($page - 2) ? '&page='. ($page - 1) : '')), 'prev'); } if ($limit && ceil($product_total / $limit) > $page) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1)), 'next'); } $data['sort'] = $sort; $data['order'] = $order; $data['limit'] = $limit; $data['continue'] = $this->url->link('common/home'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('product/category', $data)); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/category', $url) ); $this->document->setTitle($this->language->get('text_error')); $data['continue'] = $this->url->link('common/home'); $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . ' 404 Not Found'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('error/not_found', $data)); } } } у меня тоже работает и без ошибок но нули не ушли Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 вот на скринах то что я вывел, не повторяются опции. спецом скрин продукта опций сделал чтоб сравнил с опциями в категориях Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 2 минуты назад, Dimusik сказал: у меня тоже работает и без ошибок но нули не ушли в админку иди икак писал до этого Система-Локализация-Валюта поставь 0 Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) Последний вариант тоже не работает выводит все сразу А почему нельзя перезаписать тот же масив что мы получаем отсюда $options = $this->model_catalog_product->getProductOptions($result['product_id']); Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 2 minutes ago, Venter said: в админку иди икак писал до этого Система-Локализация-Валюта поставь 0 сделал уже давно Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) 3 минуты назад, Dimusik сказал: Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? а я че сделал? ты ваще понял че говоришь??? по массиву прошлись и в массив положили. по сути в шаблоне me_options это переменная которая содержит массив если на 2.3 опенкарт делать то будет вот так $me_options Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 2 минуты назад, Dimusik сказал: сделал уже давно Как ты выводишь в шаблоне??? в студию код Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 4 минуты назад, Dimusik сказал: Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? ты по ходу вообще не в курсе что есть MVC и как опенкарт выводит данные в шаблон и не знаешь что такое extract Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 вот {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 8 минут назад, Dimusik сказал: Последний вариант тоже не работает выводит все сразу что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 Должно Just now, Venter said: что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит должно выводить столько опций сколько есть у конкретного товара. 20 мм 30мм 40 мм а оно непонятно что выводит в одном товаре со всех товаров чтоли опции Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) Я понял в чем проблема если me_option выводит все опции что относятся к странице ,со всех товаров ,то этот вариант нам точно не подходит.Потому что он все опции со всех товаров впихивает в цикле в один товар, а мн еэто не нужно, ЭТО ХОРОШО БЫ РАБОТАЛО ЕСЛИ НАМ НАДО БЫЛО ВЫВЕСТИ ОДИН ТОВАР Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) Спойлер {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if me_options %} {% set i = 1 %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 там по ходу нужно свой запрос в модели сделать, ща посмотрю. в азарт вошел ))) Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 я проверил цикл как работает, оказывается не изменяются просто в цикле почему то цены не округляются к (int) вот что выводит пп1500.0000 пп2000.0000 пп2500.0000 пп1200.0000 пп1400.0000 пп1600.0000 вот потому мы и получаем нули потому что циклы как то неправильно присваивают значения ЭХ ЗНАЛ БЫ Я PHP досконально Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 )))) ты труба.... в верхней части ты просто данные привел к целому но не объявил echo (int)$option_value['price']; Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 Вперед Сторінка 4 з 5 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Звіти про помилки Сделать список цен опций без нулей после точки Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 10 минут назад, Dimusik сказал: У меня всё готово, только нули не могу убрать! На C# уже юб давно сделал я не знаю синтаксис и как правильно пройтись по масивам и переприсвоить их покурю PHP может допилю ПРОСТО МАССИВЫ ЗАТИРАЮТЬСЯ я тебе сказал как прописывать массив?? вот так $data['me_options'] = array(); $data['me_options'][] = array('name' => $option_value['name'], 'price' => number_format($option_value['price'], 0, '', ''), 'product_option_value_id' => $option_value['product_option_value_id'] ); а ты пишешь $data['me_options'] = array(); $data['me_optionse'][] = array('name' => $option_value['name'], 'price' => number_format($option_value['price'], 0, '', ''), 'product_option_value_id' => $option_value['product_option_value_id'] ); разница есть? Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 4 minutes ago, Venter said: вот так у меня работает <?php // * @source See SOURCE.txt for source and other copyright. // * @license GNU General Public License version 3; see LICENSE.txt class ControllerProductCategory extends Controller { public function index() { $this->load->language('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $data['text_empty'] = $this->language->get('text_empty'); if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; $this->document->setRobots('noindex,follow'); } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; $this->document->setRobots('noindex,follow'); } else { $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; $this->document->setRobots('noindex,follow'); } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; $this->document->setRobots('noindex,follow'); } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = (int)$this->request->get['limit']; $this->document->setRobots('noindex,follow'); } else { $limit = $this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit'); } $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home') ); if (isset($this->request->get['path'])) { $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); foreach ($parts as $path_id) { if (!$path) { $path = (int)$path_id; } else { $path .= '_' . (int)$path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path . $url) ); } } } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { if ($category_info['meta_title']) { $this->document->setTitle($category_info['meta_title']); } else { $this->document->setTitle($category_info['name']); } if ($category_info['noindex'] <= 0) { $this->document->setRobots('noindex,follow'); } if ($category_info['meta_h1']) { $data['heading_title'] = $category_info['meta_h1']; } else { $data['heading_title'] = $category_info['name']; } $this->document->setDescription($category_info['meta_description']); $this->document->setKeywords($category_info['meta_keyword']); $data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); // Set the last category breadcrumb $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']) ); if ($category_info['image']) { $data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_category_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_category_height')); } else { $data['thumb'] = ''; } $data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); $data['compare'] = $this->url->link('product/compare'); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['categories'] = array(); $results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $filter_data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); if ($result['image']) { //$image = $this->model_tool_image->resize($result['image'], 100, 100); $image = '/image/'.$result['image']; } else { $image = $this->model_tool_image->resize('placeholder.png', 1, 1); } $data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url), 'thumb' => $image ); } $data['products'] = array(); $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data); //я добавлял //$data['me_options'] = array(); //я добавлял $product_option_value_data = array(); $data['me_options'] = array(); foreach ($results as $result) { ///////////////////////////////////////////////////////////////////////// $options = $this->model_catalog_product->getProductOptions($result['product_id']); foreach($options as $option){ $product_option_value_data = array(); foreach ($option['product_option_value'] as $option_value) { $data['me_options'][] = array('name' => $option_value['name'], 'price' => number_format($option_value['price'], 0, '', ''), 'product_option_value_id' => $option_value['product_option_value_id'] ); if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) { if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) { $price = $this->currency->format($this->tax->calculate($option_value['price'], $result['tax_class_id'], $this->config->get('config_tax') ? 'P' : false), $this->session->data['currency']); } else { $price = false; } $product_option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'image' => $this->model_tool_image->resize($option_value['image'], 50, 50), 'price' => $price, 'price_prefix' => $option_value['price_prefix'] ); } } $data['options'][] = array( 'product_option_id' => $option['product_option_id'], 'product_option_value' => $product_option_value_data, 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'value' => $option['value'], 'required' => $option['required'] ); } //////////////////////////////////////////////////// if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height')); } if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price'], $this->session->data['currency']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } //НЕУЖЕЛИ НЕЛЬЗЯ БЫЛО СКОПИРОВАТЬ НОРМАЛЬНО ИЗ ФАЙЛА PRODUCT???? //А ГОВОРИШЬ ЧТО ПРОГРАММИСТ $data['products'][] = array( 'product_id' => $result['product_id'], 'options' => $options, 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(trim(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'))), 0, $this->config->get('theme_' . $this->config->get('config_theme') . '_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $result['rating'], 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['sorts'] = array(); $data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) ); } $data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $data['limits'] = array(); $limits = array_unique(array($this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $value) { $data['limits'][] = array( 'text' => $value, 'value' => $value, 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $value) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $data['pagination'] = $pagination->render(); $data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit)); // http://googlewebmastercentral.blogspot.com/2011/09/pagination-with-relnext-and-relprev.html if ($page == 1) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id']), 'canonical'); } else { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. $page), 'canonical'); } if ($page > 1) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . (($page - 2) ? '&page='. ($page - 1) : '')), 'prev'); } if ($limit && ceil($product_total / $limit) > $page) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1)), 'next'); } $data['sort'] = $sort; $data['order'] = $order; $data['limit'] = $limit; $data['continue'] = $this->url->link('common/home'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('product/category', $data)); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/category', $url) ); $this->document->setTitle($this->language->get('text_error')); $data['continue'] = $this->url->link('common/home'); $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . ' 404 Not Found'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('error/not_found', $data)); } } } у меня тоже работает и без ошибок но нули не ушли Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 вот на скринах то что я вывел, не повторяются опции. спецом скрин продукта опций сделал чтоб сравнил с опциями в категориях Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 2 минуты назад, Dimusik сказал: у меня тоже работает и без ошибок но нули не ушли в админку иди икак писал до этого Система-Локализация-Валюта поставь 0 Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) Последний вариант тоже не работает выводит все сразу А почему нельзя перезаписать тот же масив что мы получаем отсюда $options = $this->model_catalog_product->getProductOptions($result['product_id']); Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 2 minutes ago, Venter said: в админку иди икак писал до этого Система-Локализация-Валюта поставь 0 сделал уже давно Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) 3 минуты назад, Dimusik сказал: Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? а я че сделал? ты ваще понял че говоришь??? по массиву прошлись и в массив положили. по сути в шаблоне me_options это переменная которая содержит массив если на 2.3 опенкарт делать то будет вот так $me_options Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 2 минуты назад, Dimusik сказал: сделал уже давно Как ты выводишь в шаблоне??? в студию код Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 4 минуты назад, Dimusik сказал: Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? ты по ходу вообще не в курсе что есть MVC и как опенкарт выводит данные в шаблон и не знаешь что такое extract Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 вот {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 8 минут назад, Dimusik сказал: Последний вариант тоже не работает выводит все сразу что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 Должно Just now, Venter said: что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит должно выводить столько опций сколько есть у конкретного товара. 20 мм 30мм 40 мм а оно непонятно что выводит в одном товаре со всех товаров чтоли опции Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) Я понял в чем проблема если me_option выводит все опции что относятся к странице ,со всех товаров ,то этот вариант нам точно не подходит.Потому что он все опции со всех товаров впихивает в цикле в один товар, а мн еэто не нужно, ЭТО ХОРОШО БЫ РАБОТАЛО ЕСЛИ НАМ НАДО БЫЛО ВЫВЕСТИ ОДИН ТОВАР Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) Спойлер {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if me_options %} {% set i = 1 %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 там по ходу нужно свой запрос в модели сделать, ща посмотрю. в азарт вошел ))) Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 я проверил цикл как работает, оказывается не изменяются просто в цикле почему то цены не округляются к (int) вот что выводит пп1500.0000 пп2000.0000 пп2500.0000 пп1200.0000 пп1400.0000 пп1600.0000 вот потому мы и получаем нули потому что циклы как то неправильно присваивают значения ЭХ ЗНАЛ БЫ Я PHP досконально Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 )))) ты труба.... в верхней части ты просто данные привел к целому но не объявил echo (int)$option_value['price']; Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 Вперед Сторінка 4 з 5 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Звіти про помилки Сделать список цен опций без нулей после точки Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 4 minutes ago, Venter said: вот так у меня работает <?php // * @source See SOURCE.txt for source and other copyright. // * @license GNU General Public License version 3; see LICENSE.txt class ControllerProductCategory extends Controller { public function index() { $this->load->language('product/category'); $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->load->model('tool/image'); $data['text_empty'] = $this->language->get('text_empty'); if (isset($this->request->get['filter'])) { $filter = $this->request->get['filter']; $this->document->setRobots('noindex,follow'); } else { $filter = ''; } if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; $this->document->setRobots('noindex,follow'); } else { $sort = 'p.sort_order'; } if (isset($this->request->get['order'])) { $order = $this->request->get['order']; $this->document->setRobots('noindex,follow'); } else { $order = 'ASC'; } if (isset($this->request->get['page'])) { $page = $this->request->get['page']; $this->document->setRobots('noindex,follow'); } else { $page = 1; } if (isset($this->request->get['limit'])) { $limit = (int)$this->request->get['limit']; $this->document->setRobots('noindex,follow'); } else { $limit = $this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit'); } $data['breadcrumbs'] = array(); $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/home') ); if (isset($this->request->get['path'])) { $url = ''; if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $path = ''; $parts = explode('_', (string)$this->request->get['path']); $category_id = (int)array_pop($parts); foreach ($parts as $path_id) { if (!$path) { $path = (int)$path_id; } else { $path .= '_' . (int)$path_id; } $category_info = $this->model_catalog_category->getCategory($path_id); if ($category_info) { $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $path . $url) ); } } } else { $category_id = 0; } $category_info = $this->model_catalog_category->getCategory($category_id); if ($category_info) { if ($category_info['meta_title']) { $this->document->setTitle($category_info['meta_title']); } else { $this->document->setTitle($category_info['name']); } if ($category_info['noindex'] <= 0) { $this->document->setRobots('noindex,follow'); } if ($category_info['meta_h1']) { $data['heading_title'] = $category_info['meta_h1']; } else { $data['heading_title'] = $category_info['name']; } $this->document->setDescription($category_info['meta_description']); $this->document->setKeywords($category_info['meta_keyword']); $data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0)); // Set the last category breadcrumb $data['breadcrumbs'][] = array( 'text' => $category_info['name'], 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path']) ); if ($category_info['image']) { $data['thumb'] = $this->model_tool_image->resize($category_info['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_category_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_category_height')); } else { $data['thumb'] = ''; } $data['description'] = html_entity_decode($category_info['description'], ENT_QUOTES, 'UTF-8'); $data['compare'] = $this->url->link('product/compare'); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['categories'] = array(); $results = $this->model_catalog_category->getCategories($category_id); foreach ($results as $result) { $filter_data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); if ($result['image']) { //$image = $this->model_tool_image->resize($result['image'], 100, 100); $image = '/image/'.$result['image']; } else { $image = $this->model_tool_image->resize('placeholder.png', 1, 1); } $data['categories'][] = array( 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url), 'thumb' => $image ); } $data['products'] = array(); $filter_data = array( 'filter_category_id' => $category_id, 'filter_filter' => $filter, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data); //я добавлял //$data['me_options'] = array(); //я добавлял $product_option_value_data = array(); $data['me_options'] = array(); foreach ($results as $result) { ///////////////////////////////////////////////////////////////////////// $options = $this->model_catalog_product->getProductOptions($result['product_id']); foreach($options as $option){ $product_option_value_data = array(); foreach ($option['product_option_value'] as $option_value) { $data['me_options'][] = array('name' => $option_value['name'], 'price' => number_format($option_value['price'], 0, '', ''), 'product_option_value_id' => $option_value['product_option_value_id'] ); if (!$option_value['subtract'] || ($option_value['quantity'] > 0)) { if ((($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) && (float)$option_value['price']) { $price = $this->currency->format($this->tax->calculate($option_value['price'], $result['tax_class_id'], $this->config->get('config_tax') ? 'P' : false), $this->session->data['currency']); } else { $price = false; } $product_option_value_data[] = array( 'product_option_value_id' => $option_value['product_option_value_id'], 'option_value_id' => $option_value['option_value_id'], 'name' => $option_value['name'], 'image' => $this->model_tool_image->resize($option_value['image'], 50, 50), 'price' => $price, 'price_prefix' => $option_value['price_prefix'] ); } } $data['options'][] = array( 'product_option_id' => $option['product_option_id'], 'product_option_value' => $product_option_value_data, 'option_id' => $option['option_id'], 'name' => $option['name'], 'type' => $option['type'], 'value' => $option['value'], 'required' => $option['required'] ); } //////////////////////////////////////////////////// if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_product_height')); } if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price'], $this->session->data['currency']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } //НЕУЖЕЛИ НЕЛЬЗЯ БЫЛО СКОПИРОВАТЬ НОРМАЛЬНО ИЗ ФАЙЛА PRODUCT???? //А ГОВОРИШЬ ЧТО ПРОГРАММИСТ $data['products'][] = array( 'product_id' => $result['product_id'], 'options' => $options, 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(trim(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'))), 0, $this->config->get('theme_' . $this->config->get('config_theme') . '_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $result['rating'], 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['sorts'] = array(); $data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $url) ); if ($this->config->get('config_review_status')) { $data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $url) ); } $data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $url) ); $data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $url) ); $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } $data['limits'] = array(); $limits = array_unique(array($this->config->get('theme_' . $this->config->get('config_theme') . '_product_limit'), 25, 50, 75, 100)); sort($limits); foreach($limits as $value) { $data['limits'][] = array( 'text' => $value, 'value' => $value, 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&limit=' . $value) ); } $url = ''; if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $pagination = new Pagination(); $pagination->total = $product_total; $pagination->page = $page; $pagination->limit = $limit; $pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . $url . '&page={page}'); $data['pagination'] = $pagination->render(); $data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit)); // http://googlewebmastercentral.blogspot.com/2011/09/pagination-with-relnext-and-relprev.html if ($page == 1) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id']), 'canonical'); } else { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. $page), 'canonical'); } if ($page > 1) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . (($page - 2) ? '&page='. ($page - 1) : '')), 'prev'); } if ($limit && ceil($product_total / $limit) > $page) { $this->document->addLink($this->url->link('product/category', 'path=' . $category_info['category_id'] . '&page='. ($page + 1)), 'next'); } $data['sort'] = $sort; $data['order'] = $order; $data['limit'] = $limit; $data['continue'] = $this->url->link('common/home'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('product/category', $data)); } else { $url = ''; if (isset($this->request->get['path'])) { $url .= '&path=' . $this->request->get['path']; } if (isset($this->request->get['filter'])) { $url .= '&filter=' . $this->request->get['filter']; } if (isset($this->request->get['sort'])) { $url .= '&sort=' . $this->request->get['sort']; } if (isset($this->request->get['order'])) { $url .= '&order=' . $this->request->get['order']; } if (isset($this->request->get['page'])) { $url .= '&page=' . $this->request->get['page']; } if (isset($this->request->get['limit'])) { $url .= '&limit=' . $this->request->get['limit']; } $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_error'), 'href' => $this->url->link('product/category', $url) ); $this->document->setTitle($this->language->get('text_error')); $data['continue'] = $this->url->link('common/home'); $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . ' 404 Not Found'); $data['column_left'] = $this->load->controller('common/column_left'); $data['column_right'] = $this->load->controller('common/column_right'); $data['content_top'] = $this->load->controller('common/content_top'); $data['content_bottom'] = $this->load->controller('common/content_bottom'); $data['footer'] = $this->load->controller('common/footer'); $data['header'] = $this->load->controller('common/header'); $this->response->setOutput($this->load->view('error/not_found', $data)); } } } у меня тоже работает и без ошибок но нули не ушли Надіслати Поділитися на інших сайтах More sharing options...
Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 вот на скринах то что я вывел, не повторяются опции. спецом скрин продукта опций сделал чтоб сравнил с опциями в категориях Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 2 минуты назад, Dimusik сказал: у меня тоже работает и без ошибок но нули не ушли в админку иди икак писал до этого Система-Локализация-Валюта поставь 0 Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) Последний вариант тоже не работает выводит все сразу А почему нельзя перезаписать тот же масив что мы получаем отсюда $options = $this->model_catalog_product->getProductOptions($result['product_id']); Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 2 minutes ago, Venter said: в админку иди икак писал до этого Система-Локализация-Валюта поставь 0 сделал уже давно Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) 3 минуты назад, Dimusik сказал: Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? а я че сделал? ты ваще понял че говоришь??? по массиву прошлись и в массив положили. по сути в шаблоне me_options это переменная которая содержит массив если на 2.3 опенкарт делать то будет вот так $me_options Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 2 минуты назад, Dimusik сказал: сделал уже давно Как ты выводишь в шаблоне??? в студию код Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 4 минуты назад, Dimusik сказал: Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? ты по ходу вообще не в курсе что есть MVC и как опенкарт выводит данные в шаблон и не знаешь что такое extract Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 вот {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 8 минут назад, Dimusik сказал: Последний вариант тоже не работает выводит все сразу что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 Должно Just now, Venter said: что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит должно выводить столько опций сколько есть у конкретного товара. 20 мм 30мм 40 мм а оно непонятно что выводит в одном товаре со всех товаров чтоли опции Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) Я понял в чем проблема если me_option выводит все опции что относятся к странице ,со всех товаров ,то этот вариант нам точно не подходит.Потому что он все опции со всех товаров впихивает в цикле в один товар, а мн еэто не нужно, ЭТО ХОРОШО БЫ РАБОТАЛО ЕСЛИ НАМ НАДО БЫЛО ВЫВЕСТИ ОДИН ТОВАР Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) Спойлер {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if me_options %} {% set i = 1 %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 там по ходу нужно свой запрос в модели сделать, ща посмотрю. в азарт вошел ))) Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 я проверил цикл как работает, оказывается не изменяются просто в цикле почему то цены не округляются к (int) вот что выводит пп1500.0000 пп2000.0000 пп2500.0000 пп1200.0000 пп1400.0000 пп1600.0000 вот потому мы и получаем нули потому что циклы как то неправильно присваивают значения ЭХ ЗНАЛ БЫ Я PHP досконально Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 )))) ты труба.... в верхней части ты просто данные привел к целому но не объявил echo (int)$option_value['price']; Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 Вперед Сторінка 4 з 5 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Звіти про помилки Сделать список цен опций без нулей после точки Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 2 минуты назад, Dimusik сказал: у меня тоже работает и без ошибок но нули не ушли в админку иди икак писал до этого Система-Локализация-Валюта поставь 0 Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) Последний вариант тоже не работает выводит все сразу А почему нельзя перезаписать тот же масив что мы получаем отсюда $options = $this->model_catalog_product->getProductOptions($result['product_id']); Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 2 minutes ago, Venter said: в админку иди икак писал до этого Система-Локализация-Валюта поставь 0 сделал уже давно Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) 3 минуты назад, Dimusik сказал: Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? а я че сделал? ты ваще понял че говоришь??? по массиву прошлись и в массив положили. по сути в шаблоне me_options это переменная которая содержит массив если на 2.3 опенкарт делать то будет вот так $me_options Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 2 минуты назад, Dimusik сказал: сделал уже давно Как ты выводишь в шаблоне??? в студию код Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 4 минуты назад, Dimusik сказал: Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? ты по ходу вообще не в курсе что есть MVC и как опенкарт выводит данные в шаблон и не знаешь что такое extract Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 вот {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 8 минут назад, Dimusik сказал: Последний вариант тоже не работает выводит все сразу что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 Должно Just now, Venter said: что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит должно выводить столько опций сколько есть у конкретного товара. 20 мм 30мм 40 мм а оно непонятно что выводит в одном товаре со всех товаров чтоли опции Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) Я понял в чем проблема если me_option выводит все опции что относятся к странице ,со всех товаров ,то этот вариант нам точно не подходит.Потому что он все опции со всех товаров впихивает в цикле в один товар, а мн еэто не нужно, ЭТО ХОРОШО БЫ РАБОТАЛО ЕСЛИ НАМ НАДО БЫЛО ВЫВЕСТИ ОДИН ТОВАР Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) Спойлер {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if me_options %} {% set i = 1 %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 там по ходу нужно свой запрос в модели сделать, ща посмотрю. в азарт вошел ))) Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 я проверил цикл как работает, оказывается не изменяются просто в цикле почему то цены не округляются к (int) вот что выводит пп1500.0000 пп2000.0000 пп2500.0000 пп1200.0000 пп1400.0000 пп1600.0000 вот потому мы и получаем нули потому что циклы как то неправильно присваивают значения ЭХ ЗНАЛ БЫ Я PHP досконально Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 )))) ты труба.... в верхней части ты просто данные привел к целому но не объявил echo (int)$option_value['price']; Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 Вперед Сторінка 4 з 5 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Звіти про помилки Сделать список цен опций без нулей после точки Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) Последний вариант тоже не работает выводит все сразу А почему нельзя перезаписать тот же масив что мы получаем отсюда $options = $this->model_catalog_product->getProductOptions($result['product_id']); Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options...
Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 2 minutes ago, Venter said: в админку иди икак писал до этого Система-Локализация-Валюта поставь 0 сделал уже давно Надіслати Поділитися на інших сайтах More sharing options...
Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) 3 минуты назад, Dimusik сказал: Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? а я че сделал? ты ваще понял че говоришь??? по массиву прошлись и в массив положили. по сути в шаблоне me_options это переменная которая содержит массив если на 2.3 опенкарт делать то будет вот так $me_options Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 2 минуты назад, Dimusik сказал: сделал уже давно Как ты выводишь в шаблоне??? в студию код Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 4 минуты назад, Dimusik сказал: Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? ты по ходу вообще не в курсе что есть MVC и как опенкарт выводит данные в шаблон и не знаешь что такое extract Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 вот {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 8 минут назад, Dimusik сказал: Последний вариант тоже не работает выводит все сразу что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 Должно Just now, Venter said: что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит должно выводить столько опций сколько есть у конкретного товара. 20 мм 30мм 40 мм а оно непонятно что выводит в одном товаре со всех товаров чтоли опции Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) Я понял в чем проблема если me_option выводит все опции что относятся к странице ,со всех товаров ,то этот вариант нам точно не подходит.Потому что он все опции со всех товаров впихивает в цикле в один товар, а мн еэто не нужно, ЭТО ХОРОШО БЫ РАБОТАЛО ЕСЛИ НАМ НАДО БЫЛО ВЫВЕСТИ ОДИН ТОВАР Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) Спойлер {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if me_options %} {% set i = 1 %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 там по ходу нужно свой запрос в модели сделать, ща посмотрю. в азарт вошел ))) Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 я проверил цикл как работает, оказывается не изменяются просто в цикле почему то цены не округляются к (int) вот что выводит пп1500.0000 пп2000.0000 пп2500.0000 пп1200.0000 пп1400.0000 пп1600.0000 вот потому мы и получаем нули потому что циклы как то неправильно присваивают значения ЭХ ЗНАЛ БЫ Я PHP досконально Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 )))) ты труба.... в верхней части ты просто данные привел к целому но не объявил echo (int)$option_value['price']; Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 Вперед Сторінка 4 з 5 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Звіти про помилки Сделать список цен опций без нулей после точки Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 2 минуты назад, Dimusik сказал: сделал уже давно Как ты выводишь в шаблоне??? в студию код Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 4 минуты назад, Dimusik сказал: Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? ты по ходу вообще не в курсе что есть MVC и как опенкарт выводит данные в шаблон и не знаешь что такое extract Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 вот {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 8 минут назад, Dimusik сказал: Последний вариант тоже не работает выводит все сразу что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 Должно Just now, Venter said: что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит должно выводить столько опций сколько есть у конкретного товара. 20 мм 30мм 40 мм а оно непонятно что выводит в одном товаре со всех товаров чтоли опции Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) Я понял в чем проблема если me_option выводит все опции что относятся к странице ,со всех товаров ,то этот вариант нам точно не подходит.Потому что он все опции со всех товаров впихивает в цикле в один товар, а мн еэто не нужно, ЭТО ХОРОШО БЫ РАБОТАЛО ЕСЛИ НАМ НАДО БЫЛО ВЫВЕСТИ ОДИН ТОВАР Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) Спойлер {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if me_options %} {% set i = 1 %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 там по ходу нужно свой запрос в модели сделать, ща посмотрю. в азарт вошел ))) Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 я проверил цикл как работает, оказывается не изменяются просто в цикле почему то цены не округляются к (int) вот что выводит пп1500.0000 пп2000.0000 пп2500.0000 пп1200.0000 пп1400.0000 пп1600.0000 вот потому мы и получаем нули потому что циклы как то неправильно присваивают значения ЭХ ЗНАЛ БЫ Я PHP досконально Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 )))) ты труба.... в верхней части ты просто данные привел к целому но не объявил echo (int)$option_value['price']; Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 Вперед Сторінка 4 з 5 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Звіти про помилки Сделать список цен опций без нулей после точки Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 4 минуты назад, Dimusik сказал: Зачем придумывать какие ME_OPTION не пойму, в PHP что так нельзя делать что ли пройтись по масиву изменить некоторые значения и записать опять масив? ты по ходу вообще не в курсе что есть MVC и как опенкарт выводит данные в шаблон и не знаешь что такое extract Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 вот {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 8 минут назад, Dimusik сказал: Последний вариант тоже не работает выводит все сразу что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 Должно Just now, Venter said: что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит должно выводить столько опций сколько есть у конкретного товара. 20 мм 30мм 40 мм а оно непонятно что выводит в одном товаре со всех товаров чтоли опции Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) Я понял в чем проблема если me_option выводит все опции что относятся к странице ,со всех товаров ,то этот вариант нам точно не подходит.Потому что он все опции со всех товаров впихивает в цикле в один товар, а мн еэто не нужно, ЭТО ХОРОШО БЫ РАБОТАЛО ЕСЛИ НАМ НАДО БЫЛО ВЫВЕСТИ ОДИН ТОВАР Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) Спойлер {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if me_options %} {% set i = 1 %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 там по ходу нужно свой запрос в модели сделать, ща посмотрю. в азарт вошел ))) Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 я проверил цикл как работает, оказывается не изменяются просто в цикле почему то цены не округляются к (int) вот что выводит пп1500.0000 пп2000.0000 пп2500.0000 пп1200.0000 пп1400.0000 пп1600.0000 вот потому мы и получаем нули потому что циклы как то неправильно присваивают значения ЭХ ЗНАЛ БЫ Я PHP досконально Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 )))) ты труба.... в верхней части ты просто данные привел к целому но не объявил echo (int)$option_value['price']; Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 Вперед Сторінка 4 з 5 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Звіти про помилки Сделать список цен опций без нулей после точки Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 вот {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Надіслати Поділитися на інших сайтах More sharing options...
Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 8 минут назад, Dimusik сказал: Последний вариант тоже не работает выводит все сразу что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 Должно Just now, Venter said: что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит должно выводить столько опций сколько есть у конкретного товара. 20 мм 30мм 40 мм а оно непонятно что выводит в одном товаре со всех товаров чтоли опции Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) Я понял в чем проблема если me_option выводит все опции что относятся к странице ,со всех товаров ,то этот вариант нам точно не подходит.Потому что он все опции со всех товаров впихивает в цикле в один товар, а мн еэто не нужно, ЭТО ХОРОШО БЫ РАБОТАЛО ЕСЛИ НАМ НАДО БЫЛО ВЫВЕСТИ ОДИН ТОВАР Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) Спойлер {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if me_options %} {% set i = 1 %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 там по ходу нужно свой запрос в модели сделать, ща посмотрю. в азарт вошел ))) Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 я проверил цикл как работает, оказывается не изменяются просто в цикле почему то цены не округляются к (int) вот что выводит пп1500.0000 пп2000.0000 пп2500.0000 пп1200.0000 пп1400.0000 пп1600.0000 вот потому мы и получаем нули потому что циклы как то неправильно присваивают значения ЭХ ЗНАЛ БЫ Я PHP досконально Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 )))) ты труба.... в верхней части ты просто данные привел к целому но не объявил echo (int)$option_value['price']; Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 Вперед Сторінка 4 з 5 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Звіти про помилки Сделать список цен опций без нулей после точки Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if product.options %} {% set i = 1 %} {% for option in product.options %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% endfor %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> Надіслати Поділитися на інших сайтах More sharing options...
Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 Должно Just now, Venter said: что значит все сразу??? так мы и получаем все опции к продукту если что или до тебя это не доходит должно выводить столько опций сколько есть у конкретного товара. 20 мм 30мм 40 мм а оно непонятно что выводит в одном товаре со всех товаров чтоли опции Надіслати Поділитися на інших сайтах More sharing options...
Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 (змінено) Я понял в чем проблема если me_option выводит все опции что относятся к странице ,со всех товаров ,то этот вариант нам точно не подходит.Потому что он все опции со всех товаров впихивает в цикле в один товар, а мн еэто не нужно, ЭТО ХОРОШО БЫ РАБОТАЛО ЕСЛИ НАМ НАДО БЫЛО ВЫВЕСТИ ОДИН ТОВАР Змінено 31 січня 2021 користувачем Dimusik Надіслати Поділитися на інших сайтах More sharing options...
Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 (змінено) Спойлер {{ header }} <div class="content-block"> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> <div class="content"> {{ column_left }} {% if column_left and column_right %} {% set class = 'product-card product-card-s' %} {% elseif column_left or column_right %} {% set class = 'product-card product-card-l' %} {% else %} {% set class = 'product-card' %} {% endif %} <div id="product-category" class="content-center"> {{ content_top }} <h1 class="heading-title">{{ heading_title }}</h1> {% if thumb or description %} <div class="thumb-description-block"> {% if thumb %} <div class="thumbs"><img src="{{ thumb }}" alt="{{ heading_title }}" title="{{ heading_title }}" class="img-thumbnail" /></div> {% endif %} {% if description %} <div class="description">{{ description }}</div> {% endif %}</div> {% endif %} {% if categories %} <div class="col-sm-12"> <div> <h3>{{ text_refine }}</h3> </div> <div style="text-align: center;"> <div class="row"> {% set i = 0 %} {% for category in categories %} <div class="col-sm-2 col-xs-6 sw-item" style="margin-bottom: 10px;"> <div style="background-color:#cbcbcb;margin-bottom:-5px"> <a class="sw-image" style="width:auto;display: block" href="{{ category.href }}"><img src="{{ category.thumb }}" alt="{{ category.name }}" /></a> </div> <div id="divCategName" style="height:70px;background-color:#cbcbcb"> <a class="sw-title" href="{{ category.href }}" style="font-weight: 700;display:block;text-align:center;height:65px;overflow:hidden;padding: 15px">{{ category.name }}</a> </div> </div> {% set i = i+1 %} {% if i%6==0 %} <div class="clearfix"></div> {% endif %} {% endfor %} </div> </div> </div> {% endif %} {% if 2+2==5 %} <h3 class="cat-title">{{ text_refine }}</h3> <div class="category-block"> <ul> {% for category in categories %} <li><a href="{{ category.href }}">{{ category.name }}</a></li> {% endfor %} </ul> </div> {% endif %} {% if products %} <div class="sort-block"> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-sort">{{ text_sort }}</label> <select id="input-sort" class="form-control" onchange="location = this.value;"> {% for sorts in sorts %} {% if sorts.value == '%s-%s'|format(sort, order) %} <option value="{{ sorts.href }}" selected="selected">{{ sorts.text }}</option> {% else %} <option value="{{ sorts.href }}">{{ sorts.text }}</option> {% endif %} {% endfor %} </select> </div> </div> <div class="sort"> <div class="form-group input-group input-group-sm"> <label class="input-group-addon" for="input-limit">{{ text_limit }}</label> <select id="input-limit" class="form-control" onchange="location = this.value;"> {% for limits in limits %} {% if limits.value == limit %} <option value="{{ limits.href }}" selected="selected">{{ limits.text }}</option> {% else %} <option value="{{ limits.href }}">{{ limits.text }}</option> {% endif %} {% endfor %} </select> </div> </div> </div> <div class="product-wrapp"> {% for product in products %} <div class="{{class}}"> <p> {{product.options.size}} </p> <div class="btn-top"> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><i class="fa fa-exchange"></i></button> </div> <div class="image"><a href="{{ product.href }}"><img src="{{ product.thumb }}" alt="{{ product.name }}" title="{{ product.name }}" class="img-responsive" /></a></div> <div class="caption"> <h4 class="product-name"><a href="{{ product.href }}">{{ product.name }}</a></h4> </div> <div class="cart-button"> {% if product.price and false %} <div class="price"> {% if not product.special %} {{ product.price }} {% else %} <span class="price-new">{{ product.special }}</span> <span class="price-old">{{ product.price }}</span> {% endif %} {% if product.tax %} <span class="price-tax">{{ text_tax }} {{ product.tax }}</span> {% endif %} </div> {% endif %} <ul class="see"> {% if me_options %} {% set i = 1 %} {% if option.type == 'radio' %} {% for option_value in me_options %} <li class="s{{ product.product_id }}{{ i }}" style=""> <input type="hidden" name="quantity" size="2" value="1" /> <input type="hidden" name="product_id" size="2" value="{{ product.product_id }}" /> <input type="hidden" name="option[{{ option.product_option_id }}]" value="{{ option_value.product_option_value_id }}" /> <span class="price_box"> <span class="weight">{{ option_value.name }}</span> {% if option_value.price %} <span class="price">{{ option_value.price }}р.</span> {% endif %} </span> <a class="btn-add-cart" onclick="ser('s{{ product.product_id }}{{ i }}')">Купить</i></a> </li> {% set i = i + 1 %} {% endfor %} {% endif %} {% else %} <li><span class="price_box"><span class="price">{{ product.price }}</span></span> <a class="btn-add-cart" onclick="cart.add('{{ product.product_id }}', '{{ product.minimum }}');">Купить (неправильно)</a></li> {% endif %} </ul> <div class="clearr"></div> </div> </div> {% endfor %} </div> <div class="pagination-block"> <div class="paginations">{{ pagination }}</div> <div class="results-text">{{ results }}</div> </div> {% endif %} {% if not categories and not products %} <p>{{ text_empty }}</p> <div class="buttons"> <div class="pull-right"><a href="{{ continue }}" class="btn btn-primary">{{ button_continue }}</a></div> </div> {% endif %} </div> {{ column_right }} </div> {{ content_bottom }} </div> {{ footer }} <script type="text/javascript"><!-- function plusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } input.val(parseInt(input.val())+1); input.change(); } function minusQty(q) { var input=$(q).parent().find('input[type=text]'); if (isNaN(input.val())) { input.val(1); } if ($(input).val()>1) { $(input).val(parseInt($(input).val())-1); } input.change(); } function ser(id,qu) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('.' + id + ' input[type=\'hidden\']'), dataType: 'json', success: function(json) { $('.success, .warning, .attention, information, .error').remove(); if (json['error']) { if (json['error']['option']) { for (i in json['error']['option']) { $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>'); } } } if (json['success']) { $('.breadcrumb').after('<div class="event-block"><i class="fa fa-check-circle"></i>' + json['success'] + '</div>'); $('#cart > a').html('<span id="cart-total"><i class="fa fa-shopping-bag" aria-hidden="true"></i> ' + json['total'] + '</span>'); $('#cart ul').load('index.php?route=common/cart/info ul li'); } } }); } //--></script> Змінено 31 січня 2021 користувачем Venter Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 там по ходу нужно свой запрос в модели сделать, ща посмотрю. в азарт вошел ))) Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 я проверил цикл как работает, оказывается не изменяются просто в цикле почему то цены не округляются к (int) вот что выводит пп1500.0000 пп2000.0000 пп2500.0000 пп1200.0000 пп1400.0000 пп1600.0000 вот потому мы и получаем нули потому что циклы как то неправильно присваивают значения ЭХ ЗНАЛ БЫ Я PHP досконально Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 )))) ты труба.... в верхней части ты просто данные привел к целому но не объявил echo (int)$option_value['price']; Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 Вперед Сторінка 4 з 5 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 3.x Opencart 3.x: Звіти про помилки Сделать список цен опций без нулей после точки
Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 там по ходу нужно свой запрос в модели сделать, ща посмотрю. в азарт вошел ))) Надіслати Поділитися на інших сайтах More sharing options... Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 я проверил цикл как работает, оказывается не изменяются просто в цикле почему то цены не округляются к (int) вот что выводит пп1500.0000 пп2000.0000 пп2500.0000 пп1200.0000 пп1400.0000 пп1600.0000 вот потому мы и получаем нули потому что циклы как то неправильно присваивают значения ЭХ ЗНАЛ БЫ Я PHP досконально Надіслати Поділитися на інших сайтах More sharing options... Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 )))) ты труба.... в верхней части ты просто данные привел к целому но не объявил echo (int)$option_value['price']; Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 Вперед Сторінка 4 з 5 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
Dimusik Опубліковано: 31 січня 2021 Автор Share Опубліковано: 31 січня 2021 я проверил цикл как работает, оказывается не изменяются просто в цикле почему то цены не округляются к (int) вот что выводит пп1500.0000 пп2000.0000 пп2500.0000 пп1200.0000 пп1400.0000 пп1600.0000 вот потому мы и получаем нули потому что циклы как то неправильно присваивают значения ЭХ ЗНАЛ БЫ Я PHP досконально Надіслати Поділитися на інших сайтах More sharing options...
Venter Опубліковано: 31 січня 2021 Share Опубліковано: 31 січня 2021 )))) ты труба.... в верхней части ты просто данные привел к целому но не объявил echo (int)$option_value['price']; Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 3 4 5 Вперед Сторінка 4 з 5 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
Recommended Posts