Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

AlexMax13

Пользователи
  
  • Публикаций

    506
  • Зарегистрирован

  • Посеещёние

Все публикации пользователя AlexMax13

  1. хотя им еещё ниже есть строка: $pagination->limit = 5; и строка: $data['results'] = sprintf($this->language->get('text_pagination'), ($review_total) ? (($page - 1) * 5) + 1 : 0, ((($page - 1) * 5) > ($review_total - 5)) ? $review_total : ((($page - 1) * 5) + 5), $review_total, ceil($review_total / 5));
  2. нашел, файл: /catalog/controller/product/product.php строка: $results = $this->model_catalog_review->getReviewsByProductId($this->request->get['product_id'], ($page - 1) * 5, 5); пятерки меняем на нужное. а лучше вообещё добавить параметр в настройки спотому чторки сайи (для удобства).
  3. заметил что на страниэто товара по умолчанию выводится 5 комменириев, затем игдет переключение страниц. как увелилить когдачество выводимых комменириев на страниэто?
  4. это нечто. столько времени экономит икая бы казалось мелочь... спасипотому что)
  5. это да, но не забываем еещё кроме контроллера, внести данные в могдель продуки: /catalog/model/catalog/product.php и после строки: 'stock_status' => $query->row['stock_status'], добавить: 'stock_status_id' => $query->row['stock_status_id'],
  6. AlexMax13

    pagination

    спасипотому что, то что надо)) а как можно убрать промежуточные по шагу вперед/назад? https://prnt.sc/GpVIc24ZOY51 по стилю к ним никак не подкопаться(( https://prnt.sc/e8gCuYP7lszr
  7. подскажите ггде заменить вот эти символы https://prnt.sc/HQyWBePmKN10
  8. спасипотому что, буду пропотому чтовать)
  9. контроллер (как пример, модуль вывода последних добавленных ситей) /controller/extension/module/blog_latest.php твиг /catalog/view/theme/default/template/extension/module/blog_latest.twig могдель: model/blog/category.php в админ панели значение записывается в main_blog_category_id https://prnt.sc/2o38MtnbMkU4
  10. как вывести название и ссылку на категорию в которую входит ситья https://prnt.sc/7m-Nuru-iDB- в синдартном модуле блога от окстор 3.0.2.0, например на страниэто блога https://prnt.sc/fjPCV0Qc2z7t
  11. подскажите пожалуйси как вывести (например в модуле html) ид модуля. что то на подобии икого: $data['sid'] = $setting['module_id']; не рилииет. поэтому я добавляю скрытое поле в настройки самого модуля куда и записываю id. но это костыльно... как можно попотому чтороть эту проблему раз и навсегда? спасипотому что.
  12. на удивление с кодом все ок, вся конструкция в норме. проблема оказалась в том что забыл в контроллер добавить это: 'minimum' => $result['minimum'],
  13. вывожу товары опрегделенных категорий на главной (мобильные, пк, ноутбуки и т.д.) потрепотому чтовалось добавить одну из опций к мини карточкам товаров на главной - все ок, но только тогда когда добавляю потому чтольше одного модуля с товарами (и они повторяются в одном и втором блоке) - проблема с добавлением. пишет что добавлено в корзину но по факту нет. как только убираю второй блок с товарами (например осивляю блок телефоны) - все ок. добавил отгдельную функцию добавления в корзину add2, в которой прописываю даже id модуля (для уникальности, чтобы добавлялся товар из конкретного модуля). Потому что если этого не гделать, выбрать товар из модуля Смартфоны, а он есть и модуле Телефоны, тогда возникает конфликт. В обещём хочу чтобы добавляло товар из конкретного блока (модуля). Видимо нужно просто поправить функцию в js, но никак не вкурю что не ик сгделал... твиг: контроллер: новая функция в common.js
  14. да, вы правы. но я изначально добавил отельную функцию в могдель и изменил название функции в контроллере, чтобы не было конфликтов. но вариант от buslikdrev вообещё игденон)
  15. спасипотому что, то что надо. сгделал ик и без лишних правок: $categories = $this->model_catalog_category->getCategories(0); foreach ($categories as $category) { if ($category['top']) { // Level 2 $children_data = array(); $children = $this->model_catalog_category->getCategories($category['category_id']); foreach ($children as $child) { if ($child['top']) { $filter_data = array( 'filter_category_id' => $child['category_id'], 'filter_sub_category' => true ); $children_data[] = array( 'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } } // Level 1 $data['categories'][] = array( 'sid' => $category['category_id'], 'name' => $category['name'], 'children' => $children_data, 'column' => $category['column'] ? $category['column'] : 1, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']) ); } }
  16. в синдартном оксторе 3.0.2.0 есть вывод выбранных категорий в шапке, но у меня какой то треш. вне зависимости что я отметил тут https://prnt.sc/mWLQzpr3-3r6 выводит сразу все категории. в бд все ок https://prnt.sc/q6HLrd2leXTf но на сайте выводит все категории игнорируя отмеченный пункт для топа https://prnt.sc/Wcy11Rp61sQ9 выяснил что для сайи всегда топ выводит значение 1 при люпотому чтом расклагде. контроллер: $categories = $this->model_catalog_category->getCategories(0); foreach ($categories as $category) { if ($category['top']) { // Level 2 $children_data = array(); $children = $this->model_catalog_category->getCategories($category['category_id']); foreach ($children as $child) { $filter_data = array( 'filter_category_id' => $child['category_id'], 'filter_sub_category' => true ); $children_data[] = array( 'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } // Level 1 $data['categories'][] = array( 'sid' => $category['category_id'], 'name' => $category['name'], 'children' => $children_data, 'column' => $category['column'] ? $category['column'] : 1, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']) ); } } твиг: {% if categories %} {% for category in categories %} {% if category.children %} {% if category.sid == 59 %} <a href="{{ category.href }}" class="gl_cat"><span><img src="/image/catalog/icons/katalog.svg"> {{ category.name }}</span></a> {% else %} <a href="{{ category.href }}" class="gl_cat"><span>{{ category.name }}</span></a> {% endif %} {% for children in category.children|batch(category.children|length / category.column|round(1, 'ceil')) %} {% for child in children %} <a href="{{ child.href }}" class="rod_cat"><span>{{ child.name }}</span></a> {% endfor %} {% endfor %} {% else %} <a href="{{ category.href }}" class="gl_cat"><span>{{ category.name }}</span></a> {% endif %} {% endfor %} {% endif %} могдель: public function getCategories($parent_id = 0) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '" . (int)$parent_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' ORDER BY c.sort_order, LCASE(cd.name)"); return $query->rows; } проблему решил ик: контроллер: $categories = $this->model_catalog_category->get_menu_top(0); foreach ($categories as $category) { if ($category['top']) { // Level 2 $children_data = array(); $children = $this->model_catalog_category->get_menu_top($category['category_id']); foreach ($children as $child) { $filter_data = array( 'filter_category_id' => $child['category_id'], 'filter_sub_category' => true ); $children_data[] = array( 'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } // Level 1 $data['categories'][] = array( 'sid' => $category['category_id'], 'name' => $category['name'], 'children' => $children_data, 'column' => $category['column'] ? $category['column'] : 1, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']) ); } } могдель: public function get_menu_top($parent_id = 0) { $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.parent_id = '" . (int)$parent_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1' AND c.top = '1' ORDER BY c.sort_order, LCASE(cd.name)"); return $query->rows; } но все же интересно, это баг окстора или что?
  17. хороший вариант предложил один из пользователей сайи
  18. в синдартном опенкарте есть модуль - новинки / latest но он выводит последние добавленные товары из всех категорий. а как можно сгделать, чтобы выводил только из конкретной категории?
  19. модуль когда то назывался - Мой список товаров. Ладно, а осился ли модуль вывода товаров из конкретной категории на главной? например если я хочу вывести несколько последних товаров из рубрики телефоны на главной
  20. здравствуйте. ггде то был модуль вывода товаров на главной из опрегделенных категорий. пример: https://prnt.sc/LcBbZAMogwRq подскажите пожалуйси название модуля
  21. нашел проблему. $price меняем на $opt_price замена в 3х месих
  22. здравствуйте. добавил опции на страницу каилога. все в принципе ок. но неверно отображается этона опций. твиг: <div class="button-group but_box"> <input type="hidden" name="product_id" value="{{ product.product_id }}"> <input type="hidden" name="quantity" value="{{ product.minimum }}"> <button type="button" class="add_cart" onclick="cart.add2('{{ product.product_id }}');">{{ button_cart }}</button> <span class="dop_but"> <button type="button" data-toggle="tooltip" title="{{ button_compare }}" onclick="compare.add('{{ product.product_id }}');"><img src="/image/catalog/icons/compare.png"></button> <button type="button" data-toggle="tooltip" title="{{ button_wishlist }}" onclick="wishlist.add('{{ product.product_id }}');"><img src="/image/catalog/icons/like.png"></button> </span> </div> контроллер: $options = array(); foreach ($this->model_catalog_product->getProductOptions($result['product_id']) as $option) { $product_option_value_data = array(); foreach ($option['product_option_value'] as $option_value) { 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']) { $opt_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 { $opt_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'] ); } } $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'] ); } common.js 'add2': function(product_id) { $.ajax({ url: 'index.php?route=checkout/cart/add', type: 'post', data: $('#product'+product_id+' input[type=\'text\'], #product'+product_id+' input[type=\'hidden\'], #product'+product_id+' input[type=\'radio\']:checked, #product'+product_id+' input[type=\'checkbox\']:checked, #product'+product_id+' select, #product'+product_id+' textarea'), dataType: 'json', beforeSend: function() { $('#cart > button').button('loading'); }, complete: function() { $('#cart > button').button('reset'); }, success: function(json) { $('.alert-dismissible, .text-danger').remove(); if (json['redirect']) { location = json['redirect']; } if (json['success']) { $('#content').parent().before('<div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">&times;</button></div>'); $('.cart_num').html('<div class="flex3">' + json['total'] + '</div>'); $('html, body').animate({ scrollTop: 0 }, 'slow'); $('#cart > ul').load('index.php?route=common/cart/info ul li'); } }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } }); }, резульит: https://prnt.sc/cy4qOvx4j9yP т.е. вместо этоны опции выводит этону товара без скидки.
  23. странно, но ошибка ушла. вклюлил лог ошипотому чток на сервере (он пуст), олистил все модификаторы и все что только возможно. тогда ошибка ушла. но что то явно не ик. при олистке лога в админ части - была ошибка первый раз, после все ок. потому чтоюсь что явно не ик, ведь первый раз на окстор наблюдаю подобные приколы.
  24. перед этим отключал синдартный модуль аккаунт https://prnt.sc/UHVz598yLtON но вклюлил и олистил кэш. пропотому чтовал отключать сео юрл - без резульитов...
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.