Рамка вокруг поля типа Дата

Главные вкладки

Аватар пользователя PC_M@niac PC_M@niac 13 марта 2012 в 17:31

Создал поле типа Date, на форме редактирования оно отображается в рамке, будто это Fieldset.

Может есть у кого идеи как это убрать? Бо выглядит неэстетично и ломает вёрстку если использовать Display Suite. Пробовал менять виджет, лазил по настройкам, даже пробовал запихивать в другой филдсет - не помогает, рисуется рамка.

Комментарии

Аватар пользователя PC_M@niac PC_M@niac 13 марта 2012 в 18:43

Вот кусок кода с теми двумя полями что на скриншоте. Явно видно что для даты добавлен филдсет с заголовками. Понятное дело что можно сделать костыль и скрыть это безобразие при помощи CSS, но неужели нет возможности просто сказать ему не создавать этот никому не нужный филдсет? Может кто сталкивался?

<div class="field-type-taxonomy-term-reference field-name-field-contragent field-widget-taxonomy-autocomplete form-wrapper" id="edit-field-contragent"><div class="form-item form-type-textfield form-item-field-contragent-und">
  <label for="edit-field-contragent-und">Контрагент <span class="form-required" title="Обязательно для заполнения.">*</span></label>
  <input type="text" id="edit-field-contragent-und" name="field_contragent[und]" value="" size="60" maxlength="1024" class="form-text required form-autocomplete" />
  <input type="hidden" id="edit-field-contragent-und-autocomplete" value="http://buh.ibs/ru/taxonomy/autocomplete/field_contragent" disabled="disabled" class="autocomplete" />
  <div class="description">Укажите контрагента, которому выписывается документ</div>
</div>

<div class="field-type-datetime field-name-field-date field-widget-date-popup form-wrapper" id="edit-field-date"><div id="field-date-add-more-wrapper"><fieldset class="form-wrapper">
  <legend><span class="fieldset-legend">Дата </span></legend>
  <div class="fieldset-wrapper">
    <div  class="date-no-float container-inline-date">
      <div class="form-item form-type-date-popup form-item-field-date-und-0-value">
        <div id="edit-field-date-und-0-value"  class="date-padding"><div class="form-item form-type-textfield form-item-field-date-und-0-value-date">
          <input class="date-clear form-text" type="text" id="edit-field-date-und-0-value-datepicker-popup-0" name="field_date[und][0][value][date]" value="13.03.2012" size="20" maxlength="30" />
          <div class="description"> Например: 13.03.2012</div>
        </div>
      </div>
      <div class="description">Укажите дату документа</div>
    </div>
  </div>
</div>

Аватар пользователя popovtv popovtv 27 апреля 2012 в 10:00

В файле date.theme в конце есть функция theme_date_combo со следующим содержанием:

<?php
/**
 * Returns HTML for a start/end date combination on form.
 */
function theme_date_combo($variables) {
  
$element $variables['element'];
  
$field field_info_field($element['#field_name']);
  
$instance field_info_instance($element['#entity_type'], $element['#field_name'], $element['#bundle']);

  

// Group start/end items together in fieldset.
  
$fieldset = array(
    
'#title' => t($element['#title']) . ' ' . ($element['#delta'] > intval($element['#delta'] + 1) : ''),
    
'#value' => '',
    
'#description' => !empty($element['#fieldset_description']) ? $element['#fieldset_description'] : '',
    
'#attributes' => array(),
    
'#children' => $element['#children'],
  );
  return 
theme('fieldset', array('element' => $fieldset));
}
?>

Чтобы избавиться от назойливой рамки, в своём файле темы template.php можно переопределить эту функцию YOURTHEME_date_combo, изменив только последнюю строчку на

<?php
return theme('form_element', array('element' => $fieldset));
?>

Если идея ясна, то можно играть, подставляя вместо fieldset всякие другие варианты, которые подходят к оформлению (см. Form API). Так же полезно посмотреть файл date_api/theme/theme.inc - их можно так же переопределить и менять отдельные поля и их свойства.

После выбора подходящего типа элемента формы допиливаем с помощью css.