簡體   English   中英

如何在一個特定區域中更改Drupal 7菜單塊的輸出?

[英]How do I change the output of drupal 7 menu blocks in one specific region?

所以我在drupal 7網站的一個區域中有幾個菜單塊。 我需要將每個菜單塊包裝在<section>標記中,但不影響所有其他菜單塊。 我的想法是對區域進行預處理,檢查塊是否為菜單塊,然后如您所見,嘗試將輸出簡單地包裝在section標簽中。 有人可以告訴我我在做什么錯嗎? 這個問題使我喪命。

function mytheme_preprocess_region(&$vars){
    //checks to see if we're in the correct region
    if($vars['region'] == "footer-top"){
            //loops through every block in our region
            foreach($vars['elements'] as $key => $item){
                    $block_type = $item['#block']->module;
                    //if it's a menu block, wrap the output in section tag, this doesnt work
                    if($block_type == "menu_block"){
                            //$vars['elements']['menu_block_4']['#children'] = "<section>" . $item['#children'] . "</section>";
                            $vars['elements'][$key]['#children'] = "<section>" . $item['#children'] . "</section>";
                    }
            }
    }
}

研究塊模板。 基本塊模板位於modules / block / block.tpl.php中。 您可以覆蓋特定塊的基本模板。

基本上,您只需要在主題文件夾中創建一個新的塊模板文件。

https://drupal.org/node/1089656

function mytheme_preprocess_block(&$variables) {
  if ($variables['region'] == 'footer-top' && $variables['block']->module == 'menu_block') {
    $variables['content'] = 
            '<section>'. 
                   $variables['elements']['#children'] 
            .'</section>';

  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM