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

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

3
ฉันสามารถใช้เบ็ดอะไรสำหรับการกระทำหลังบันทึก
ฉันพบหลายบทความพร้อมคำถามเดียวกันนี้ แต่คำตอบมักจะแตกต่างจากหัวข้ออื่น ๆ ไม่เช่นนั้นจะไม่ได้ผลสำหรับความต้องการของฉัน หลังจากบันทึกโหนดฉันต้องการให้โมดูลที่กำหนดเองของฉันแทรกแถวลงในหนึ่งในตารางที่กำหนดเองซึ่งมี nid ของโหนดใหม่ เมื่อhook_node_submitมีการเรียก nid ยังไม่มีอยู่ hook_node_insertมี nid แต่ถูกเรียกเพียงครั้งแรกที่โหนดถูกบันทึก แต่ฉันอาจต้องดำเนินการทุกครั้งที่มีการบันทึกโหนด แผนของฉันคือการแยกการทำงานของฉันออกเป็นวิธีการของตัวเองและใช้ทั้งสอง hooks แต่ฉันพยายามเรียนรู้ที่จะทำสิ่งต่าง ๆ กับ Drupal อย่างเหมาะสมดังนั้นฉันจึงสงสัยว่ามีตะขอที่ตรงกับความต้องการของฉันหรือไม่ มีตะขอซึ่งเรียกว่าทุกครั้งที่มีการบันทึกโหนดและเรียกว่าหลังจากการบันทึกเสร็จสมบูรณ์หรือไม่
16 7  hooks  nodes 

2
ขอการทำสำเนาสนาม
ฉันมีโมดูลที่กำหนดเองที่กำลังฟอร์แมตการแสดงผลของฟิลด์ภาพซึ่งสามารถยอมรับค่าได้หลายค่า ฉันต้องการรู้ว่าตะขออะไรที่ฉันควรใช้เพื่อทำซ้ำค่าแรกของฟิลด์ (เช่น "[image1]") และเพิ่มกลับไปที่จุดเริ่มต้นของอาร์เรย์ (โดยarray_unshift()ฉันเดา) ก่อนส่วนที่เหลือของรูปแบบฟังก์ชั่นของฉัน แสดง / ชุดรูปแบบของฟิลด์ แล้วอะไรล่ะ [ภาพที่ 1] [ภาพที่ 2] [ภาพที่ 3] กลายเป็น [ภาพที่ 1] [ภาพที่ 1] [ภาพที่ 2] [ภาพที่ 3] จากนั้นฉันจะปรับธีมให้แยกจากกัน แต่ฉันคิดว่าฉันมีส่วนนั้นอยู่แล้ว ฉันกำลังใช้hook_field_formatter_view()งานอยู่และพยายามเพิ่มเข้าไปที่จุดเริ่มต้นของ$itemsอาร์เรย์ที่ด้านบนสุดของฟังก์ชัน แต่ดูเหมือนจะไม่ทำงาน ถ้าฉันทันทีอาร์เรย์หลังจากนี้มันแสดงให้เห็น แต่เพียง 3 รายการที่ได้รับผล; ฉันสมมติว่าจำนวนของเขตข้อมูลได้รับการพิจารณาที่อื่นdprint_r()$items
15 hooks  media  theming 

1
วิธีเขียนแบบสอบถาม Drupal 7 ด้วยคุณสมบัติ“ count” และ“ having”
ฉันไม่สามารถทำให้แบบสอบถามต่อไปนี้ทำงานได้ตามมาตรฐาน drupal7 .. ใครช่วยฉันได้บ้าง มันเร่งด่วนเล็กน้อย ... SELECT n.nid AS nid, n.title AS title, count(n.title) AS ncount FROM node n INNER JOIN taxonomy_index tn ON n.nid = tn.nid WHERE (n.type = 'test') AND (tn.tid IN( 23,37)) AND (n.title LIKE '%name%') AND (n.status = 1) GROUP BY n.nid HAVING ncount = 2
14 7  hooks  database 

3
มีมุมมองที่เกี่ยวกับ hook_node_access
ฉันใช้hook_node_access()เพื่อปฏิเสธผู้ใช้เข้าถึงบางโหนดตามเกณฑ์ที่กำหนดเอง อย่างไรก็ตามฉันไม่ต้องการให้เนื้อหานี้แสดงในมุมมองที่ระบุไว้หากผู้ใช้ไม่ผ่านเกณฑ์ มีวิธีใดบ้างที่จะให้มุมมองเกี่ยวกับhook_node_access()การใช้งานที่เคารพ?
14 views  hooks  users 

2
หากทั้งสองโมดูลกำหนดเส้นทางเมนูเดียวกันใน 'hook_menu' Drupal อันใดจะเลือก
ยกตัวอย่างเช่น "moduleone" กำหนดเส้นทาง 'admin / สวัสดี' print_moduleone_stuff()ซึ่งเอาท์พุท /** * Implements hook_menu() */ function moduleone_menu() { $items['admin/hello'] = array( 'title' => 'Module One Hello World', 'page callback' => print_moduleone_stuff, ); return $items; } "moduletwo" กำหนดเส้นทาง 'admin / สวัสดี' print_moduletwo_stuff()ซึ่งเอาท์พุท /** * Implements hook_menu() */ function moduletwo_menu() { $items['admin/hello'] = array( 'title' …
14 7  routes  hooks 

2
การปรับน้ำหนักโมดูล: อะไรคือความเสี่ยงและสิ่งที่ต้องระวัง
วันนี้ฉันเปลี่ยนน้ำหนักของโมดูลที่กำหนดเองของฉันเพื่อเปลี่ยนวิธีการดำเนินการของ hooks (hook_form_alter) ฉันเปลี่ยนน้ำหนักเป็น 1 ค่าที่หนักกว่าน้ำหนักของโมดูลอื่น ดูเหมือนว่าสิ่งที่ปลอดภัยที่สุดที่จะทำแทนที่จะให้น้ำหนักแบบ "สุ่ม" ที่ 100 โมดูลดั้งเดิมคือโมดูลหลัก (แปล) ดังนั้นฉันหวังว่าฉันจะไม่ทำลายอะไรเลย เมื่อทำการปรับน้ำหนักของโมดูลเพื่อเปลี่ยนลำดับการประมวลผลของ hooks สิ่งใดบ้างที่ควรระวังและความเสี่ยงเกี่ยวข้องอะไรบ้าง สิ่งที่ฉันคิดได้: พฤติกรรมที่ไม่พึงประสงค์จากการมีเพศสัมพันธ์สูง
14 7  hooks 

1
เพิ่มลายน้ำให้กับภาพทั้งหมดที่อัพโหลดในเว็บไซต์
ฉันพยายามเพิ่มลายน้ำให้กับรูปภาพทั้งหมดที่อัพโหลดโดยผู้ใช้ มี preprocessor สำหรับเดียวกันหรือไม่ หรือโมดูลใด ๆ เพื่อให้บรรลุมันได้หรือไม่
13 hooks  theming  media 

2
วิธีการใช้วันที่ mysql หรือเขตข้อมูลวันที่อย่างถูกต้องใน hook_schema ()?
ฉันเขียนไฟล์ mymodule.install ซึ่งมีข้อกำหนด schema เพื่อสร้างตารางในฐานข้อมูลของฉัน ตารางนี้มีสองเขตข้อมูล เขตข้อมูลเหล่านี้จะถูกเติมโดยผู้ใช้เมื่อพวกเขาจะเติมเนื้อหาเฉพาะ (ตัวอย่างเช่น: เพื่อระบุวันที่เผยแพร่สำหรับข่าว) ตอนนี้ฉันไม่ได้ใช้โมดูล Date ที่มีจุดประสงค์ทำให้ฉันต้องการให้ทั้งสองฟิลด์อยู่ในแถวเดียวกันในตารางฐานข้อมูลด้วยเหตุผลอื่น hook_schema กำหนดเขตข้อมูลทั้งสองด้วยวิธีนี้: 'pubblish_date' => array( 'description' => t('The pubblish date for the single news'), 'mysql_type' => 'datetime', 'not null' => FALSE, ), 'unpublish_date' => array( 'description' => t('The unpublish date for the single news'), 'mysql_type' => 'datetime', 'not …

7
การเปลี่ยนเนื้อหา breadcrumb
ฉันพยายามใช้เบ็ดนี้เพื่อแก้ไขลิงก์เกล็ดขนมปัง: hook_menu_breadcrumb_alter(&$active_trail, $item) ดูเหมือนว่าตะขอจะไม่ถูกเรียก ฉันได้พยายาม : การใช้เบ็ดในชุดรูปแบบ การใช้ขอเกี่ยวกับโมดูลที่กำหนดเอง (breadcrumb_finder_fix) การล้างแคชทั้งหมดด้วย Drush ฉันติดตั้งและเปิดใช้งานโมดูล Devel แล้วและสิ่งต่อไปนี้จะไม่สร้างผลลัพธ์ใด ๆ function breadcrumb_finder_fix_menu_breadcrumb_alter(&$active_trail, $item) { drupal_set_message(krumo($active_trail)); } ความคิดใด ๆ เส้นทาง? กรุณาแนะนำ OBS: ฉันได้อ่านคำตอบนี้: /drupal//a/7659/12647
13 7  hooks  breadcrumbs 

3
ตรวจสอบประเภทเนื้อหาของโหนดในส่วนประมวลผลล่วงหน้า
ฉันมีชุดของตัวแปรที่ฉันต้องการให้พร้อมใช้งานบนแม่แบบกิ่งไม้สำหรับแม่แบบเนื้อหาที่เฉพาะเจาะจง ในMYTHEME.themeฉันมี: function MYTHEME_preprocess_node(&$variables) { if (isset($variables['node'])) { $mycustomblock = \Drupal::service('plugin.manager.block') ->createInstance('myblock', []); $variables['mycustomblock'] = $mycustomblock->build(); $headertext = \Drupal::service('plugin.manager.block') ->createInstance('headertext', [ 'text-align-submit' => 'right', 'uppercase-submit' => TRUE, 'header_size' => 'h4', 'header-size-submit' => 'h4', 'grid-size-submit' => 6, 'header-title' => 'This is a test', ] ); $variables['headertext'] = $headertext->build(); } } นี้จะช่วยให้ฉันไปใช้{{ …
12 nodes  8  hooks 

5
วิธีแทนที่ชื่อหน้าตามประเภทเนื้อหา
ฉันใช้pagetitleโมดูลหลักเพื่อแสดงชื่อหน้า อย่างไรก็ตามสำหรับเนื้อหาบางประเภทที่ฉันต้องการหน้าหัวเรื่องหลักที่จะเป็นเลเบลชนิดเนื้อหา (เช่น "News") และไม่ใช่เลเบลโหนด (เช่น "Drupal 8 release!") มีวิธีง่ายๆในการบรรลุหรือไม่ การเดาครั้งแรกของฉันคือการใช้template_preprocess_page_titleแต่$variablesไม่มีบริบทใด ๆ เกี่ยวกับโหนดประเภทโหนด ฯลฯ ...
12 theming  hooks  8 

2
Webform - ส่งค่าจาก Drupal 7 จากไปยัง URL ภายนอก
ฉันเป็นมือใหม่ที่ประกาศตัวเองถึงการสร้างแบบฟอร์มใน Drupal ฉันมีแบบฟอร์มที่โฮสต์บนเว็บไซต์ Drupal 7 (ใช้โมดูล webform) และจำเป็นต้องส่งค่าฟอร์มไปยัง URL ภายนอก ฉันได้ทำการค้นคว้ามาระยะหนึ่งแล้วและเขียนโมดูลที่กำหนดเองที่ใช้โมดูลเว็บฟอร์มเพื่อส่งภายนอกโดยใช้ hook_form_alter และส่งตัวจัดการ / ฟังก์ชั่นที่กำหนดเอง (รหัสวางด้านล่าง) ฉันใช้หน้าต่อไปนี้เป็นแนวทาง แต่ฉันไม่สามารถรับแบบฟอร์มการทำงาน: https://drupal.org/node/1357136 การใช้ drupal_http_post () เพื่อส่งไปยังไซต์ภายนอก: ฉันกำลังทำอะไร ไม่ถูกต้อง? ใครช่วยบอกให้ฉันรู้ถ้าฉันถูกทาง? คำแนะนำใด ๆ จะเป็นประโยชน์! <?php function webform_extra_form_alter(&$form, &$form_state, $form_id) { //only want form with nid 1171 to submit externally //Note that "webform_client_form_1171" means modify the …
11 7  hooks  webforms  forms 

6
สร้างประเภทเนื้อหาใหม่ใน hook_install
บางคนสามารถแสดงตัวอย่างที่ถูกต้องเกี่ยวกับวิธีสร้างประเภทเนื้อหาใหม่ในวิธีการhook_installของโมดูลได้หรือไม่ ฉันยังต้องการทราบว่า / สิ่งที่ฉันควรทำในระหว่างhook_uninstallเพื่อล้างความยุ่งเหยิงของฉัน; ฉันอ่านมีการถกเถียงกันเรื่องการลบเนื้อหา ฉันไม่สามารถหาตัวอย่างของวิธีการที่เหมาะสมในการบรรลุภารกิจนี้ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม!
11 7  hooks 

2
วิธีการลบแคชหลังจากอัพเดต / ลบ / เพิ่มเนื้อหาใหม่โดยใช้ hooks?
เรามีโมดูลบริการที่กำหนดเองและเว็บไซต์ใน Drupal 7 และฉันมีหน้าที่ลบแคชหลังจากที่ผู้แก้ไขเพิ่มเนื้อหาใหม่หรืออัปเดตเนื้อหาที่มีอยู่ ฉันได้อ่านเกี่ยวกับโมดูลที่เรียกว่าCache Actionsแต่อย่างที่ฉันพูดฉันต้องสร้างฟังก์ชันในโมดูลที่กำหนดเองของฉัน นอกจากนี้ฉันได้เริ่มอ่านเกี่ยวกับ Drupal hooks แล้ว แต่ก็ยังไม่รู้ว่าจะใช้งานได้อย่างไร ข้อเสนอแนะใด ๆ ขอบคุณ
11 7  hooks  caching 

3
คำสั่งการดำเนินการ hook_form_alter
มีวิธีการเปลี่ยนลำดับของการดำเนินการของ hook_form_alter ใน Drupal 7 โดยไม่เปลี่ยนน้ำหนักของโมดูลหรือแฮ็ค Drupal Core หรือไม่? ฉันกำลังพยายามแก้ไของค์ประกอบที่เพิ่มในtranslation_form_node_form_alterจากโมดูลการแปล เมื่อตรวจแก้จุดบกพร่องแบบฟอร์มฉันไม่สามารถหาองค์ประกอบดังนั้นฉันคิดว่าเบ็ดของฉันจะถูกดำเนินการก่อนที่หนึ่งในโมดูลการแปลคือ
10 7  forms  hooks 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.