प्रोग्रामेटिक रूप से कई ब्लॉक बनाना


9

मैं Drupal 7 के लिए एक कस्टम मॉड्यूल लिख रहा हूं। मुझे मॉड्यूल के साथ 5 अलग-अलग ब्लॉक बनाने की आवश्यकता है। ड्रुपल में हुक hook_block_infoऔर hook_block_viewहुक होते हैं जो ब्लॉक बनाते हैं। मैं कई ब्लॉक कैसे जोड़ सकता हूं क्योंकि ये हुक प्रति मॉड्यूल केवल एक ब्लॉक की अनुमति देते हैं?

जवाबों:


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():

स्थिति: (वैकल्पिक) ब्लॉक सक्षम स्थिति के लिए प्रारंभिक मूल्य। (1 = सक्षम, 0 = अक्षम)। अधिकांश मॉड्यूल एक प्रारंभिक मूल्य प्रदान नहीं करते हैं, और प्रदान किए गए किसी भी मूल्य को ब्लॉक कॉन्फ़िगरेशन स्क्रीन पर एक उपयोगकर्ता द्वारा संशोधित किया जा सकता है।

मुझे यकीन नहीं है कि आपको प्रति मॉड्यूल विचार एक ब्लॉक कहां से मिला है। आप एक मॉड्यूल में जितने चाहें उतने ब्लॉक बना सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.