วิธีตั้งค่านามแฝง URL โดยอัตโนมัติสำหรับประเภทเนื้อหาโดยไม่ใช้ Pathauto ตะขอตัวไหนที่จะใช้


11

Pathauto สามารถทำงานได้อย่างง่ายดายสำหรับเนื้อหาทุกประเภท แต่ในกรณีของฉันฉันมี URL ประเภทเนื้อหาเดียวที่ต้องปรับแต่งและฉันไม่ต้องการติดตั้ง Pathauto และ Token

ใครช่วยแนะนำฉันได้อย่างไร


2
ช่วยตัวเองด้วยอาการปวดหัวและใช้เส้นทางเดิน ปัญหานี้ได้รับการแก้ไขแล้วทำไมจึงแก้ไขได้ Pathauto ทำให้เกิดประสิทธิภาพการทำงานเมื่อคุณบันทึกโหนดเท่านั้น (และแม้แต่น้อยที่สุดเท่านั้น)
Matthew Scharley

4
เนื่องจากเราสามารถสร้าง URL ที่ดีกว่า pathauto และหากคุณต้องการเพียงแค่สร้าง URL สำหรับหนึ่งหรือสองประเภทคุณสามารถกำจัดสองโมดูลโดยการใช้เบ็ดเดียว นอกจากนี้การนำเข้าจำนวนมากค่อนข้างช้า (และแม้กระทั่งบางจุดโดยส่วนตัวก็เพียงปฏิเสธที่จะนำเข้าสิ่งใด ๆ หลังจาก 400 โหนด) ในขณะที่สคริปต์ cron / กลุ่มน้ำหนักเบาของฉันจัดการเพื่อนำเข้า 500 โหนดต่อวินาทีซึ่งค่อนข้างดีเมื่อคุณมี 100k โหนดเพื่อสร้างสมนาม
wildpeaks

คำตอบ:


12
/**
 * Implements hook_node_insert()
 */
 function mymodule_node_insert($node) {
   if ($node->type == 'mytype') {
     $node->path['alias'] = 'mytype/' . $node->nid;
   }
 }

นอกจากนี้คุณอาจเพิ่มรหัสนี้ลงใน hook_node_update ()


1

ดูหน้า 149 การพัฒนา Pro Drupal ใช้ hook_insert () เมื่อมีการบันทึกโหนดใหม่ hook_insert () จะถูกเรียกใช้ นี่เป็นสถานที่จัดการการประมวลผลแบบกำหนดเองของเนื้อหาของโหนดก่อนที่จะบันทึกโหนด ดูที่ p 152-156 การพัฒนา Drupal Pro ซึ่งพูดถึงฟังก์ชั่น hook_node_xxxx () ที่แตกต่างกันทั้งหมด

ฉันคิดว่าการใช้ hook_node_insert () ตามที่แนะนำในคำตอบก่อนหน้านี้จะส่งผลให้ hook เป็นการสร้างโหนดทั้งหมดซึ่งจะไม่ตอบสนองความต้องการของคุณในการแก้ไขประเภทเนื้อหาที่เฉพาะเจาะจง


ดูสิ่งที่รายงานในhook_insert ()ซึ่งมีประโยคต่อไปนี้: "hook นี้ถูกเรียกใช้เฉพาะในโมดูลที่กำหนดประเภทเนื้อหาของโหนด (ใช้hook_node_insert()เพื่อดำเนินการกับการแทรกโหนดทั้งหมด)"
kiamlaluno
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.