在运行时更改块区域(Drupal 6)

时间:2012-05-24 14:35:12

标签: drupal drupal-6

我有侧边栏,有一堆不会在移动主题中呈现的块。但我需要在移动主题的自定义区域中呈现其中一些。 尝试:

mytheme_preprocess_block(&$vars) {
  $vars['block']->region = 'my_region';
}
由于某种原因,我的page.tpl.php中的$ my_region变量为空。该块具有内容和区域,已定义且有效。 切换块位置的解决方案是什么?非常感谢!

1 个答案:

答案 0 :(得分:0)

是否真的需要这样显示它们?

在my_region中使用自定义模块和hook_block()添加块。

根据模块本身的移动主题条件,使用自定义php代码显示所有块内容。

如果块是视图类型,请使用以下代码打印视图内容:

    

    $view = views_get_view('view name');
    $view->set_display('block_1'); //or the block id in the view
    $view_block = $view->execute_display('block_1', array()); 
    //pass any arguments if any in the second argument
    print $view_block['content'];

如果它只是block类型,请使用:


    $block = module_invoke('module_name["block" for blocks created from web interface]', 'block', 'view', 'delta');

    print $block['content'];

如果这令人困惑,请告诉我。