วิธีเปลี่ยน“ เป็น” เป็น“ -” ในขณะที่แสดงวันที่เริ่มต้นและสิ้นสุดในมุมมอง


10

เมื่อใช้มุมมองเพื่อแสดงวันที่เริ่มต้นและสิ้นสุดตามค่าเริ่มต้นจะเพิ่มข้อความ "เป็น" ในระหว่างวันที่สองวันฉันสงสัยว่าวิธีที่เหมาะสมในการแปลง "เป็น" เป็น "-" หรืออย่างอื่นคืออะไร

ขอบคุณ


1
คำถามแบบเดียวกัน - drupal.stackexchange.com/questions/79311/…
RajeevK

เมื่อหนึ่งจะมีคำตอบอื่น ๆ ควรปิดเป็นซ้ำ จับได้ดี @RajeevK
Mołot

@ Mołot - นั่นเป็นเหตุผลที่ฉันไม่ได้ตั้งค่าสถานะซ้ำกัน หวังว่าใครบางคนมีบางอย่างที่เป็นไปได้และแก้ไขข้อมูลการดู ฉันทำไปแล้วใน D6 แต่ไม่ใช่อันนี้ แต่แตกต่างกันมาก
RajeevK

คำตอบ:


9

คำตอบของฉันถือว่าฉันมีเขตข้อมูลที่เรียกว่า "field_event_date" ซึ่งแสดงเป็นเนื้อหา: วันที่จัดกิจกรรมในมุมมองของฉัน

คำตอบ # 1 - ใช้เทมเพลตดู

  1. ภายใต้ส่วนขั้นสูงของมุมมองภายใต้ส่วนอื่น ๆ ให้เปิดข้อมูลชุดรูปแบบ

  2. คัดลอกชื่อไฟล์ของตัวเลือกชุดรูปแบบสุดท้ายสำหรับเนื้อหาของฟิลด์: วันที่ของเหตุการณ์ในกรณีของฉันมันจะเป็น views-view-field - VIEWMACHINENAME - BLOCKMACHINENAME - field-event-date.tpl.php

  3. คัดลอกสิ่งต่อไปนี้ลงไป:

    <?php
    
    /**
     * @file
     * This template is used to print a single field in a view.
     *
     * It is not actually used in default Views, as this is registered as a theme
     * function which has better performance. For single overrides, the template is
     * perfectly okay.
     *
     * Variables available:
     * - $view: The view object
     * - $field: The field handler object that can process the input
     * - $row: The raw SQL result that can be used
     * - $output: The processed output that will normally be used.
     *
     * When fetching output from the $row, this construct should be used:
     * $data = $row->{$field->field_alias}
     *
     * The above will guarantee that you'll always get the correct data,
     * regardless of any changes in the aliasing that might happen if
     * the view is modified.
     */
    ?>
    
    <?php print date("Y-m-d H:i:s", strtotime($row->field_field_event_date[0]["raw"]["value"])); ?>
     - 
    <?php print date("Y-m-d H:i:s", strtotime($row->field_field_event_date[0]["raw"]["value2"])); ?>

นี้บางสิ่งบางอย่างออกจะเหมือน 2014/08/09 20:15:00 - 2014/08/12 20:15:00, รูปแบบการใช้วันที่ () สตริงรูปแบบ

คำตอบ # 2 - ใช้ฟิลด์ดู

  1. ใต้ฟิลด์ให้เพิ่มเนื้อหา: วันที่จัดกิจกรรมและตั้งค่าการแสดงเป็น "วันที่เริ่มต้นเท่านั้น"
  2. ภายใต้ฟิลด์เพิ่มทั่วโลก: ข้อความที่กำหนดเองและตั้งค่าข้อความเป็น -
  3. ใต้ฟิลด์ให้เพิ่มเนื้อหา: วันที่จัดกิจกรรมและตั้งค่าการแสดงเป็น "วันที่สิ้นสุดเท่านั้น"
  4. ภายใต้การตั้งค่าฟิลด์ให้ตั้งค่าสามฟิลด์ด้านบนเป็นแบบอินไลน์

สิ่งนี้จะแสดงผลบางอย่างเช่นวันอาทิตย์ที่ 1 ธันวาคม 2013 - 12:00 - วันอาทิตย์ที่ 1 ธันวาคม 2013 - 12:00 ตามรูปแบบที่คุณเลือก


คำตอบ # 2b: ทำเช่นเดียวกัน แต่ไม่รวมวันที่เริ่มต้นจากจอแสดงผลในฟิลด์แรก อย่าเพิ่มทั่วโลก: ข้อความที่กำหนดเอง; [field_my_time] - [field_my_time_1]และเขียนผลของสนามวันที่สิ้นสุดที่มีรูปแบบการเปลี่ยนเพื่อสิ่งที่ต้องการ
Hugo

4

แม้ว่าคำตอบข้างต้นนั้นถูกต้อง แต่ควรปฏิบัติไม่ให้ใช้ php ใน TPL เช่นนี้ Drupal มาพร้อมกับ API แฟนซีหลายอันหนึ่งในนั้นคือ template_preprocess_views_view_fields ( ตามที่เห็นที่นี่ )

ใน template.php ของคุณทำสิ่งนี้:

function YOURTHEME_preprocess_views_view_fields(&$vars) {
 if($vars['view']->name == 'YOUR_VIEW') {
  if (strpos($vars['fields']['YOUR_FIELD']->content,'to') !== false) {
    $vars['fields']['YOUR_FIELD']->content = str_replace('to','-',$vars['fields']['YOUR_FIELD']->content);
  }
 }
}

2

ในวันที่ 7.x-2.8 และสูงกว่าสตริงทั้งหมด "วันที่เริ่มต้นจนถึงวันที่สิ้นสุด" สามารถแปลได้ ซึ่งหมายความว่าวิธีง่าย ๆ ในการเปลี่ยน "เป็น" เป็น "-" คือการใช้โมดูลString Overrides เพียงดาวน์โหลดและเปิดใช้งานโมดูลจากนั้นไปที่ / admin / config / region / stringoverrides ในหน้านั้นให้เพิ่ม "! start-date เป็น! end-date" (โดยไม่ใส่เครื่องหมายอัญประกาศ) ภายใต้ "Original" และ "! start-date -! end-date" (โดยไม่ใส่เครื่องหมายอัญประกาศ) ใต้ "การแทนที่" คลิกบันทึก คุณอาจต้องล้างแคชเว็บไซต์ของคุณก่อนที่จะเห็นการเปลี่ยนแปลง

ข้อดีอย่างหนึ่งของวิธีนี้คือจะเปลี่ยน "เป็น" เป็น "-" บนโหนดและมุมมองพร้อมกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.