Score:3

จะไม่แสดงข้อความ "สร้างแล้ว" ได้อย่างไร

ธง kz

ฉันต้องการลบข้อความที่ส่งออกในพื้นที่ข้อความเมื่อมีการสร้างโหนดใหม่ ข้อความทั่วไปอาจมีลักษณะดังนี้

"บทความ บทความของฉันถูกสร้างขึ้นแล้ว"

ฉันตรวจสอบโหนดใน hook_node_insertและเมื่อเป็นไปตามเกณฑ์ที่กำหนด ฉันต้องการลบข้อความหรือป้องกันไม่ให้ข้อความปรากฏ

ฉันได้ลองใส่สิ่งต่อไปนี้ hook_node_insert:

 $messages = \Drupal::messenger()->ทั้งหมด();
 dpm($messages, 'ข้อความ');

มันส่งออกอาร์เรย์ว่าง: ข้อความ => [].

คำถามที่คล้ายกันนี้สำหรับ Drupal 7 ฉันจะเปลี่ยน/แก้ไขข้อความอัปเดตเนื้อหาได้อย่างไร แนะนำ hook_message_alter(). ฉันไม่พบสิ่งนั้นหรือสิ่งทดแทนสำหรับ Drupal 9

มีคนแนะนำว่าสิ่งนี้ซ้ำกับ ฉันจะเปลี่ยนข้อความระบบโดยทางโปรแกรมได้อย่างไร

ฉันไม่คิดว่ามันซ้ำกัน แต่คำถามนั้นมีคำตอบเดียวที่เป็นประโยชน์ต่อกรณีการใช้งานของฉัน ที่สุด คำตอบไม่เหมาะสำหรับคำถามนี้ ดังนั้นฉันเชื่อว่าคำถามของฉันนำเสนอปัญหาที่มุ่งเน้นมากขึ้นและสมควรเปิดประเด็นต่อไป

ฉันอ่านคำตอบทั้งหมดแล้ว นี่คือสิ่งที่ฉันค้นพบว่าเหมาะสมเพียงใด นี้ คำถาม:

  • ที่ได้รับการยอมรับ (ใช้ \Drupal::messenger()->deleteAll();) ไม่ทำงานเมื่อใส่เข้าไป hook_node_insertและไม่มีการแนะนำตำแหน่งอื่น

  • หนึ่ง upvoted มากที่สุด (ใช้ hook_preprocess_status_messages) ไม่ติดไฟ หลังจาก ส่งแบบฟอร์มการสร้างโหนดแล้วและไม่มีผลกระทบใดๆ

  • เพื่อใช้แฮ็ค $เซสชัน ตัวแปร (unset($SESSION['_symfony_flashes']['status'][0]);) ไม่ทำงาน hook_node_insertและไม่แนะนำตำแหน่งอื่น

คำตอบจาก Achraf JEDAY โดยมีการโหวต 1 ครั้งก่อนหน้าของฉันในวันนี้ (การเพิ่มตัวจัดการการส่งแบบกำหนดเองไปยังแบบฟอร์มการสร้างโหนด) ใช้งานได้ คูโดส

นี่เป็นคำตอบที่ยอมรับ (จาก Patrick Kenny) ที่นี่

4uk4 avatar
cn flag
@FreeRadical ฉันไม่รู้ว่าคุณหมายถึงอะไรโดยปลาเฮอริ่งแดง หัวข้อตรงนั้นกว้างกว่าและมีอายุหลายปี มันพัฒนาโดยการแนะนำบริการ Messenger ใหม่และคุณต้องอ่านหัวข้อทั้งหมดหากคุณต้องการสรุปที่คุณสรุปไว้ที่นี่ในคำถาม
4uk4 avatar
cn flag
ฉันไม่รู้สำนวนว่าปลาเฮอริ่งแดง แต่อ่านดูเหมือนคุณไม่ยอมรับความพยายามของแต่ละคนที่เข้าร่วมเพื่อพัฒนาหัวข้อ ซึ่งกว้างกว่าหัวข้อนี้ BTW การลงคะแนนครั้งแรกสำหรับคำตอบล่าสุดมาจากฉันเมื่อฉันอ้างถึงในความคิดเห็นของฉัน คำตอบที่ล่าช้ามักจะมีคะแนนโหวตน้อยเพียงเพราะพวกเขาสายเกินไปที่จะได้รับความสนใจมาก แต่สิ่งนี้สามารถเปลี่ยนแปลงได้ตลอดเวลาเมื่อคนอย่างเราลงคะแนน
Free Radical avatar
kz flag
"ปลาเฮอริ่งแดง" เป็นสำนวนภาษาอังกฤษ หมายถึง สิ่งที่เบี่ยงเบนความสนใจจากสิ่งที่เกี่ยวข้องกับการตอบคำถามเฉพาะ ฉันไม่ได้มีเจตนาที่จะดูหมิ่นคำตอบในคำถามที่เชื่อมโยง - เพียงเพื่อบอกว่าคำตอบส่วนใหญ่ไม่เกี่ยวข้องกับ *คำตอบนี้* ฉันลบวลีออกเนื่องจากคุณคัดค้าน
Free Radical avatar
kz flag
@NoSssweat ใช่หนึ่งในคำตอบที่ใช้ได้ผล แต่มีหลายอย่างที่ไม่ได้ช่วยในกรณีการใช้งานเฉพาะของฉัน รวมถึงคำตอบที่ได้รับการยอมรับและได้รับการโหวตมากที่สุดฉันได้เพิ่มข้อความในคำถามที่ฉันแสดงความคิดเห็นว่าคำตอบเหล่านี้เหมาะสมกับกรณีการใช้งานของฉันเพียงใด
Score:3
ธง cn

หากคุณต้องการเพิ่มข้อความที่กำหนดเองใน hook คุณสามารถล้างข้อความและเพิ่มข้อความที่กำหนดเองได้ วิธีนี้ง่ายและรวดเร็ว และสามารถทำได้ในตะขอส่วนใหญ่

ขออภัย สิ่งนี้ใช้ไม่ได้กับ hook_node_insert()ดังนั้น อีกทางเลือกหนึ่งคือการเพิ่มตัวจัดการการส่งที่กำหนดเองไปยังแบบฟอร์มการสร้างโหนดและเรียกใช้บริการ Messenger แบบคงที่:

  \Drupal::messenger()->deleteByType('สถานะ');
  \Drupal::messenger()->addMessage(t('ข้อความที่กำหนดเองใหม่ของฉัน'));

สิ่งนี้จะยุ่งเหยิงมากหากคุณเขียนทับข้อความจำนวนมาก แต่ถ้าคุณต้องการเปลี่ยนเพียงบางส่วน นี่คือแนวทางที่ฉันใช้

Score:2
ธง kz

ฉันยอมรับและโหวตคำตอบของ Patrick Kenny แล้ว เนื่องจากให้คำตอบ 99%

อย่างไรก็ตาม ฉันตระหนักว่าฉันต้องการสิ่งนี้ด้วยเช่นกัน:

ฉันตรวจสอบโหนดใน hook_node_insertและเมื่อเป็นไปตามเกณฑ์ที่กำหนด ฉันต้องการลบข้อความหรือป้องกันไม่ให้ข้อความปรากฏ

สิ่งนี้ถูกเพิ่มเข้าไปในคำถาม หลังจาก Patrick Kenny ตอบ แต่สำหรับคนที่สนใจว่าขั้นตอนสุดท้ายนี้ได้รับการแก้ไขอย่างไร:

  1. หากตรงตามเกณฑ์ที่กำหนดให้ใส่ข้อความแสดงข้อผิดพลาด \Drupal::messenger()->addError(t('ข้อผิดพลาด'));
  2. ตรวจหาข้อความแสดงข้อผิดพลาดในตัวจัดการการส่ง และถ้ามี ให้ลบข้อความแสดงสถานะที่ไม่ต้องการ

โว !

โพสต์คำตอบ

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