Помогите подключить скрипт карусель товаров (prodcarousel)

Тема в разделе "Ошибки и их решения", создана пользователем hnbh, 26 апр 2026.

  1. hnbh

    hnbh Пользователь

    Сообщения:
    43
    Симпатии:
    0
    На главной странице сайта использую модуль "Карусель рекомендуемых товаров". Модуль дает возможность создавать не ограниченное количество блоков карусели с товарами. Но проблема в том, что для каждого созданного блока добавляется скрипт карусели, который находится в файле /catalog/view/theme/default/template/extension/module/featuredcarusel.tpl

    <div class="module-name"><h3 class="title-topic"><?php echo $heading_title; ?></h3></div>
    <div id="prodcarousel<?php echo $module; ?>" class="owl-carousel productcarusel">
    <?php foreach ($products as $product) { ?>
    <div class="item product-layout product-grid">
    <div class="product-thumb transition">
    <div class="kod-tovar"><?php echo $text_cod_model; ?> <?php echo $product['model']; ?></div>
    <div class="image">

    <a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="lazy img-responsive" /></a>
    </div>

    <div class="caption">
    <div class="slay-product">
    <a href="<?php echo $product['href']; ?>" class="title"><?php echo $product['name']; ?></a>
    </div>
    <?php if ($prodview !=1 && $prodview !=2) { ?>
    <p><?php echo $product['description']; ?></p>
    <?php } ?>
    <?php if ($product['rating']) { ?>
    <div class="rating">
    <?php for ($i = 1; $i <= 5; $i++) { ?>
    <?php if ($product['rating'] < $i) { ?>
    <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-2x"></i></span>
    <?php } else { ?>
    <span class="fa fa-stack"><i class="fa fa-star fa-stack-2x"></i><i class="fa fa-star-o fa-stack-2x"></i></span>
    <?php } ?>
    <?php } ?>
    </div>
    <?php } ?>
    <?php if ($product['price']) { ?>
    <p class="price">
    <?php if (!$product['special']) { ?>
    <?php echo $product['price']; ?>
    <?php } else { ?>
    <span class="price-new"><?php echo $product['special']; ?></span> <span class="price-old"><?php echo $product['price']; ?></span>
    <span class="procent"> - <?php echo $product['skidka']; ?>% </span>
    <?php } ?>
    <?php if ($product['tax']) { ?>
    <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
    <?php } ?>
    </p>
    <?php } ?>

    <div class="button-group">
    <?php if ($prodview !=1 && $prodview !=3) { ?>
    <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-shopping-basket"></i> <?php echo $button_cart; ?></button>
    <?php } else { ?>
    <a href="<?php echo $product['href']; ?>"><i class="fa fa-arrow-circle-right"></i>
    <?php echo $text_more; ?></a>
    <?php } ?>
    </div>
    </div>
    </div>
    </div>
    <?php } ?>
    </div>
    <script>
    $('#prodcarousel<?php echo $module; ?>').owlCarousel({
    items: <?php echo $items; ?>,
    loop: true,
    autoplay: false,
    autoplayTimeout: 6000,
    nav: true,
    margin: 5,
    navText: ['<i class="fa fa-chevron-left"></i>', '<i class="fa fa-chevron-right"></i>'],
    navElement: ['button type="button" role="button" tabindex="0" aria-label="Previous"', 'button type="button" role="button" tabindex="0" aria-label="Next"'],
    dots: false,
    responsive:{1200:{items:5,},992:{items:4,},768:{items:3,},640:{items:3,},450:{items:2,},360:{items:2,},300:{items:1,},100:{items:1,}},}
    });
    </script>

    Подобный вариант не очень подходит, так как очень сильно перенагружает систему и ухудшает скорость генерации страниц.

    Один специалист подсказал вариант, вырезать скрипт из файла featuredcarusel.tpl и подключить в файле common.js но данный вариант не сработал.

    if ($('.prodcarousel').length) {
    $('#prodcarousel<?php echo $module; ?>').owlCarousel({
    items: <?php echo $items; ?>,
    loop: true,
    autoplay: false,
    autoplayTimeout: 6000,
    nav: true,
    margin: 5,
    navText: ['<i class="fa fa-chevron-left"></i>', '<i class="fa fa-chevron-right"></i>'],
    navElement: ['button type="button" role="button" tabindex="0" aria-label="Previous"', 'button type="button" role="button" tabindex="0" aria-label="Next"'],
    dots: false,
    responsive:{1200:{items:5,},992:{items:4,},768:{items:3,},640:{items:3,},450:{items:2,},360:{items:2,},300:{items:1,},100:{items:1,}},}
    })};
    Помогите разобраться и правильно подключить скрипт. Сайт на CMS Ocstore 2.3
     
    Последнее редактирование: 27 апр 2026
  2. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    913
    Симпатии:
    128
    Здравствуйте

    Скрипт запускается с учётом номера модуля, т.е. для каждого блока отдельно выполняется, а не пересоздаёт для всех. Поэтому не совсем понятно чего вы хотите.
     
  3. hnbh

    hnbh Пользователь

    Сообщения:
    43
    Симпатии:
    0
    Да вы правы, для каждого блока работает отдельный скрип, который определяется по id блоку. Я хотел улучшить показатели и скорость генерации страницы, тем самым уменьшить количество скриптов объединив их через common.js
     
  4. devimirochnik

    devimirochnik Продвинутый пользователь

    Сообщения:
    913
    Симпатии:
    128
    А вам зачем? Плюс/минус пара килобайт сильно погоды не делают