Score:0

เขียนทับข้อความประมวลผลการดำเนินการ VBO เฉพาะ

ธง in

ฉันใช้ VBO เพื่อดำเนินการแบบกลุ่มในมุมมองของฉัน ฉันมีการกระทำ VBO หลัก 2 รายการและการกระทำที่กำหนดเอง 2 รายการ

  • เผยแพร่ความคิดเห็น
  • ยกเลิกการเผยแพร่ความคิดเห็น
  • เผยแพร่ทรัพยากร
  • ยกเลิกการเผยแพร่ทรัพยากร

เมื่อ ใช้การดำเนินการ คลิกปุ่มโดยไม่ได้เลือกแถวกริด ฉันได้รับข้อความแสดงข้อผิดพลาดนี้

เลือกหนึ่งความคิดเห็นขึ้นไปเพื่อดำเนินการอัปเดต

ฉันต้องการเขียนข้อความแสดงข้อผิดพลาดนี้เป็น ต้องเลือกไฟล์แนบเพื่อดำเนินการนี้.

ฉันจะบรรลุสิ่งนี้ได้อย่างไร ฉันตระหนักถึง hook_views_bulk_operations_finish()แต่ไม่ได้เขียนทับการกระทำเฉพาะ

Score:3
ธง in

คุณสามารถลองทำสิ่งต่อไปนี้:

  1. กำหนดปลั๊กอิน ViewsField ของคุณเองที่ขยาย CommentBulkForm (นั่นคือที่มาของข้อความนั้น)
<?php

เนมสเปซ Drupal\your_module\Plugin\views\field;

ใช้ Drupal\views\Plugin\views\field\BulkForm

/**
 * กำหนดองค์ประกอบฟอร์มกลุ่มการดำเนินงานความคิดเห็นที่กำหนดเอง
 *
 * @ViewsField("custom_comment_bulk_form")
 */
คลาส CustomCommentBulkForm ขยาย CommentBulkForm {

  /**
   * {@inheritdoc}
   */
  ฟังก์ชันป้องกันที่ว่างเปล่าSelectedMessage() {
    return $this->t('ต้องเลือกไฟล์แนบเพื่อดำเนินการนี้');
  }

}

  1. เปิดเผยปลั๊กอินของคุณในมุมมอง:
ฟังก์ชัน your_module_views_data() {

  $data['comment']['custom_comment_bulk_form'] = [
    'title' => t('แบบฟอร์มกลุ่มการดำเนินการแสดงความคิดเห็นแบบกำหนดเอง'),
    'help' => t('เพิ่มองค์ประกอบแบบฟอร์มที่ให้คุณดำเนินการกับหลายความคิดเห็นด้วยข้อความที่กำหนดเอง'),
    'ฟิลด์' => [
      'id' => 'custom_comment_bulk_form',
    ]
  ];

  ส่งคืน $data;
}
  1. สุดท้าย เขียนทับ (หรือลบล้าง) การกำหนดค่าความคิดเห็น (views.view.) ของคุณ เพื่อให้ฟิลด์ 'ความคิดเห็น: แบบฟอร์มกลุ่มการดำเนินการแสดงความคิดเห็น' ที่มีอยู่ของคุณถูกบังคับให้ใช้ปลั๊กอิน ViewsField ของคุณ วิธีหนึ่งในการเขียนทับคือผ่าน drush:
drush cset views.view.comment \
  display.default.display_options.fields.comment_bulk_form.field \
  custom_comment_bulk_form

ซึ่งจะทำให้คุณสามารถตั้งค่าข้อความของคุณเองได้ในที่สุด:

ป้อนคำอธิบายรูปภาพที่นี่

ขอให้โชคดี!

in flag
มีคำถาม ฉันได้สร้างปลั๊กอิน ViewsField ภายในโมดูลของฉันที่พาธนี้ - mymodule\src]plugin\views\field\custom_comment_bulk_form.php แต่เส้นทางนี้ไม่มีการอ้างอิงที่ไหนเลย ทั้งใน hook_views_data() หรือในไฟล์ปรับแต่ง ไฟล์ปลั๊กอินที่กำหนดเองของฉันจะถูกอ่านอย่างไร
in flag
ฉันยังเห็นข้อผิดพลาด "Error: Class 'Drupal\views\Plugin\views\field\BulkForm\CommentBulkForm' not found in include()" จากปลั๊กอิน :(
in flag
นาโนเมตร มันใช้งานได้อย่างมีเสน่ห์!! ขอบคุณมาก!
in flag
หากฉันต้องการอัปเดตข้อความของการดำเนินการอื่นๆ เช่น "ลบความคิดเห็น" หรือ "ยกเลิกการเผยแพร่ความคิดเห็น" ฉันจะใช้วิธีแก้ไขปัญหาข้างต้นได้หรือไม่
Stefanos Petrakis avatar
in flag
ข้อความนี้ถูกใช้ (และแชร์) โดยการดำเนินการต่างๆ ที่มีให้ผ่านทางปลั๊กอิน CommentBulkForm ViewsField
in flag
คุณเพิ่มตัวอย่างสำหรับอัปเดตข้อความ "ลบความคิดเห็น" ได้ไหม ฉันต้องการอัปเดตเป็นหลักจากมุมมองของโมดูลดูการดำเนินการจำนวนมาก
Stefanos Petrakis avatar
in flag
นั่นจะต้องมีคำถามที่แยกต่างหาก ฉันเชื่อว่า
in flag
https://drupal.stackexchange.com/questions/308652/alter-action-processing-results-message-for-a-specific-action - ฉันเกือบจะใช้งานได้ยกเว้นว่าฉันมีเงื่อนไข คุณช่วยตรวจสอบคำถามนี้ได้ไหม ขอบใจ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา