Здравствуйте. Продублирую вопрос здесь.
Вывожу поле формы в кастомном шаблоне с помощью
<?php print render($form['field_imja']); ?>
Получаю такую разметку:
<div id="field-imja-add-more-wrapper">
<div class="form-item form-type-textfield form-item-field-imja-und-0-value">
<label for="edit-field-imja-und-0-value">Имя <span class="form-required" title="Это поле обязательно для заполнения.">*</span>
</label>
<input class="text-full form-text required" id="edit-field-imja-und-0-value" name="field_imja[und][0][value]" value="" size="60" maxlength="255" type="text">
</div>
</div>
</div>
Задача - убрать 2 верних div-a оставив только
<div class="form-item...
Верхний убрал так
unset($variables['form']['field_imja']['#theme_wrappers']);
}
и остался под ним
<div id="field-imja-add-more-wrapper">
Собственно вопрос - как его убрать? Нашёл вот https://www.drupal.org/node/2226665 но патчить ядро как-то не хочется.
Комментарии
искомая неприятность приписывается в field_multiple_value_form(), но как её переопределить?
там же прописывается и '#theme' => 'field_multiple_value_form', соответственно пишем preprocess функцию mymodule_preprocess_field_multiple_value_form(&$variables), отлавливаем в ней нужное поле и выкидываем '#prefix' и '#suffix'
Спасибо тебе, добрый человек!
сделал так:
$field_name = $variables['element']['#field_name'];
if ($field_name == 'field_familija' || $field_name == 'field_imja' || $field_name == 'field_otchestvo' || $field_name == 'field_telefon') {
$variables['element']['#prefix'] = '';
$variables['element']['#suffix'] = '';
dpm($variables);
}
}
однако в результате ничего не меняется, обёртка остаётся. Откуда же она берётся?