ฉันจะลบโคลอนออกจากป้ายกำกับฟิลด์ของฉันได้อย่างไร


10

ฉันต้องการลบเครื่องหมายโคลอนออกจากเลเบลฟิลด์ที่แสดงผลของฉันตัวอย่างเช่น:

ชื่อโรงแรม: ถึงชื่อโรงแรม

ฉันคัดลอก field.tpl.php และลบเครื่องหมายโคลอนที่นั่น แต่ไม่ว่า Drupal จะปฏิเสธที่จะยอมรับและดึงโคลอนออกจากที่อื่น

ฉันจะทำสิ่งนี้ด้วยฟังก์ชั่น template.php ได้อย่างไร


คุณล้างแคชหรือไม่
AjitS

แท้จริงแล้วหลายครั้ง ไม่ไป
blue928


@ blue928 ดูโพสต์ซ้ำคุณต้องแทนที่theme_form_element()การทำเช่นนี้
Clive

โหนด / ฟิกซ์นั้นด้านบนจะลบโคลอนออกจากแบบฟอร์มเมื่อมีคนกำลังแก้ไข / ป้อนเนื้อหา ฉันต้องลบป้ายกำกับหลังจากที่แสดงผลในโหนด .. ดังนั้นมันจะไม่ซ้ำกับข้างต้น ฉันใช้โซลูชันนั้นเพื่อรับผลลัพธ์นั้น
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 ในลักษณะที่แข็งแกร่งกว่าที่คุณเป็นอยู่ในปัจจุบัน ดูว่าในกรณีนี้จะเกี่ยวข้องกับการปิดการใช้งานที่น่าเบื่อของแต่ละโมดูลที่เปิดใช้งานเพื่อพิจารณาว่าปัญหามาจากที่ใด

คุณจะไม่สามารถเปลี่ยนแปลงได้ด้วยฟังก์ชั่น preprocess แม่แบบเนื่องจากเครื่องหมายจุดคู่จะถูกกำหนดค่าไว้ในไฟล์แม่แบบ


อ่ามีโมดูลอื่นที่ป้องกันไม่ให้ไฟล์เท็มเพลตทำงานอย่างถูกต้อง ขอบคุณที่ชี้ให้เห็นทิศทางการดีบักที่เป็นประโยชน์
blue928

9

ฉันเพิ่งสร้างโมดูลที่ทำสิ่งนี้อย่างแน่นอนลบ colons (บนพื้นฐานต่อสาขา) จากป้ายชื่อสนามในการส่งออก: Colectomy


สามารถยืนยันได้ โมดูลนี้ทำงานได้อย่างยอดเยี่ยมและเป็นวิธีการแก้ปัญหาที่เรียบง่ายและสง่างาม
Mark

2

หากเป็นฟิลด์ดูด้วยเพียงคลิกที่ฟิลด์และยกเลิกการเลือก "วางโคลอนไว้หลังป้ายกำกับ" ใต้ "สร้างป้ายกำกับ"


2

Display suite มีฟังก์ชั่นการใช้งานเช่นเดียวกัน:

หากคุณเปิดใช้งานชุดการแสดงผลพิเศษมีตัวเลือกในการลบเครื่องหมายจุดคู่ก่อนที่ป้ายกำกับ:

เส้นทางสำหรับสิ่งนั้นคือ: /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: '';
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.