Насколько это реально в Друпал?

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

Аватар пользователя Alex_R Alex_R 8 мая 2010 в 13:45

Тип материала с двумя полями ССК:
1. Картинка.
2. Скрытый Чекбокс с автозаполнением.

Чекбокс дает "Истину" если у картинки ширина больше высоты и "Ложь", если равно и наоборот.

Как сделать это все при редактировании ноды (когда к картинке уже можно обратиться по номеру ноды) я практически понимаю (хотя пока не пробовал), но хотелось бы это сделать при создании. Возможно ли такое? Если нет, то какие возможные пути решения?

Комментарии

Аватар пользователя Alex_R Alex_R 8 мая 2010 в 14:03

raspytnik wrote:
для чего это ?

для последующего ускорения процесса выборки картинок соответствующей ориентации.

Аватар пользователя gorr gorr 8 мая 2010 в 14:23

Да, возможно, только зачем этот чекбокс вообще, тут можно просто поле, которое в форме вообще не будет присутствовать, пользователю его видеть и заполнять все равно никогда не надо будет, (например computed field использовать для этого или обычное текстовое настроить) и написать небольшой сниппет, который будет заносить значение в это поле при отправке формы.

Аватар пользователя Alex_R Alex_R 8 мая 2010 в 14:36

gorr wrote:
Да, возможно, только зачем этот чекбокс вообще, тут можно просто поле, которое в форме вообще не будет присутствовать, пользователю его видеть и заполнять все равно никогда не надо будет, (например computed field использовать для этого или обычное текстовое настроить)

Да, я это и имел в виду.

gorr wrote:
и написать небольшой сниппет, который будет заносить значение в это поле при отправке формы.

Это тоже понятно, не понятно как это значение получить перед сохранением формы.

Либо нужно написать нечто типа:
"Если сохраняется новый документ, то войти в его редактирование и сохранить еще раз" Только как этот текст правильно оформить и куда его прописать я тоже не очень понимаю Sad

Аватар пользователя gorr gorr 8 мая 2010 в 14:47

Нет, сохранять не надо 2 раза ничего, достаточно найти в сниппете значение поля картинки, определить что больше - ее ширина или длина и в зависимости от этого внести свои изменения в значение нужного поля, все данные можно найти отпринтовав либо объект ноды, либо массив $form_state['values'], в зависимости от места где будете влазить в процесс сохранения ноды(тут несколько вариантов).