Profile picture for Admin

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

Добавить комментарий

Содержимое данного поля является приватным и не предназначено для показа.
  88888888b  dP    dP  dP    dP  dP     dP   dP     dP 
88 Y8. .8P Y8. .8P 88 88 88 88
a88aaaa Y8aa8P Y8aa8P 88aaaaa88a 88 .8P
88 d8' `8b 88 88 88 88 d8'
88 88 88 88 88 88 88 .d8P
88888888P dP dP dP dP dP 888888'

Введите код, изображенный в стиле ASCII-арт.