Làm cách nào để xóa dấu hai chấm khỏi nhãn trường của tôi?


10

Tôi chỉ đơn giản muốn có thể xóa dấu hai chấm khỏi nhãn trường được hiển thị của mình, ví dụ:

Tên khách sạn: tên khách sạn

Tôi đã sao chép field.tpl.php và xóa dấu hai chấm ở đó, nhưng không có vấn đề gì Drupal từ chối chấp nhận nó và đang kéo dấu hai chấm từ nơi khác.

Làm thế nào tôi có thể làm điều này với một hàm template.php?


bạn đã xóa bộ nhớ cache?
AjitS

vâng, nhiều lần không đi
blue928


@ blue928 Xem bài đăng trùng lặp, bạn cần ghi đè theme_form_element()để thực hiện việc này
Clive

Nút / sửa lỗi ở trên chỉ đơn giản là xóa dấu hai chấm khỏi biểu mẫu khi ai đó đang chỉnh sửa / nhập nội dung. Tôi cần phải loại bỏ các nhãn sau khi chúng được hiển thị trong nút. .. vì vậy, nó sẽ không phải là một bản sao của ở trên. Tôi thực sự đã thực hiện giải pháp đó để có được kết quả đó.
blue928

Câu trả lời:


16

Câu trả lời chắc chắn là sử dụng field.tpl.php . Nếu bạn nhìn vào nguồn cho tệp đó, bạn có thể thấy các dòng vi phạm:

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

(khoảng cách và vết lõm của tôi cho rõ ràng).

Loại bỏ dấu hai chấm đơn giản như thay thế các dòng trên bằng:

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

Tôi vừa mới thử nghiệm trên bản cài đặt Drupal trống và nó hoạt động hoàn hảo; không còn dấu hai chấm sau nhãn trường.

Nếu bạn đã làm điều tương tự, nhưng không nhận được kết quả chính xác, thì tôi có thể nghĩ về một hoặc hai điều có thể trở nên tồi tệ:

  • Bạn đã đặt phiên bản tùy chỉnh của field.tpl.php vào thư mục mô-đun, thay vì trong thư mục chủ đề đang hoạt động trên trang web của bạn (nó cần phải nằm trong thư mục chủ đề).
  • Một mô-đun / phần tử khác trong hệ thống cũng ghi đè trường.tpl.php, theo cách mạnh mẽ hơn so với hiện tại của bạn. Xem nếu đây là trường hợp sẽ liên quan đến việc vô hiệu hóa luôn luôn tẻ nhạt của từng mô-đun được kích hoạt để xác định vấn đề đến từ đâu.

Bạn sẽ không thể thực hiện thay đổi với chức năng tiền xử lý mẫu, vì dấu hai chấm được mã hóa cứng vào tệp mẫu.


Ah, thực sự có một mô-đun khác ngăn tập tin mẫu hoạt động chính xác. Cảm ơn đã chỉ ra một số hướng gỡ lỗi hữu ích.
blue928

9

Tôi vừa tạo một mô-đun thực hiện chính xác điều này, loại bỏ dấu hai chấm (trên cơ sở từng trường) khỏi nhãn trường trên đầu ra: Colectomy


Có thể xác nhận. Mô-đun này hoạt động xuất sắc và là một giải pháp đơn giản, thanh lịch cho vấn đề này.
Đánh dấu

2

Nếu đó là Chế độ xem với các trường, chỉ cần nhấp vào trường và bỏ chọn "Đặt dấu hai chấm sau nhãn" bên dưới "Tạo nhãn".


2

Bộ phần mềm hiển thị cũng cung cấp chức năng tương tự:

Nếu bạn bật tính năng bổ sung của bộ hiển thị, sẽ có tùy chọn xóa dấu hai chấm trước nhãn:

Con đường cho điều đó là: /admin/structure/ds/list/extras/

nhập mô tả hình ảnh ở đây


1
Điều này làm rất nhiều hơn là loại bỏ ruột kết. Nếu bạn đã áp dụng CSS tùy chỉnh, điều này sẽ giết chết điều đó.
Đánh dấu

0

Trong trường hợp của tôi, nó hoạt động bằng cách ghi đè theme_field()( field.module) bằng cách sao chép toàn bộ hàm vào template.phptệp của tôi và thay đổi dòng đọc

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

Xóa bộ nhớ cache trước khi thử.


0

Tôi không thể tìm thấy câu trả lời cho câu hỏi này cho Drupal 8 ở bất cứ đâu. Với Drupal 8, dấu hai chấm được thêm vào bằng tệp CSS (field.css) trong chủ đề lõi Classy nếu bạn đang sử dụng nó làm chủ đề cơ bản. Tất cả bạn phải làm là ghi đè nó trong tệp CSS của riêng bạn trong chủ đề của bạn.

Vì vậy, từ tệp field.css ban đầu:

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

Trong tệp CSS chủ đề của tôi để xóa dấu hai chấm:

.field--label-inline .field__label::after {
    content: '';
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.