렌더링 된 필드 레이블에서 콜론을 제거 할 수 있기를 원합니다. 예를 들면 다음과 같습니다.
호텔 이름 : to 호텔 이름
field.tpl.php를 복사하여 콜론을 제거했지만 Drupal이 승인하지 않고 콜론을 다른 곳에서 가져옵니다.
template.php 함수로 어떻게 할 수 있습니까?
theme_form_element()
해야합니다
렌더링 된 필드 레이블에서 콜론을 제거 할 수 있기를 원합니다. 예를 들면 다음과 같습니다.
호텔 이름 : to 호텔 이름
field.tpl.php를 복사하여 콜론을 제거했지만 Drupal이 승인하지 않고 콜론을 다른 곳에서 가져옵니다.
template.php 함수로 어떻게 할 수 있습니까?
theme_form_element()
해야합니다
답변:
답은 field.tpl.php 를 사용하는 것 입니다. 해당 파일의 소스를 보면 문제의 행을 볼 수 있습니다.
<?php if (!$label_hidden): ?>
<div class="field-label"<?php print $title_attributes; ?>>
<?php print $label ?>:
</div>
<?php endif; ?>
(명확성을 위해 간격과 들여 쓰기 광산).
콜론을 제거하는 것은 위의 행을 다음과 같이 바꾸는 것만 큼 간단합니다.
<?php if (!$label_hidden): ?>
<div class="field-label"<?php print $title_attributes; ?>>
<?php print $label ?>
</div>
<?php endif; ?>
방금 빈 Drupal 설치에서 테스트했으며 완벽하게 작동합니다. 필드 레이블 뒤에 더 이상 콜론이 없습니다.
이미 똑같은 일을하고 있지만 올바른 결과를 얻지 못한다면 한두 가지 생각할 수 있습니다.
콜론은 템플릿 파일에 하드 코딩되어 있으므로 템플릿 전처리 기능으로 변경할 수 없습니다.
필자의 경우 전체 함수를 내 파일 로 복사하고 읽는 행을 변경하여 theme_field()
( field.module
) 을 재정 의하여 작동했습니다.template.php
$output .= '<div class="field-label"' . $variables['title_attributes'] . '>' . $variables['label'] . ' </div>';
시도하기 전에 캐시를 지우십시오.
Drupal 8에 대한이 질문에 대한 답을 찾을 수 없었습니다. Drupal 8을 사용하면 기본 테마로 사용하는 경우 Classy 핵심 테마에 CSS 파일 (field.css)이 콜론에 추가됩니다. 테마의 CSS 파일에서 덮어 쓰기 만하면됩니다.
따라서 원래 field.css 파일에서 :
.field--label-inline .field__label::after {
content: ':';
}
내 테마 CSS 파일에서 콜론을 제거하려면 다음을 수행하십시오.
.field--label-inline .field__label::after {
content: '';
}