Как мне удалить двоеточие с моих полевых меток?

10

Я просто хочу иметь возможность удалить двоеточие из моих отображаемых меток полей, например:

Название отеля: на имя отеля

Я скопировал field.tpl.php и удалил там двоеточие, но независимо от того, что Drupal отказывается принять его и вытаскивает двоеточие из другого места.

Как я могу сделать это с помощью функции template.php?

blue928
источник
ты очистил кеш?
AjitS
да, несколько раз. не ходи
blue928
@ blue928 Посмотрите дубликат поста, вам нужно переопределить, theme_form_element()чтобы сделать это
Клайв
Этот узел / исправление выше просто удалил двоеточия из формы, когда кто-то редактирует / вводит контент. Мне нужно удалить метки после того, как они отображаются в узле. .. так, это не было бы дубликатом вышеупомянутого. Я действительно реализовал это решение, чтобы получить этот результат.
blue928

Ответы:

16

Ответ определенно использовать field.tpl.php . Если вы посмотрите на источник для этого файла, вы увидите оскорбительные строки:

<?php if (!$label_hidden): ?>
  <div class="field-label"<?php print $title_attributes; ?>>
    <?php print $label ?>:&nbsp;
  </div>
<?php endif; ?>

(интервал и отступ для ясности).

Удалить двоеточие так же просто, как заменить вышеприведенные строки на:

<?php if (!$label_hidden): ?>
  <div class="field-label"<?php print $title_attributes; ?>>
    <?php print $label ?>&nbsp;
  </div>
<?php endif; ?>

Я только что проверил это на пустой установке Drupal, и она отлично работает; больше нет двоеточий после меток полей.

Если вы уже делаете то же самое, но не получаете правильных результатов, то я могу подумать об одной или двух вещах, которые могут пойти не так:

  • Вы поместили свою пользовательскую версию field.tpl.php в папку модуля, а не в папку активной темы вашего сайта (она должна быть в папке темы).
  • Другой модуль / элемент в системе также переопределяет field.tpl.php, более надежным способом, чем вы в настоящее время. Проверка того, так ли это, будет включать в себя всегда утомительное отключение каждого включенного модуля, чтобы определить, откуда возникла проблема.

Вы не сможете внести изменения с помощью функции предварительной обработки шаблона, так как двоеточие жестко запрограммировано в файле шаблона.

Клайв
источник
Ах, действительно был другой модуль, препятствующий правильной работе файла шаблона. Спасибо за указание на некоторые полезные инструкции по отладке.
blue928
9

Я только что создал модуль, который делает именно это, удаляет двоеточия (для каждого поля) из меток полей на выходе: колэктомия

Танч
источник
Могу подтвердить. Этот модуль отлично работает и является простым, элегантным решением проблемы.
Марк
2

Если это View с полями, просто нажмите на поле и снимите флажок «Поместить двоеточие после метки» в «Создать метку».

Тайлер Дурден
источник
2

Набор дисплея также обеспечивает те же функциональные возможности:

Если вы включите дополнительные функции отображения набора, есть возможность удалить двоеточия перед метками:

Путь для этого: /admin/structure/ds/list/extras/

введите описание изображения здесь

chrisjlee
источник
1
Это намного больше, чем удаление толстой кишки. Если вы применили пользовательский CSS, это убьет это.
Марка
0

В моем случае это сработало путем переопределения theme_field()( field.module) путем копирования всей функции в мой template.phpфайл и изменения строки, которая читает

$output .= '<div class="field-label"' . $variables['title_attributes'] . '>' . $variables['label'] . '&nbsp;</div>';

Очистите кеши, прежде чем пытаться.

Meetai.com
источник
0

Я нигде не мог найти ответ на этот вопрос для Drupal 8. В Drupal 8 двоеточие добавляется с помощью CSS-файла (field.css) в основной теме Classy, ​​если вы используете его в качестве базовой темы. Все, что вам нужно сделать, это переопределить его в вашем собственном файле CSS в вашей теме.

Итак, из исходного файла field.css:

.field--label-inline .field__label::after {
    content: ':';
}

В моей теме CSS файл для удаления двоеточия:

.field--label-inline .field__label::after {
    content: '';
}
Стонуолл Томас
источник