drupal_get_region_content()
पिछली कॉल के साथ सेट की गई सामग्री लौटाती है drupal_add_region_content()
, लेकिन इसमें ब्लॉक की सामग्री शामिल नहीं है, जो ब्लॉक में पेज_बनाएँ () के माध्यम से प्रदान की जाती है ।
यदि आप Drupal source कोड में "drupal_add_region_content" खोजते हैं, तो आप देखेंगे कि फ़ंक्शन इसे कहते हैं:
drupal_get_region_content()
install_display_output()
template_preprocess_maintenance_page()
update_task_list()
आप प्रशासनिक पृष्ठ में ब्लॉक के लिए जो सेट करते हैं वह उन क्षेत्रों में है जहां ब्लॉक प्रदान किए जाएंगे, लेकिन उनकी सामग्री के साथ जोड़ा नहीं गया है drupal_add_region_content()
; वास्तव में, ऊपर सूचीबद्ध कार्यों में से कोई भी (जो केवल कार्य कॉलिंग हैं drupal_add_region_content()
, एक ड्रुपल इंस्टॉलेशन के परीक्षण के लिए कोड को छोड़कर) ब्लॉक सामग्री को प्रस्तुत करने / जोड़ने के लिए है।
यदि आपको अपने स्वयं के कोड में ब्लॉकों को प्रस्तुत करने की आवश्यकता है, तो आपको उपयोग किए गए कोड की जांच करनी चाहिए block_page_build()
। विशेष रूप से, यह वह कोड है जो संभवतः आपके लिए अधिक उपयोगी है:
// Fetch a list of regions for the current theme.
$all_regions = system_region_list($theme);
$item = menu_get_item();
if ($item['path'] != 'admin/structure/block/demo/' . $theme) {
// Load all region content assigned via blocks.
foreach (array_keys($all_regions) as $region) {
// Assign blocks to region.
if ($blocks = block_get_blocks_by_region($region)) {
$page[$region] = $blocks;
}
}
// …
}
पहले दो पंक्तियों को सत्यापित किया जा रहा है कि पृष्ठ दिखाया जा रहा है वह थीम पृष्ठ नहीं है जिसका उपयोग यह दिखाने के लिए किया जाता है कि थीम क्षेत्र कहां रखे गए हैं।
यदि आपको ब्लॉक को अलग तरीके से प्रस्तुत करने की आवश्यकता है, तो यह अधिक संभावित है कि आप अपने विषय में theme_block () या (और भी शायद) को ओवरराइड करने में रुचि रखते हैं । जिस तरह से ब्लॉक प्रदान किए गए हैं, उसे बदलने का एक और तरीका ब्लॉक के लिए प्रीप्रोसेस फ़ंक्शन का उपयोग करना है ( हुक_परप्रोसेस_ब्लॉक () )।
drupal_set_region_content()
क्षेत्र सामग्री सेट करने के लिए उपयोग किया है?