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 доступно отображеие метки под полем.

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

Содержимое данного поля является приватным и не предназначено для показа.
  • HTML-теги не обрабатываются и показываются как обычный текст
  88888888b   88888888b  .d888b.  .d8888P  dP    dP 
88 88 Y8' `88 88' Y8. .8P
a88aaaa a88aaaa `8bad88 88baaa. Y8aa8P
88 88 `88 88` `88 d8' `8b
88 88 d. .88 8b. .d8 88 88
88888888P dP `8888P `Y888P' dP dP

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