Bagaimana cara menghapus titik dua dari label bidang saya?


10

Saya hanya ingin dapat menghapus titik dua dari label bidang yang diberikan, misalnya:

Nama hotel: ke nama Hotel

Saya menyalin field.tpl.php dan menghapus usus besar di sana, tetapi tidak peduli apa yang Drupal menolak menerimanya dan menarik usus besar dari tempat lain.

Bagaimana saya bisa melakukan ini dengan fungsi template.php?


apakah Anda menghapus cache?
AjitS

ya, beberapa kali. no go
blue928


@ blue928 Lihat pos duplikat, Anda perlu mengganti theme_form_element()untuk melakukan ini
Clive

Node / perbaikan di atas hanya menghapus titik dua dari formulir ketika seseorang mengedit / memasukkan konten. Saya perlu menghapus label setelah mereka diberikan dalam node. ..jadi, itu tidak akan menjadi duplikat di atas. Saya sebenarnya mengimplementasikan solusi itu untuk mendapatkan hasil itu.
blue928

Jawaban:


16

Jawabannya pasti menggunakan field.tpl.php . Jika Anda melihat sumber untuk file itu, Anda dapat melihat baris yang menyinggung:

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

(penambangan jarak dan indentasi untuk kejelasan).

Menghapus titik dua semudah mengganti baris di atas dengan:

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

Saya baru saja mengujinya pada instalasi Drupal kosong dan berfungsi dengan baik; tidak ada lagi titik dua setelah label bidang.

Jika Anda sudah melakukan hal yang sama, tetapi tidak mendapatkan hasil yang benar, maka saya bisa memikirkan satu atau dua hal yang bisa jadi serba salah:

  • Anda telah memasukkan versi custom field.tpl.php ke folder modul, bukan di folder tema aktif situs Anda (harus ada di folder tema).
  • Modul / elemen lain dalam sistem juga mengesampingkan field.tpl.php, dengan cara yang lebih kuat dari yang ada sekarang. Melihat apakah ini masalahnya akan melibatkan penonaktifan yang selalu membosankan dari setiap modul yang diaktifkan untuk menentukan dari mana masalahnya berasal.

Anda tidak akan dapat melakukan perubahan dengan fungsi preproses templat, karena titik dua hard-coded ke dalam file templat.


Ah, memang ada modul lain yang mencegah file template bekerja dengan benar. Terima kasih telah menunjukkan beberapa arahan debugging yang bermanfaat.
blue928

9

Saya baru saja membuat modul yang melakukan hal ini, menghilangkan titik dua (berdasarkan per bidang) dari label bidang pada output: Colectomy


Dapat mengkonfirmasi. Modul ini bekerja sangat baik dan merupakan solusi sederhana dan elegan untuk masalah ini.
Tandai

2

Jika itu adalah bidang Lihat dengan, cukup klik pada bidang tersebut dan hapus centang "Tempatkan titik dua setelah label" di bawah "Buat label".


2

Display suite juga menyediakan fungsi yang sama:

Jika Anda mengaktifkan ekstra tampilan suite ada opsi untuk menghapus titik dua sebelum label:

Jalan untuk itu adalah: /admin/structure/ds/list/extras/

masukkan deskripsi gambar di sini


1
Ini BANYAK lebih dari menghilangkan titik dua. Jika Anda telah menerapkan CSS khusus, ini akan mematikannya.
Tandai

0

Dalam kasus saya ini berfungsi dengan menimpa theme_field()( field.module) dengan menyalin seluruh fungsi ke template.phpfile saya dan mengubah baris yang berbunyi

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

Bersihkan cache sebelum mencoba.


0

Saya tidak dapat menemukan jawaban untuk pertanyaan ini untuk Drupal 8 di mana saja. Dengan Drupal 8 titik dua ditambahkan dengan file CSS (field.css) dalam tema inti Classy jika Anda menggunakannya sebagai tema dasar Anda. Yang harus Anda lakukan adalah menimpanya di file CSS Anda sendiri di tema Anda.

Jadi dari file field.css asli:

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

Dalam file CSS tema saya untuk menghapus titik dua:

.field--label-inline .field__label::after {
    content: '';
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.