webform label после field

Profile picture for user admin_romcom

Стокнулся с проблемой отображения меток с элементами формы в модуле 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 доступно отображеие метки под полем.

Add new comment

The content of this field is kept private and will not be shown publicly.

Plain text

  • No HTML tags allowed.
 o--o   o   o  o--o  o   o  o  o 
| | \ / | \ / | |
O-Oo O o-o O O--O
| \ / \ | | | |
o o o o o-o o o o

Enter the code depicted in ASCII art style.