คำถามติดแท็ก hooks

ใช้สำหรับกลไกที่อนุญาตให้ขยายการทำงานของโมดูลโดยไม่ต้องแก้ไขโค้ด

3
hook_init () ยังใช้อยู่หรือไม่ หากไม่ได้ใช้อีกต่อไปฉันจะแปลงรหัสที่ใช้งาน hook_init () ได้อย่างไร
เมื่อดูที่ Drupal.org API ฉันสังเกตว่าhook_init ()ไม่ได้รับการบันทึกไว้สำหรับ Drupal 8. เมื่อดูที่บันทึกการเปลี่ยนแปลงฉันพบว่าBootstrap hooks ไม่มีอยู่อีกต่อไปซึ่งชี้ไปที่กำจัด 'bootstrap' hooksทั้งหมดที่ซึ่ง bootstrap hooks ได้รับการกล่าวถึงhook_boot()และhook_exit(); hook_init()ไม่มีอะไรจะพูดเกี่ยวกับ ฉันค้นหา hook_init ในซอร์ส Drupal 8 และฉันพบรหัสต่อไปนี้ คนแรกคือการอ้างอิงถึงhook_init()ในความคิดเห็น; อีกสองคนดูเหมือนจะhook_init()นำไปใช้ แต่พวกเขาทั้งสองได้รับพารามิเตอร์ที่ฉันไม่ได้คาดหวัง function overlay_enable() { if (strpos(current_path(), 'admin/modules') === 0) { // Flag for a redirect to <front>#overlay=admin/modules on hook_init(). $_SESSION['overlay_enable_redirect'] = 1; } } /** * …
10 8  hooks 

3
ฉันจะทำให้โมดูลใหม่เอี่ยมขึ้นอยู่กับรุ่นขั้นต่ำสุดของ Drupal 7 ที่ต้องใช้เพื่อให้ทำงานได้อย่างไร
ฉันกำลังพัฒนาโมดูลใหม่ (ไม่มีไซต์ใดที่ใช้) มันต้องมีเฉพาะรุ่น Drupal เป็นมันใช้hook_taxonomy_term_view()เบ็ดที่ถูกนำมาใช้ใน Drupal รุ่นหลัก 7.17 ฉันต้องการหลีกเลี่ยงการเปิดใช้งานโมดูลของฉันในเว็บไซต์ที่ใช้งานเช่น Drupal 7.16 หรือ Drupal core รุ่นก่อนหน้าใด ๆ Drupal เวอร์ชั่นที่สูงกว่า 7.17 ที่สูงกว่าน่าจะใช้ได้ คำถามของฉัน : ฉันจะทำให้โมดูลของฉันขึ้นอยู่กับ Drupal รุ่น 7.17 นั้นซึ่งเป็นขั้นต่ำสำหรับโมดูลของฉันได้อย่างไร หมายเหตุ: ฉันไม่ต้องการ (ไม่ต้องกังวล) โซลูชันสำหรับไซต์ที่ติดตั้งโมดูลไว้แล้ว ดังนั้นจึงไม่จำเป็นที่จะต้องปิดการใช้งานในเวอร์ชั่น 7.17 Drupal ก่อน
10 hooks 

1
ฉันจะส่งผ่านข้อมูลระหว่าง hooks ที่ไม่โต้ตอบได้อย่างไร
ฉันจะส่งผ่านข้อมูลระหว่าง hooks ที่ไม่โต้ตอบระหว่างพวกเขาหรือระหว่างการโทรกลับเมนูและ hook ได้อย่างไร ในกรณีที่ hooks สองตัวมีพารามิเตอร์เหมือนกันและพารามิเตอร์นั้นถูกส่งผ่านโดยการอ้างอิงซึ่งเป็นเรื่องง่าย ฉันจะทำอย่างไรเมื่อ hooks หรือ callback menu และ hook ไม่ได้รับพารามิเตอร์ทั่วไป
10 hooks 

1
Theme hooks vs โมดูล hooks
บางครั้งเมื่อฉันพยายามที่จะใช้ตะขอเพียงตระหนักว่ามันควรจะอยู่ในไฟล์โมดูล มีวิธีการรู้หรือไม่ว่า hooks ใดที่สามารถนำไปใช้ในไฟล์ template.php ของชุดรูปแบบหรือหนึ่งอันในโมดูล
10 hooks 

4
วิธีที่ถูกต้องในการเพิ่ม JS และ CSS ไปยังโหนด / แก้ไขและรูปแบบอื่น ๆ
ฉันกำลังสร้างเว็บไซต์ที่มี JS จำนวนมากและฉันสงสัยว่าฉันควรใส่รหัส JS ไว้ที่ใด อย่างดีที่สุดฉันต้องการให้ JS กับแต่ละโมดูลไม่ใช่เลเยอร์ธีม เนื้อหาบางอย่างอาจถูกเปิดเผยเป็นบล็อกเป็นต้น แต่ฉันมีปัญหาบางอย่างกับแคช ในตัวอย่างของฉันฉันต้องเพิ่ม JS & CSS ในแบบฟอร์มการแก้ไขโหนด ฉันใช้ hook_block_view แล้ว แต่ถูกแคชไว้ ดังนั้นหากมีข้อผิดพลาดในรูปแบบการแก้ไขโหนดฟังก์ชัน drupal_add_js & drupal_add_css จะไม่ถูกเรียกใช้ ดูเหมือนจะเป็นจริงสำหรับ hook_node_prepare คุณจะใส่ชั้น JS & CSS ที่ไหน และมี hooks ที่เรียกว่าแม้ว่าจะมีข้อผิดพลาดในแบบฟอร์มการแก้ไขโหนด?
10 theming  hooks 


2
วิธีที่ดีที่สุดในการลบตัวแปรทั้งหมดเมื่อถอนการติดตั้งโมดูล
ฉันกำลังเขียนโมดูลที่เขียนตัวแปรหลายตัว (สามสี่ตัวแปรสำหรับเนื้อหาทุกประเภทและอื่น ๆ ) ฉันควรใช้วิธีใดในการลบบน hook_uninstall ปลอดภัยหรือไม่ที่จะทำการค้นหาค้นหาตัวแปร "mymodule_ *" หรือฉันควรวนลูปสำหรับประเภทเนื้อหาและตัวแปรการค้นหาดังนั้นควรเรียกหลาย ๆ ครั้งว่า variable_del

1
Drupal ไม่ขอเรียกใช้ตะขอของฉัน
ฉันกำลังพัฒนาโมดูล แต่ hooks ที่ฉันเพิ่มไม่ได้ถูกเรียกใช้จาก Drupal มันเกิดขึ้นกับเบ็ดมากกว่าหนึ่งอัน ฉันอ่านเอกสารประกอบของ hooks และฉันไม่พบสิ่งใดที่จะอธิบายว่าทำไมสิ่งนี้ถึงเกิดขึ้น ฉันยืนยันว่าฉันใช้พารามิเตอร์ที่ถูกต้องและส่งคืนค่าที่ถูกต้อง ผมทำอะไรผิดหรือเปล่า? มีอะไรที่ฉันขาดหายไปไหม
9 hooks 

1
วิธีใช้ hook_node_presave เพื่อเปลี่ยนค่าของฟิลด์
โดยทั่วไปฉันต้องการใส่ชื่อ & นามสกุลเข้าด้วยกันใน $ node-> field_par_contact_name แต่มันเตือนฉัน (ดูด้านล่าง) ฟังก์ชัน __ode_presave ($ โหนด) { if ($ node-> type == 'หุ้นส่วน') { $ first_name = $ node-> field_par_contact_first_name ['und'] [0] ['ชื่อ']; $ surname = $ node-> field_par_contact_surname ['und'] [0] ['name']; // https://drupal.org/project/field_hidden // ตัวแปรที่ซ่อนอยู่ $ node-> field_par_contact_name ['und'] [0] ['value'] = $ …
9 hooks 

3
คุณจะโหลดไฟล์จาวาสคริปต์พิเศษที่จำเป็นสำหรับปลั๊กอิน wysiwyg api บนโหนด / แก้ไขหน้าได้อย่างไร
ฉันกำลังสร้างปลั๊กอินโดยใช้โมดูล WYSIWYG API สำหรับ Drupal 7 ที่จะเพิ่มปุ่มลงในแถบเครื่องมือของโปรแกรมแก้ไขที่รองรับ ฉันใช้hook_wysiwyg_plugin()เบ็ดเพื่อสร้างปุ่มใหม่บนแถบเครื่องมือตัวแก้ไข แต่ฉันต้องโหลดไฟล์จาวาสคริปต์อื่น ๆ hook_wysiwyg_plugin()ตะขอดูเหมือนว่าจะช่วยให้คุณสามารถระบุ JS และ CSS ไฟล์ ฉันจะโหลดไฟล์จาวาสคริปต์ที่จำเป็นต้องใช้เพิ่มเติมสำหรับปลั๊กอินจาวาสคริปต์ได้อย่างไร ฉันใช้hook_library()เพื่อกำหนดห้องสมุดเช่นไฟล์ js / css แต่ไม่แน่ใจว่าฉันขอสูงสุด wysiwyg api เพื่อให้พวกเขาโหลดบนโหนด / หน้าจอแก้ไข?
9 7  hooks  wysiwyg 

1
ฉันจะแทรก HTML ก่อนแท็กปิดเนื้อหาได้อย่างไร
ฉันกำลังมองหาวิธีที่ดีที่สุดในการแทรกเนื้อหา HTML ที่กำหนดเองลงในหน้าก่อนแท็กเนื้อหาปิดเช่นเดียวกับวิธีการdrupal_add_js()เพิ่ม JavaScript ที่ด้านล่างของหน้า ฉันมาจากพื้นหลังของ Wordpress และใน Wordpress นี้สามารถทำได้โดยใช้wp_footer()เบ็ด ฉันดูใช้hook_page_alter()แล้ว แต่ฉันสงสัยว่านี่เป็นวิธีที่ถูกต้องในการทำเช่นนี้หรือหากมีวิธีที่ดีกว่าในการทำภารกิจนี้ให้สำเร็จ
8 7  hooks 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.