Задача
Есть тип материала Автомобиль. Он содержит поле с ценой - числовое поле. Нужно в зависимости от значения этого поля изменять его вывод.
Например если поле цена не заполнено, или имеет значение 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.
Всё.
Комментарии
Зачет.
Если не затруднит, объясните, как реализовали оба правила? Условия и действия Правил.
Меня больше интересует правила. Именно правила. Сейчас не могу разобраться в некоторых нюансах, о которых в интернете не могу ничего найти. Поэтому моя просьба по-прежнему актуальна.
Про все что угодно не сомневаюсь. Но лучше бы помог.
Благодарю. Уволен!
а использовать дисплейсюиту и рулсы и добавить дополнительное поле в ноду значит желательней?
тут http://nodeone.se/en/learn-the-rules-framework есть все нюансы
Какие нюансы? Пишите может здесь найдете
drupby, спасибо за источник, но, к сожалению, не на столько я дружен с английским, чтобы читать подобное.
dashiwa, нюансы касающиеся правил, а конкретнее использование условий и действий. Нахожусь в самом начале изучения правил и не могу продвинуться дальше выбора в селекторе данных нужных мне данных - не появляются они в селекторе данных и всё.
Везде пишут, что нужно сначала создать условие "Сущность имеет поле" и далее выбрать нужное поле. Создаю - но в селекторе данных всё равно они не появляются. Пока проблема только в этом.
ХулиGUN
theme_field()
$field = ($field>0) ? $field:'Договорная цена';
А можете для особо одаренных подсказать, куда это заклинание прописать надо))
И можно ли так вообще на 6 версии?
Заранее спасибо!