Не зарегистрирован
Вход
Забыли пароль?
Регистрация
Подписаться
Сэкономьте время — перед вопросом на форуме узнайте, как найти ответ быстрее
По техническим проблемам необходимо обращаться в Консультационный центр

Поиск по форуму: 

Приглашаем в блог Amiro.CMS. Регулярные обзоры, опыт, решения, практикумы.

Форум  ->   Любые вопросы от новичков  ->  Условия вывода в шаблоне

Если Вы только начинаете - пишите в этот раздел

Добавлено: 24.08.15 10:10:54 #1



Регистрация: 24.08.15
Сообщений: 1


Обратиться по имени

Всем привет

Опишу проблему.
Есть товар. У него есть свойство с айдишником/системным именем (sys_name) 1063.
Этот товар принадлежит категории, у категории есть свойство с айдишником 1056.

Необходимо, чтобы если свойство 1063 не было установлено, то выводилось только свойство 1056.
Если свойство 1063 установлено, то выводится только оно, 1056 свойство НЕ выводится.

В ходе переписки с ТП они предложили кастомизировать вывод. Вот что у меня получилось.
<!--#set var="itemD_custom_field(sys_name=1056)" value="
##setglobalvar @custom_field_1056_val=custom_field##
<div class="eshop-item-detailed__custom-field">
<div class="eshop-item-detailed__custom-field-name">##custom_field_title## ##details##:</div>
<div class="eshop-item-detailed__custom-field-value">##custom_field## ##val_details##</div>
</div>
"-->

<!--#set var="itemD_custom_field(sys_name=1063)" value="
##if(custom_field_1056_val == ""##
<div class="eshop-item-detailed__custom-field">
<div class="eshop-item-detailed__custom-field-name">##custom_field_title## ##details##:</div>
<div class="eshop-item-detailed__custom-field-value">##custom_field## ##val_details##</div>
</div>
##endif##
"-->

Этот код работает, но работает только вот каким образом:
Если свойство 1056 не было установлено, то выводилось только свойство 1063.
Если свойство 1056 установлено, то выводится только оно, 1063 свойство НЕ выводится.

Я пробовал менять так, чтобы работало по первому варианту. Но не работало. В момент когда мы в блоке где определяется выводим ли 1056 свойство мы проверяем установлено ли свойство 1063, но оно пишет что не установлено, даже если оно есть. При этом дальше по тексту 1063 свойство выводится.

Пример такого модифицированного под нужный мне вариант кода:
<!--#set var="itemD_custom_field(sys_name=1056)" value="
##if(custom_field_1063_val == ""##
<div class="eshop-item-detailed__custom-field rrrr">
<div class="eshop-item-detailed__custom-field-name">##custom_field_title## ##details##: ||##custom_field_1063_val##||</div>
<div class="eshop-item-detailed__custom-field-value">##custom_field## ##val_details##</div>
</div>
##endif##
"-->

<!--#set var="itemD_custom_field(sys_name=1063)" value="
##setglobalvar @custom_field_1063_val=custom_field##
<div class="eshop-item-detailed__custom-field eeeee">
<div class="eshop-item-detailed__custom-field-name">##custom_field_title## ##details##: <##custom_field_1063_val##></div>
<div class="eshop-item-detailed__custom-field-value">##custom_field## ##val_details##</div>
</div>
"-->
В первом блоке между ||что-то|| не выведется ничего.
Во втором блоке будет выведено то что нужно.

То есть получается, что сначала идет проверка на установленность 1063 свойство, а потом только идет непосредственно установка этого свойства.

При этом если реализовывать обратный вариант (если установлен 1053, то 1063 выводим) работает, так как проверка установленности 1053 свойства осуществляется в блоке с 1063 свойством когда 1053 уже установлено.

Есть какие-то варианты как сделать можно то что хочу?





Создать новую тему

Всего тем: 6659
Всего сообщений: 27847
Всего зарегистрированных пользователей: 53142
Последний зарегистрированный пользователь: bosk