Score:0

ฉันจะปิดการใช้งาน URL เหล่านี้ได้อย่างไร

ธง cn

ใน Drupal 7 URL ต่อไปนี้แสดงโหนดเดียวกัน

สิ่งนี้จะไม่เกิดขึ้นใน Drupal 8

URL เหล่านั้นจะถูกปิดใช้งานได้อย่างไร?

Score:1
ธง us

เมื่อผู้ใช้พยายามเข้าถึงเส้นทางที่ไม่มีอยู่ เช่น /node/5/random-text-2 Drupal จะแสดงหน้าหลัก ยิ่งไปกว่านั้น มันจะแสดงหน้าสำหรับเส้นทางแรกจากเส้นทางต่อไปนี้ที่มีอยู่ (% เป็นอักขระตัวแทน ใช้สำหรับเส้นทางที่กำหนดจากโมดูล)

  • โหนด/5/%
  • โหนด/%/ข้อความสุ่ม-2
  • โหนด/%/%
  • โหนด/5
  • โหนด/%
  • โหนด

โดยปกติ Drupal จะแสดงหน้าสำหรับ node/5 (ซึ่งถือเป็นหน้าหลักสำหรับ node/5/random-text-2) แต่เมื่อโมดูลกำหนดหน้าสำหรับ node/%/% Drupal จะแสดงหน้านั้นแทน .

โมดูลสามารถเพิ่ม hook_menu() การดำเนินการคล้ายกับต่อไปนี้

ฟังก์ชัน mymodule_menu () {
  $items['node/%/%'] = อาร์เรย์(
    'page callback' => 'mymodule_page',
  );

  คืนสินค้า $;
}

mymodule_page() สามารถแสดงข้อผิดพลาด 404 หรือ 403 ได้

ฟังก์ชัน mymodule_page() {
  // ส่งคืนข้อผิดพลาด 404
  กลับ MENU_NOT_FOUND;
}

สิ่งนี้จะหยุดไม่ให้ Drupal แสดงหน้าโหนดทุกครั้งที่ผู้ใช้เข้าถึงเส้นทางเช่น node/[node-id]/[random-string] โดยที่สตริงสุ่มไม่ตรงกับเมนูใดๆ ที่กำหนดจากโมดูลใดๆ (เช่น ถ้า [สุ่มสตริง] เท่ากับ แก้ไข, Drupal จะแสดงแบบฟอร์มการแก้ไขโหนด)

การส่งคืนข้อผิดพลาด 403 นั้นง่ายกว่า การใช้ hook ต่อไปนี้ โมดูลจะได้รับสิ่งนั้นโดยไม่ต้องเขียนโค้ดมากนัก (ยกเว้นฟังก์ชันว่างสำหรับการเรียกกลับหน้า)

ฟังก์ชัน mymodule_menu () {
  $items['node/%/%'] = อาร์เรย์(
    'page callback' => 'mymodule_page',
    'เข้าถึงการโทรกลับ' => FALSE
  );

  คืนสินค้า $;
}

โพสต์คำตอบ

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