Стокнулся с проблемой отображения меток с элементами формы в модуле webform 7.x-3.20 (да, не последняя версия. в 3.21 без изменений). В настройках поля есть только три варианта отображения метки: сверху, в линию и нет.
Но посмотрев файл /includes/form.inc обнаружил в функции theme_form_element позицию метки after!! Видимо, разрабы webform решили, какой дурак будет ставить метку ПОД полем и не дописали "лишний" элемент массива.
Сей прискорбный "баг(?)" правится через кастомный модуль с помощью хука.
UPD: в textarea вообще печаль. Только скрыть или показать метку. Исправлен код.
function mymodule_form_alter(&$form, &$form_state, $form_id){ switch ($form_id){ case 'webform_component_edit_form': switch ($form['display']['title_display']['#type']){ case 'select': $form['display']['title_display']['#options']['after'] = t('After'); break; case 'checkbox': $form['display']['title_display']['#type'] = 'select'; $form['display']['title_display']['#title'] = t('Label display'); $form['display']['title_display']['#options'] = array( 'none' => t('None'), 'before' => t('Before'), 'after' => t('After'), ); break; } break; } }
Теперь для всех элементов webform доступно отображеие метки под полем.
Добавить комментарий