การสร้างหลายบล็อกโดยทางโปรแกรม


9

ฉันกำลังเขียนโมดูลที่กำหนดเองสำหรับ Drupal 7 ฉันต้องสร้างบล็อค 5 แบบด้วยโมดูล Drupal มีhook_block_infoและhook_block_viewhooks ซึ่งสร้างบล็อก ฉันจะเพิ่มหลายบล็อกได้อย่างไรเนื่องจาก hooks เหล่านี้อนุญาตเพียงหนึ่งบล็อกต่อโมดูล

คำตอบ:


19

รหัสต่อไปนี้น่าจะช่วยได้ เห็นได้ชัดว่าคุณจะต้องเพิ่ม 5 บล็อกของคุณตามความเหมาะสม แต่เป็นเพียงการแสดงวิธีการเพิ่มหลายบล็อกในโมดูลเดียว:

function MYMODULE_block_info() {
 $blocks = array();
 $blocks['myfirstblock'] = array(
   'info' => t('My block admin info'),
   'status' => 1,
 );
 $blocks['mysecondblock'] = array(
   'info' => t('My second block admin info'),
   'status' => 1,
 );

 return $blocks;
}

function MYMODULE_block_view($delta = '') {
  $block = array();

  switch ($delta) {
    case 'myfirstblock':
      $block = array(
        'subject' => t('My first block title'),
        'content' => t('My first block content'),
      );
      break;
    case 'mysecondblock':
      $block = array(
        'subject' => t('My second block title'),
        'content' => t('My second block content'),
      );
      break;
  }

  return $block;
}

เหตุผลที่status => 1มาจากhook_block_info()เอกสาร API:

สถานะ: (เป็นทางเลือก) ค่าเริ่มต้นสำหรับสถานะการเปิดใช้งานบล็อก (1 = เปิดใช้งาน, 0 = ปิดใช้งาน) โมดูลส่วนใหญ่ไม่ได้ให้ค่าเริ่มต้นและผู้ใช้สามารถแก้ไขค่าใด ๆ ที่ให้ไว้ในหน้าจอการตั้งค่าบล็อก

ฉันไม่แน่ใจว่าคุณได้รับบล็อกหนึ่งไอเดียต่อโมดูลจากที่ไหน คุณสามารถสร้างบล็อคได้มากเท่าที่คุณต้องการในโมดูล

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