DLE модуль banners.php и кеширование...

T
На сайте с 06.10.2007
Offline
81
878

Сделал простую модификацию в banners.php

				        if($m_s==1)

{

$pos2=strripos($value['banner_tag'],'comp');
$value['banner_tag']=str_replace('mobile','comp',$value['banner_tag']);
if($pos2===false)
$ban[$value['banner_tag']][] = $value['code'];


}else{
$ban[$value['banner_tag']][] = $value['code'];
}

на сайте для показа баннеров в шаблоне использую код {banner_comp_blabla1} для показа баннера с тегом comp_blabla1

если $m_s=1 то это адаптивный дизайн и показывается баннер mobile_blabla1 в шаблоне с кодом {banner_comp_blabla1}

Все вроде бы и норм, но как то оно через раз показывает и надо обновлять страницы и т.д.

Думаю что проблема в nginx кешировании?

Нужно как то сделать кеширование для обычной версии сайта и мобильной, например по куки?

Или проблема в чем то другом?

LovelAss
На сайте с 05.06.2009
Offline
96
#1

Ну да, в кэшировании дело. В начале файла banners.php есть функции get_vars и set_vars - добавьте к первому аргументу нужный суффикс (например "banners".$m_s) и будет всё пучком.

T
На сайте с 06.10.2007
Offline
81
#2
LovelAss:
Ну да, в кэшировании дело. В начале файла banners.php есть функции get_vars и set_vars - добавьте к первому аргументу нужный суффикс (например "banners".$m_s) и будет всё пучком.

Но get_vars и set_vars просто записывают в файл banner.php массив со всеми баннерами (чтоб не делать запрос к БД лишний раз)

Вышло что два файла кеша banners0.php и banners1.php полностью одинаковые)

В файлах кеша *.tmp храниться только новость, баннеры оно не кеширует...

Я все таки думаю что проблема в кеширование nginx или чем то другом?

LovelAss
На сайте с 05.06.2009
Offline
96
#3

Сделайте вывод переменной на экран и проведите отладку.

T
На сайте с 06.10.2007
Offline
81
#4
LovelAss:
Сделайте вывод переменной на экран и проведите отладку.

можете пожалуйста поподробней расписать, а то не понял....

Вывод $m_s на экран показывает правильное значение.

Слева два на сайте 2 блока

comp_left1
comp_left2

Захожу на сайт с телефона или на компе в браузере указал модель телефона

comp_left1

comp_left2

Жду пару сек, обновляю страницу

mobile_left1

mobile_left2

Жду пару сек, обновляю страницу

mobile_left1

comp_left2

и т.д.

LovelAss
На сайте с 05.06.2009
Offline
96
#5

Сдаётся мне, батенька, что у вас 3 строки в файле banners.php


$ban[$value['banner_tag']][] = $value['code'];

и одну из них необходимо удалить.

T
На сайте с 06.10.2007
Offline
81
#6

Ваш навык телепатии впечатляет:)

Таки да, был косяк, исправил, но все равно не работает как надо :(

if($show_adsense==1 or $m_s==1)

{
if($show_adsense==1)
{
$value['banner_tag']=str_replace('adult','adsense',$value['banner_tag']);
}
if($m_s==1)
{
$value['banner_tag']=str_replace('mobile','comp',$value['banner_tag']);
}
}
$ban[$value['banner_tag']][] = $value['code'];

Ну и код баннера в шаблонах типа такого

{banner_comp_adsense_left}

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий