Как отличить радио и тип флажка в drupal
У меня есть тип контента, который состоит из четырех типов полей. флажок, радио, выбрать, выбрать несколько
Я использую field_info_instances('node','bundle_name')
в своем пользовательском модуле для получения информации о файлах для моего типа контента. Мне нужна эта информация, чтобы где-то ее использовать.
Мой вопрос в том, как я могу отличить тип флажка и тип радио. та же проблема для выбора и множественного выбора.
Вот результат
2 answers
Поле имеет свойство мощности (означает, сколько значений оно может иметь) и свойство типа (означает, какой общий вид элемента формы использовать).
Я говорю общие , потому что сам объект поля не определяет точный виджет. Это контролируется options_field_widget_form()
( документы здесь), который принимает объект поля и определяет, следует ли использовать флажки или переключатели в зависимости от мощности.
Так что да, вы правы - исследуя полевой объект не скажу вам, какой тип элемента формы будет использоваться, но вы можете предположить это по количеству элементов (если никто не переопределил options_field_widget_form()
).
Множественная мощность получает флажки; единичная мощность означает, что вам разрешен только один выбор, следовательно, набор переключателей. Кстати, 1 и -1 - не единственные возможные мощности. -1 означает неограниченный. Количество элементов, скажем, 3, также получит набор флажков.
Я нашел решение, я использовал функцию field_info_field, В возвращаемом массиве я нашел разницу в мощности.
Количество элементов для флажка равно -1 и для переключателя есть 1. Аналогично для select равно 1, а для multi select равно -1
Я сам это нашел, есть ли какое-нибудь лучшее решение, чем это?