Предыдущий следующий товар OpenCart 4
Добрый день Всем! Так как информации мало по опенкарту 4 и модулей тоже, появилась необходимость сделать кнопки на товарах предыдущий и следующий товар.
Решение подсмотрел из предыдущей версии опенкарта версии 2-3
Решение следующее.
находим файл product.php по пути /public_html/catalog/controller/product
Где то примерно после строки
1 | $data['heading_title'] = $product_info['name']; |
вставляем
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | $data['next_tovar'] = $next_tovar= $this->model_catalog_product->getProduct($product_id+1); $data['prev_tovar'] = $prev_tovar= $this->model_catalog_product->getProduct($product_id-1); if($next_tovar) { $data['next_product_url'] = $this->url->link('product/product', 'product_id=' . $next_tovar['product_id']); $data['next_product_name']= $next_tovar['name']; $this->load->model('tool/image'); if (is_file(DIR_IMAGE . html_entity_decode($next_tovar['image'], ENT_QUOTES, 'UTF-8'))) { $data['next_product_image'] = $this->model_tool_image->resize(html_entity_decode($next_tovar['image'], ENT_QUOTES, 'UTF-8'), $this->config->get('config_image_thumb_width'), $this->config->get('config_image_thumb_height')); } else { $data['next_product_image'] = ''; } } if($prev_tovar) { $data['prev_product_url'] = $this->url->link('product/product', 'product_id=' . $prev_tovar['product_id']); $data['prev_product_name']= $prev_tovar['name']; $this->load->model('tool/image'); if (is_file(DIR_IMAGE . html_entity_decode($prev_tovar['image'], ENT_QUOTES, 'UTF-8'))) { $data['prev_product_image'] = $this->model_tool_image->resize(html_entity_decode($prev_tovar['image'], ENT_QUOTES, 'UTF-8'), $this->config->get('config_image_thumb_width'), $this->config->get('config_image_thumb_height')); } else { $data['prev_product_image'] = ''; } } |
Добавил также вывод изображения для предыдущего и следующего товара.
Также в самой теме в редакторе шаблона редактируем файл product.twig
Я вставил в самый конец div’a c id=product-info
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <div class="row"> <div class="btn-group pull-right" > {% if prev_tovar%} <button type="button" onclick="location.href='{{ prev_product_url }}'" data-toggle="tooltip" class="btn btn-default" title="{{ prev_product_name }}"><i class="fa fa-chevron-left" aria-hidden="true"></i> {{ prev_product_name }} {%if prev_product_image %} <hr><img src="{{prev_product_image}}" alt="Фото {{ prev_product_name }}"> {% endif %} </button> {% endif %} {% if next_tovar%} <button type="button" onclick="location.href='{{ next_product_url }}'" data-toggle="tooltip" class="btn btn-default" title="{{ next_product_name }}">{{ next_product_name }} <i class="fa fa-chevron-right" aria-hidden="true"></i> {%if next_product_image %} <hr><img src="{{next_product_image}}" alt="Фото {{ next_product_name }}"> {% endif %} </button> {% endif %} </div> </div> |
В последующем еще добавил вывод картинки предыдущего и последующего товара.