कई क्षेत्रों में एक ब्लॉक रखें


12

क्या कोई ऐसा मॉड्यूल है जो उपयोगकर्ताओं को एक ही ब्लॉक को कई क्षेत्रों में रखने की अनुमति दे सकता है? इस तरह मुझे एक ही व्यू ब्लॉक को दो बार नहीं बनाना है।

जवाबों:


16

मल्टीब्लॉक मॉड्यूल यह संभव बनाता है:

ड्रुपल का ब्लॉक मॉड्यूल इस तथ्य से सीमित है कि एक ब्लॉक में केवल एक उदाहरण हो सकता है। प्रत्येक ब्लॉक का अपने क्षेत्र, वजन, दृश्यता (और अन्य) सेटिंग्स के साथ 1: 1 संबंध होता है। इसका अर्थ है कि कई क्षेत्रों में ब्लॉक होना या विभिन्न पृष्ठों पर अलग-अलग सेटिंग वाले ब्लॉक रखना असंभव है। मल्टीब्लॉक मॉड्यूल आपको पहले से मौजूद ब्लॉक के कई ब्लॉक इंस्टेंस बनाने की अनुमति देकर इस समस्या को हल करता है।


6

यह स्पष्ट नहीं है कि यदि आप एक ही पृष्ठ पर एक से अधिक बार एक ही ब्लॉक का उपयोग करना चाहते हैं या इसे अलग-अलग क्षेत्रों में अलग-अलग पृष्ठों पर रखना चाहते हैं। किसी भी तरह से मैं आपको संदर्भ मॉड्यूल पर एक नज़र डालने की सलाह दूंगा

संदर्भ का उपयोग करके आप अलग-अलग क्षेत्रों में अलग-अलग पृष्ठों पर एक ब्लॉक रख सकते हैं। वैकल्पिक रूप से आप 2 संदर्भ बना सकते हैं जो एक ही पृष्ठ पर लागू होते हैं और एक ही ब्लॉक को विभिन्न क्षेत्रों में रखते हैं।


2
यह ध्यान दिया जाना चाहिए कि एक ही क्षेत्र में दो बार ब्लॉक लगाने पर यह काम नहीं करता है। ऐसा प्रतीत होता है कि प्रसंग केवल प्रति क्षेत्र एक ब्लॉक की एक प्रति लगा सकता है।
जेफ


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;
}

1

मल्टीब्लॉक मॉड्यूल का उपयोग करें ।

संरचना पर जाएँ-> ब्लॉक-> उदाहरण। एक अद्वितीय उदाहरण शीर्षक दें और ब्लॉक प्रकार चुनें और सहेजें। फिर ब्लॉक को उस क्षेत्र में असाइन करके सक्षम करें जहाँ आप चाहते हैं।


2
मल्टीब्लॉक मॉड्यूल को सक्षम करने के बाद पूरी प्रक्रिया को समझाया गया है।
सायँता आचार्य चौधरी

@ श्यांतअचार्यचौधरी तब आपको दूसरे उत्तर लिखने के बजाय इसे बेहतर बनाने के लिए मूल उत्तर को संपादित करना चाहिए था।
दिनूली

0

बीन मॉड्यूल भी अब यह कार्यक्षमता है। न केवल कस्टम ब्लॉक संस्थाओं के लिए बल्कि हुक_ब्लॉक में परिभाषित ब्लॉकों के लिए भी। देव संस्करण और bean_all सबमॉड्यूल देखें।

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