Как правильно обращаться к полям в валидаторе?

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

Аватар пользователя webpavilion webpavilion 24 сентября 2013 в 18:48

Вопрос не в том "как сделать?", а скорее как сделать в рамках идеологии.

Добрый день,
вопрос не в том "как сделать?", а скорее как сделать в рамках идеологии.

Суть проблемы:
Есть таблица собранная в field_collection у таблицы есть 5 полей, хотя бы одно из которых должно быть заполнено:

Казалось бы в чем проблема добавляем валидатор к форме:

if ($form_id == 'user_profile_form') {
    $form['field_results_table']["#element_validate"][] = 'sprs_power_user_profile_form_validate';
  }

и проверяем значения:

  foreach ($element['und'] as $key => $value) {
    if (is_int($key)) {
      $count = array();
      foreach ($types as $type) {
        if (!empty($value["field_results_table_{$type}"]['und'][0]['value']['#value'])) {
          $count[$type] = TRUE;
        }
      }
      if (sizeof($count) < 1) {
        form_set_error("field_results_table][und][$key", t('Хотябы одно из полей Приседание, Жим, Тяга, Сумма или Коэффициент должно быть заполнено в каждой строке'));
      }
    }
  }

Но меня очень смущает способ обращения к полям: $value["field_results_table_{$type}"]['und'][0]['value']['#value'], есть ли что то вроде field_view_value для подобных случаев?