【问题标题】:Drupal: How to display block/region in views page?Drupal:如何在视图页面中显示块/区域?
【发布时间】:2011-01-18 12:46:43
【问题描述】:

我有一个查看页面,其中包含我的一种内容类型的列表。我使用views-view-list--<name of my view>.tpl 为页面设置主题。但是,我定义的区域/块没有显示。在其他页面上它工作正常,但在视图页面上却不行。我正在尝试在我定义的区域中显示user login block

请告诉我如何访问我的user login block 或我的区域以显示在我的视图中。

非常感谢您的帮助。顺便说一句,我正在使用drupal 6。

最好的问候,

【问题讨论】:

    标签: php drupal drupal-6 drupal-views


    【解决方案1】:

    我想我昨天遇到了类似的事情。我试图打印一个区域,例如

    <?php print $footer ?>
    

    但在来自视图的 tpl 文件中 - 无论出于何种原因,它都不会从视图 tpl 文件之一输出区域。

    我使用了这个代码:

    <?php print theme('blocks', footer); // change "footer" to the name of your region ?>
    

    【讨论】:

    • 感谢为我节省了一些时间。
    【解决方案2】:

    在我写这篇文章时,在 D7 中一种更安全且可能被推荐的方法是:

    <?php 
      $region = block_get_blocks_by_region('footer') //first define the block;
      print render($region) // then print the block; 
    ?>
    

    我尝试了@Garry,但我从 Drupal 收到了一些错误。 Please see here

    希望这可以帮助某人。

    【讨论】:

      【解决方案3】:

      drupal 中的任何页面都有基于 url 或内容类型的页面模板。因此,您必须为要显示视图页面/块的页面创建正确的页面模板。我假设您正在使用基于 url 的页面模板

      【讨论】:

      • 我正在使用 template.php。你是这个意思吗?我对“基于 url 的页面模板”有点困惑。我怎样才能做到这一点?也许,这就是我需要的。
      【解决方案4】:

      这对我有用,除了上面的语法在 () 之后需要分号;例如打印渲染($region);否则谢谢你的回答

      【讨论】:

        【解决方案5】:

        考虑到“广告牌”区域托管广告,这就是带有 Bootstrap - HTML 标记的 Drupal 7 的 sn-p 的工作方式:

                  <aside class="col-xs-0 col-sm-12 role="banner"> 
                    <?php
                        $region = block_get_blocks_by_region('billboard');
                        print render($region);
                        ?>
                  </aside>
        

        【讨论】:

        • 您已发布此内容作为答案,但您似乎打算提出一个单独的问题。如果您犯了错误,请创建一个新问题并删除此答案,否则请编辑您的答案。
        • 确实,我将它作为如何使用 sn-p 的答案/示例发布,但同时显示条件语句的问题。我将编辑我的回复并发布一个新的。感谢您为我澄清这一点。
        猜你喜欢
        • 2023-03-12
        • 1970-01-01
        • 1970-01-01
        • 2022-10-08
        • 1970-01-01
        • 1970-01-01
        • 2022-01-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多