Вывод поля, в зависимости от значения - настройки через админку

Главные вкладки

Аватар пользователя kv4 kv4 27 июня 2014 в 17:24

Задача
Есть тип материала Автомобиль. Он содержит поле с ценой - числовое поле. Нужно в зависимости от значения этого поля изменять его вывод.

Например если поле цена не заполнено, или имеет значение 0, то должно выводиться "Договорная цена", а если цена указана и она больше 0, тогда выводим эту цену.

На сайте использутся Display Suite и Rules. Создавать новый модуль не желательно.

Модуль ds_forms должен быть включен, что бы можно было управлять отображением полей в форме редактирования ноды.

Решение

Создаём дополнительное текстовое поле, и называём его например Отображение цены (field_price_view). Делаем это поле скрытым в форме редактирования материала, а в форме отображения выводим его вместо цены. Поле цены оставляем в форме редактирования, но прячем в отображении.

Создаём два правила (Rules), которые будут срабатывать перед сохранением материала.

В первом правиле определяем условие - если поле field_price имеет значение 0 или пустое, то назначаем полю field_price_view значение "Договороная цена".

Во втором правиле определяем условие - если поле field_price имеет значение отличное от 0, то назначаем полю field_price_view значение поля field_price.

Всё.

Комментарии

Аватар пользователя s_bikey s_bikey 26 июля 2014 в 18:53

Меня больше интересует правила. Именно правила. Сейчас не могу разобраться в некоторых нюансах, о которых в интернете не могу ничего найти. Поэтому моя просьба по-прежнему актуальна.

Аватар пользователя drupby drupby 26 июля 2014 в 19:09

"kv4" wrote:
Создавать новый модуль не желательно.

а использовать дисплейсюиту и рулсы и добавить дополнительное поле в ноду значит желательней?
"s_bikey" wrote:
Меня больше интересует правила. Именно правила. Сейчас не могу разобраться в некоторых нюансах, о которых в интернете не могу ничего найти.

тут http://nodeone.se/en/learn-the-rules-framework есть все нюансы

Аватар пользователя s_bikey s_bikey 26 июля 2014 в 23:21

drupby, спасибо за источник, но, к сожалению, не на столько я дружен с английским, чтобы читать подобное.
dashiwa, нюансы касающиеся правил, а конкретнее использование условий и действий. Нахожусь в самом начале изучения правил и не могу продвинуться дальше выбора в селекторе данных нужных мне данных - не появляются они в селекторе данных и всё.
Везде пишут, что нужно сначала создать условие "Сущность имеет поле" и далее выбрать нужное поле. Создаю - но в селекторе данных всё равно они не появляются. Пока проблема только в этом.

Аватар пользователя Nomer Nomer 30 декабря 2014 в 3:39

ХулиGUN
theme_field()
$field = ($field>0) ? $field:'Договорная цена';

А можете для особо одаренных подсказать, куда это заклинание прописать надо))
И можно ли так вообще на 6 версии?
Заранее спасибо!