Как получить доступ к одному полю ноды из виджета другого поля?

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

Аватар пользователя navij navij 18 октября 2013 в 16:44

Добрый день! Извиняюсь, если вопрос чересчур нубский, просто решение нужно срочно, а в архитектуру друпала надо въезжать долго. Итак:

Есть drupal commerce, есть line item с приаттаченными к нему полями (field). Первое поле имеет кастомный виджет такого характера:

<?phpfunction mymodule_field_widget_form(&$form, &$form_state, $field, $instance, $langcode, $items, $delta, $element) {

...

      $main_widget = $element + array( 
 
        '#type' => 'textarea',  
        '#attributes' => array('item_capacity' => 3), 
        '#theme'=>'mymodule_theme'

      );

...

}?>

Второе поле - просто обычное числовое поле. Мне нужно, чтобы в темплейт моего виджета передавалось значение второго поля. Подскажите, пожалуйста, как его получить, желательно из hook_field_widget_form().

Комментарии

Аватар пользователя serega111 serega111 18 октября 2013 в 16:57

если это форма редактирования, то выведите $form_state (например dpm из модуля devel). Там, возможно, содержится объект сущности line item. В форме создания сущности никакого значения еще нет. Если нужно значение из формы, только javascript, или #ajax к виджету прикручивайте.

Аватар пользователя navij navij 18 октября 2013 в 17:01

"serega111" wrote:
если это форма редактирования, то выведите $form_state (например dpm из модуля devel). Там, возможно, содержится объект сущности line item. В форме создания сущности никакого значения еще нет. Если нужно значение из формы, только javascript, или #ajax к виджету прикручивайте.

Хм, ну Js в принципе вариант на крайняк, но как-то костыльно.

Это страница отображения товара, которую видит покупатель. То есть окошко выбора опций товара. Сейчас поковыряю $form_state, но я там смотрел, вроде бы не нашел объекта line item.

Аватар пользователя serega111 serega111 18 октября 2013 в 20:45

"navij" wrote:
То есть окошко выбора опций товара.

в этот момент line item еще не создан, так что никакого значения получить в принципе не получится