如何在Drupal中的两个块中显示一个块?

时间:2012-03-15 05:55:36

标签: php drupal drupal-7 drupal-theming

我有两个块(比如Block1和Block2),我必须在两个块中显示一个块。如果Block2不在那里,条件是Block1将显示在整个站点中。块2将被显示到动态控制的特定页面中,即,当用户将来创建内容时,它们可以控制块2显示。所以我需要显示Block1不存在的Block1。

我正在使用Durpal 7。

注意:我尝试过使用默认的块可见性,但这对我来说也不起作用。

1 个答案:

答案 0 :(得分:2)

你可以通过多种方式做到这一点。

在主题的template.php文件中使用template_preprocess_page()。 您需要在页面上打印2个块。 Block1和Block2。 我假设Block1位于region_1,block_2位于region_2,主题名称为mytheme。

在主题的template.php文件中的template_preprocess_page()函数内:

function mytheme_preprocess_page(&$variables)
{
    if(isset($variables['page']['region_2']['block2']))
    {
        hide($variables['page']['region_1']['block1']);
    }
}

这样,如果存在Block2,则永远不会打印Block1。

希望它有所帮助,

穆罕默德。