Страница 1 из 1

Не работает слайдер баннеров на главной

Добавлено: 29.07.2021, 07:39
trainracing
Добрый день, подскажите, почему может не работать слайдер на главной даже если установить чистую систему на хостинг, то есть сам код не выполняется вывода изображений баннера, все остальные изображения выводятся, а только слайдер или просто баннеры без перелистывания не выводится.

версия окай 2.3.4 и на 2.4.0 так же
версия php 7.0, может ли не хватать каких=то модулей php или из-за чего может не отрабатывать этот код?
директории к ресайзам и фото баннеров все дефолтное, шаблоны тоже дефолтные

Если добавить новый баннер и разместить тупо перед </body> то тоже не отображается, в исходном коде в браузере в этом месте пустота вместо куска кода (не ошибка картинки)

пример кода, который не выполняется:

Код: Выделить всё

 {get_banner var=banner_group1 group='group1'}
        {if $banner_group1->items}
            <div class="fn_banner_group1 banners container">
                {foreach $banner_group1->items as $bi}
                    <div>
                        {if $bi->url}
                        <a href="{$bi->url}" target="_blank">
                            {/if}
                            {if $bi->image}
                                <img src="{$bi->image|resize:1170:390:false:$config->resized_banners_images_dir}" alt="{$bi->alt}" title="{$bi->title}"/>
                            {/if}
                            {if $bi->url}
                        </a>
                        {/if}
                    </div>
                {/foreach}
            </div>
        {/if}


Добавлено спустя 52 минуты 41 секунду:
в логах такая ошибка:

Код: Выделить всё

29.07.2021 11:21:59
Error (3685) Illegal argument to a regular expression.
SELECT * FROM ok_banners WHERE 1 AND group_id='group1'  AND visible=1 AND (pages regexp '[[:<:]](1)[[:>:]]' OR show_all_pages=1) LIMIT 1


напомню, система чистая дефолтная.Версия mysql - 8

Добавлено: 29.07.2021, 11:47
makki
Версия MySQL у вас не 8, а >= 8.0.4 в которой поменялась логика работы с regexp, поэтому в логах такая ошибка. Выход - понизить версию MySQL

Или попробуйте в api/Banners.php вместо

Код: Выделить всё

$show_filter_array[$k] = $this->db->placehold($k." regexp '[[:<:]](?)[[:>:]]'", intval($show_filter_array[$k]));

написать

Код: Выделить всё

$show_filter_array[$k] = $this->db->placehold($k." regexp '\\b(?)\\b'", intval($show_filter_array[$k]));

Добавлено: 29.07.2021, 18:51
trainracing
большое спасибо, это помогло

Добавлено: 07.08.2021, 11:38
user23
makki писал(а):Версия MySQL у вас не 8, а >= 8.0.4 в которой поменялась логика работы с regexp, поэтому в логах такая ошибка. Выход - понизить версию MySQL

Или попробуйте в api/Banners.php вместо

Код: Выделить всё

$show_filter_array[$k] = $this->db->placehold($k." regexp '[[:<:]](?)[[:>:]]'", intval($show_filter_array[$k]));

написать

Код: Выделить всё

$show_filter_array[$k] = $this->db->placehold($k." regexp '\\b(?)\\b'", intval($show_filter_array[$k]));


К сожалению мне данный вариант не помог. MYSQL 8.0.26 , может сталкивались с этой проблемой?

Добавлено: 16.08.2021, 10:42
trainracing
user23 писал(а):
makki писал(а):Версия MySQL у вас не 8, а >= 8.0.4 в которой поменялась логика работы с regexp, поэтому в логах такая ошибка. Выход - понизить версию MySQL

Или попробуйте в api/Banners.php вместо

Код: Выделить всё

$show_filter_array[$k] = $this->db->placehold($k." regexp '[[:<:]](?)[[:>:]]'", intval($show_filter_array[$k]));

написать

Код: Выделить всё

$show_filter_array[$k] = $this->db->placehold($k." regexp '\\b(?)\\b'", intval($show_filter_array[$k]));


К сожалению мне данный вариант не помог. MYSQL 8.0.26 , может сталкивались с этой проблемой?

Выводит баннер только если выбрать "показывать на всех страницах"

Добавлено: 20.12.2022, 22:42
Sanya
trainracing писал(а):$show_filter_array[$k] = $this->db->placehold($k." regexp '\\b(?)\\b'", intval($show_filter_array[$k]));
$show_filter_array[$k] = $this->db->placehold($k." regexp '\\\\b(?)\\\\b'", intval($show_filter_array[$k]));