Скрыть Или Показать Блок

Подскажите, Как можно в зависимости от определенного условия (в php и в смарти) скрыть или показать определенный блок (видимо по его id)

может лучше условие прописать в содержимом этого блока?

может лучше условие прописать в содержимом этого блока?

Это к примеру блоки баннеры, где там условия писать?

Создаете новую оболочку для блоков

design/themes/responsive/templates/blocks/wrappers/

Примерно с таким контентом:

{$content|default:" " nofilter}

В нее уже условия свои добавляете. Например,

{if $category_data && $category_data.catagory_id == 37}
{$content|default:" " nofilter}
{/if}

Могут всплыть проблемы с кешем, надо протестировать

ОК, спасибо. Сейчас буду пробовать.

Не подскажет как заменить баннер? т.е. при условии показывать разные баннеры?

Можно добавить новый вид заполнения в блок "Баннеры", который будет учитывать определенные условия. Приведите, пожалуйста, примеры условий.

Задача в общем-то простая.

При заходе пользователя на сайт определяется его город по IP. Город сохраняется в сессии. Далее, в зависимости от этого города, нужно показать разные баннеры.

Задача в общем-то простая.

При заходе пользователя на сайт определяется его город по IP. Город сохраняется в сессии. Далее, в зависимости от этого города, нужно показать разные баннеры.

А сколько примерно наборов баннеров планируется? Под все регионы?

В общем-то да, как минимум с десяток

В общем-то да, как минимум с десяток

Тогда лучше модификацию сделать - привязку баннера к городу в админке

Тогда лучше модификацию сделать - привязку баннера к городу в админке

а можно ли подробнее...

если просто указать в админке у баннера, что данный баннер показывается в таком-то городе, это не проблема сделать, но как показывать или не показывать этот самый баннер? Все равно ведь условие получается. Куда это условие писать?

По мне так, по id баннера было наверное проще устанавливать его видимость или нет. В базе же навреняка хранится его видимость. В админке же можно вкл или выкл его. Неужели нельзя так же его и в php или смарти вкл и выкл ?

Если для вас не проблема сделать привязку, то останется только использовать хук get_banners (app/addons/banners/func.php) для того, чтобы добавить новое условие для выборки из базы баннеров по значению из сессии

Все прекрасно сделал. В настройках баннера сделал поле для указания города. А в хуке get_banners_post убираю лишние баннеры.

Но вот проблема - ни как не могу обновить блок баннеров после выбора города.

Почему то не понимается подстановка переменной в id div для аякса. Ставлю просто число - все работает, ставлю переменную - аякс не обновляет. Мистика

Почему то не понимается подстановка переменной в id div для аякса. Ставлю просто число - все работает, ставлю переменную - аякс не обновляет. Мистика

У вас точно не получается ситуации, когда при первоначальной загрузке значение переменной одно, а аяксовый запрос возвращает код с другим значением? В этом случае обновление происходить не будет

У аяск-запроса есть поле result_ids. В нем перечисляются id элементов, которые должны быть обновлены в результате выполнения аякс-запроса. Добавьте в это поле id div-а, в котором отображаются баннеры. Например banner_slider*

div с такими id обязательно должны иметь закрывающий комментарий типа

Например

[какое-то содержимое]

Еще была проблема доп. атрибутами у дива. Постарайтесь, чтобы див с id не содержал других атрибутов, типа class и тд

С атрибутами обычно проблем нет, а вот никаких символов между тегом --> и быть точно не должно

С атрибутами обычно проблем нет, а вот никаких символов между тегом --> и

быть точно не должно

Я же не сам придумал, это все из практики

Еще была проблема доп. атрибутами у дива. Постарайтесь, чтобы див с id не содержал других атрибутов, типа class и тд

Подтверждаю, такая же ситуация, пока не удалил класс у div не обновлялся по ajax.