Работа с условными операторами

голоса: 0
Здравствуйте!

Возможно ли с помощью условных операторов выводить нужную информацию, в случае для фильтра, т.е. 1 материал имеет в 1 фильтре 3 значения но выводить надо только одно

во время эксперементов возник попутный вопрос, если у фильтра имеется 2 или 3 значения а мне надо на картинку наложить лейбл NEW имеется вот такой код  <?if($FILTER2_VALUE$='НОВИНКИ')?><div class="novinka"></div>, так вот если для материала присвоено только 1 значение фильтра то все работает а если несколько то не срабатывает, можно ли что то сделать?
Адрес сайта http://www.nosokopt.ru/
| Автор: | Категория: Доп. функции
Редактирование | | Автор: Алексей Алешечкин

Ответов: 1

голоса: +2
 
Лучший ответ
Вопрос не совсем ясен. Как я себе его представил, можно наверное так <?if($FILTER1_VALUE$='значение 1'&$FILTER2_VALUE$='НОВИНКИ')?><div class="novinka"></div><?else?><?if($FILTER1_VALUE$='значение 2'&$FILTER2_VALUE$='НОВИНКИ')?><div class="novinka"></div><?endif?><?endif?>. Если не так, то укажите хотя бы адрес сайта.
| Автор:
Выбор ответа лучшим | | Автор: Irina_M
Можно и так: <?if($FILTER1_VALUE$&$FILTER2_VALUE$='НОВИНКИ')?><div class="novinka"></div><?else?><?endif?>
Здравствуйте!

Адрес сайта был указан. Вопрос состоял в том что

1. Если для $FILTER1$ в настройках установлено возможность множественного выбора, то при добавлении материла я для фильта 1, задаю материалу 2 значения (например Материал - Носки, название фильтра СЕЗОН , установленные значения Летний и Новинки, так вот в описании материала есть строка Сезон - $FILTER1_VALUE$ т.е в описании надо чтобы выводидлось только одно значение (Летний)

2. Второй вопрос был связан с тем что если для фильтра установлено несколько значений то условие <?if($FILTER1_VALUE$='НОВИНКИ')?><div class="novinka"></div> не срабатывает, вот если устанавливаю только одно значение в фильтре то все работает.

$FILTER2$   трогать не надо
Я бы лучше разнёс по разным фильтрам, но можно так <?if($FILTER1_VALUE$='Летний'||$FILTER1_VALUE$='НОВИНКИ')?>Летний<?else?>$FILTER1_VALUE$<?endif?>. С учетом второго вопроса можно так:  <?if($FILTER2_VALUE$&($FILTER1_VALUE$='Летний'||$FILTER1_VALUE$='НОВИНКИ'))?>Летний<?else?>$FILTER1_VALUE$<?endif?>/ Ну а если со скриптами хотите поиграть, то вам интересно будет посмотреть ответ на вопрос по ссылке: http://www.ucoz.ru/qa/index.php/32187/фильтр-модуля-фотоальбомы
P.S. Посмотрел свежим взглядом. Всё это не годится. Не стану говорить об ошибках в рассуждениях, достаточно сказать, что код $FILTER1_VALUE$ работает только в шаблоне Вид фотографий и Страница с полной фотографией и комментариями.
Посмотрел на сайт. Установлен один фильтр. Созданы разделы, в каждом разделе соответствующие категории. Допускаю, что в категориях разрешён множественный выбор. Если вам нужно пометить какой либо материал  или вывести какие нибудь надписи можно подумать об использовании дополнительных полей.  Зачем ещё фильтр не понимаю.  И вообще очень извиняюсь что отнял время у вас и у себя на пустое.
Юрий, здравствуйте!

Смотрите в чем ньюанс, давайте только работать с фильтром №1 (так как номер 2 занят под другие нужды) Итак Фильтр № 1 имеет такие значения как "Нзвание фильтра" -СЕЗОН-, Значения Летний, Демисезонный, Зимний, Спортивный, НОВИНКИ, итак смысл в том что любой сезон может быть новинкой, т.е. на странице фото с полным описанием будет строка Сезон - $FILTER1_VALUE$ т.е в описании надо чтобы выводидлось только одно значение (кроме  значения НОВИНКИ). По хорошему надо просто чтобы на странице фото с полным описанием не выводилось значение фильтра НОВИНКИ (поскольку в этот фильтр добавяться еще значения)

Соотвественно если я задам два значения для 1 материала то вроде все нормально на этом этапе, на странице альбома выводим фильтр и человек может отфильтровать все что нужно.

По поводу второго вопроса вы не поняли, речь идет не о значении второго фильтра, а о нескольких значениях 1 фильтра для 1 материала, суть в том  если у материала в фильтре№ 1 присвоено значение Летний и НОВИНКИ, т.е. задано 2 значения то не работает вот этот код <?if($FILTER1_VALUE$='НОВИНКИ')?><div class="novinka"></div>
Добрый день Алексей. Хотел не заглядывать - не удержался. Короче так: <?if($FILTER1_VALUE$='НОВИНКА, Летний')?>Летний<?else?>Не работает<?endif?>. (слово "Не работает" для тестирования, потом уберёте). У меня работает, только проверьте в каком порядке выводится 'НОВИНКА, Летний' и пробел между запятой и сл. словом. Для этого поставьте код $FILTER1_VALUE$ в нужное вам место и протестируйте. У меня всё работает. Надеюсь и у вас сработает. Вам придется на каждый сезон писать условие. Успехов.
Не дождался реакции. Окончательно, как понял:  <?if($FILTER1_VALUE$='Летний, НОВИНКИ'||$FILTER1_VALUE$='Демисезонный, НОВИНКИ'||$FILTER1_VALUE$='Зимний, НОВИНКИ'||$FILTER1_VALUE$='Спортивный, НОВИНКИ')?><?if($FILTER1_VALUE$='Летний, НОВИНКИ')?>Летний<?endif?><?if($FILTER1_VALUE$='Демисезонный, НОВИНКИ')?>Демисезонный<?endif?><?if($FILTER1_VALUE$='Зимний, НОВИНКИ')?>Зимний<?endif?><?if($FILTER1_VALUE$='Спортивный, НОВИНКИ')?>Спортивный<?endif?><?else?>$FILTER1_VALUE$<?endif?>. Словами, если выбран сезон и новинка, то сезон, иначе сезон.
Для первого случая короче: <?if($FILTER1_VALUE$='Летний, НОВИНКИ'||$FILTER1_VALUE$='Демисезонный, НОВИНКИ'||$FILTER1_VALUE$='Зимний, НОВИНКИ'||$FILTER1_VALUE$='Спортивный, НОВИНКИ')?><div class="novinka"></div> <?endif?>
...