Как отличить радио и тип флажка в drupal


У меня есть тип контента, который состоит из четырех типов полей. флажок, радио, выбрать, выбрать несколько

Я использую field_info_instances('node','bundle_name') в своем пользовательском модуле для получения информации о файлах для моего типа контента. Мне нужна эта информация, чтобы где-то ее использовать.

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

Вот результат enter image description here

Author: kiamlaluno, 2014-02-10

2 answers

Поле имеет свойство мощности (означает, сколько значений оно может иметь) и свойство типа (означает, какой общий вид элемента формы использовать).

Я говорю общие , потому что сам объект поля не определяет точный виджет. Это контролируется options_field_widget_form() ( документы здесь), который принимает объект поля и определяет, следует ли использовать флажки или переключатели в зависимости от мощности.

Так что да, вы правы - исследуя полевой объект не скажу вам, какой тип элемента формы будет использоваться, но вы можете предположить это по количеству элементов (если никто не переопределил options_field_widget_form()).

Множественная мощность получает флажки; единичная мощность означает, что вам разрешен только один выбор, следовательно, набор переключателей. Кстати, 1 и -1 - не единственные возможные мощности. -1 означает неограниченный. Количество элементов, скажем, 3, также получит набор флажков.

 0
Author: naomi, 2014-02-10 17:08:09

Я нашел решение, я использовал функцию field_info_field, В возвращаемом массиве я нашел разницу в мощности.

Количество элементов для флажка равно -1 и для переключателя есть 1. Аналогично для select равно 1, а для multi select равно -1

Я сам это нашел, есть ли какое-нибудь лучшее решение, чем это?

 0
Author: Krishna Mohan, 2014-02-12 07:17:30