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


10

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

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

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

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


ты очистил кеш?
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/

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


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

0

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

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

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


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: '';
}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.