जवाबों:
मल्टीब्लॉक मॉड्यूल यह संभव बनाता है:
ड्रुपल का ब्लॉक मॉड्यूल इस तथ्य से सीमित है कि एक ब्लॉक में केवल एक उदाहरण हो सकता है। प्रत्येक ब्लॉक का अपने क्षेत्र, वजन, दृश्यता (और अन्य) सेटिंग्स के साथ 1: 1 संबंध होता है। इसका अर्थ है कि कई क्षेत्रों में ब्लॉक होना या विभिन्न पृष्ठों पर अलग-अलग सेटिंग वाले ब्लॉक रखना असंभव है। मल्टीब्लॉक मॉड्यूल आपको पहले से मौजूद ब्लॉक के कई ब्लॉक इंस्टेंस बनाने की अनुमति देकर इस समस्या को हल करता है।
यह स्पष्ट नहीं है कि यदि आप एक ही पृष्ठ पर एक से अधिक बार एक ही ब्लॉक का उपयोग करना चाहते हैं या इसे अलग-अलग क्षेत्रों में अलग-अलग पृष्ठों पर रखना चाहते हैं। किसी भी तरह से मैं आपको संदर्भ मॉड्यूल पर एक नज़र डालने की सलाह दूंगा ।
संदर्भ का उपयोग करके आप अलग-अलग क्षेत्रों में अलग-अलग पृष्ठों पर एक ब्लॉक रख सकते हैं। वैकल्पिक रूप से आप 2 संदर्भ बना सकते हैं जो एक ही पृष्ठ पर लागू होते हैं और एक ही ब्लॉक को विभिन्न क्षेत्रों में रखते हैं।
पैनलों मॉड्यूल भी आसान एक पृष्ठ पर एक ही ब्लॉक के कई उदाहरण उपयोग करने के लिए बनाता है।
यदि आपके पास साइट के लिए पहले से कस्टम मॉड्यूल है, तो आप मौजूदा ब्लॉक की सामग्री को दोहराने के लिए अपने स्वयं के ब्लॉक को परिभाषित कर सकते हैं। यह ब्लॉक सूची में दो बार दिखाई देगा
/* -------------------
custom blocks
----------------- */
/**
* Declare what blocks are provided by this module.
* Implements hook_block_info().
*/
function MYMODULE_block_info(){
$block['fibble_home'] = array(
'info' => t('fibble (home)'),
'cache' => DRUPAL_CACHE_PER_ROLE,
);
$block['fibble_members'] = array(
'info' => t('fibble (members)'),
'cache' => DRUPAL_CACHE_PER_ROLE,
);
return $block;
}
/**
* Define what our block is going to look like.
* Implements hook_block_view().
*/
function MYMODULE_block_view($block_key){
$block = array();
// tweets block to appear twice
if($block_key == 'fibble_home' || $block_key == 'fibble_members'){
//This is the title of the block.
$block['subject'] = t('Fibble');
$fblock = module_invoke('MODULE_ORIGINAL_BLOCK', 'block_view', 'ID_ORIGINAL_BLOCK');
$fcontent = render($fblock['content']);
$block['content'] = '<!-- content repeated by MYMODULE -->';
$block['content'] .= $fcontent;
}
return $block;
}
मल्टीब्लॉक मॉड्यूल का उपयोग करें ।
संरचना पर जाएँ-> ब्लॉक-> उदाहरण। एक अद्वितीय उदाहरण शीर्षक दें और ब्लॉक प्रकार चुनें और सहेजें। फिर ब्लॉक को उस क्षेत्र में असाइन करके सक्षम करें जहाँ आप चाहते हैं।
बीन मॉड्यूल भी अब यह कार्यक्षमता है। न केवल कस्टम ब्लॉक संस्थाओं के लिए बल्कि हुक_ब्लॉक में परिभाषित ब्लॉकों के लिए भी। देव संस्करण और bean_all सबमॉड्यूल देखें।