【问题标题】:Am I understanding Drupal regions and views correctly?我是否正确理解 Drupal 区域和视图?
【发布时间】:2009-10-30 18:10:35
【问题描述】:

我们正在 Drupal 中构建一个内容非常丰富的网站。这是我第一次使用它。该站点有多个部分,每个部分都有不同的布局。我打算通过 phptemplate_preprocess_page() 方法确定 page.tpl.php。

我的问题是如何最好地指定在给定页面中放置不同次要内容块的位置。我们有很多侧边栏类型的组件,每个都有几个小列表或图像组。我认为这里最好的方法是根据需要定义多个区域并将自定义视图(使用 Views 模块)放入这些区域。这看起来合理吗?

更新:

关于将视图视为查询 - 让我感到困惑的是,视图也有修改其外观的选项。如果我可以从 View 中获取一组节点,我更喜欢这样我可以在 PHP 中操作数据,而不是格式化标记。这可能吗?

【问题讨论】:

  • 请记住,即使您不在模板中输出块区域,它仍然会生成,并且会降低性能。使用显示规则确保只有在页面上实际使用块时才会处理它们。
  • @D.Pfeffer:关于执行视图而不渲染结果,请参见:drupal.org/node/342132
  • 顺便说一句,将这样的(不同的)后续问题添加到已经回答的问题中并不是很有成效,因为没有多少人会注意到它。在这种情况下,您应该提出一个新问题(如果仍然相关,可以链接原始问题)。

标签: drupal drupal-views drupal-blocks drupal-regions


【解决方案1】:

为了扩展 Rishavs(正确)的答案,块是填充区域的“标准”元素。 page.tpl.php 中的区域定义了广泛的通用布局(例如标题、一些列/侧边栏和页脚 - 您需要的任何内容)。在一个区域内,您可能只放置一个东西(例如一个视图),但通常更多是以几个块的形式。它们在区域中出现的顺序由块的权重决定。

您可以通过将块类型的显示添加到“基本”视图定义中来直接在视图模块中创建块。此外,您定义的每个菜单都将作为一个块提供。在自定义模块中创建自己的块也非常简单,让您可以完全控制其内容(参见hook_block())。这样,例如,您可以将表单放入块中(标准 Drupal 安装的登录块就是一个例子)。

【讨论】:

    【解决方案2】:

    是的,您可以使用自定义区域,并将自定义视图放入其中。

    您甚至可以使用创建自定义块并在其中使用视图。

    这取决于你的布局结构。

    【讨论】:

      【解决方案3】:

      视图(内容列表)是数据库查询。区域是页面的一个区域(左侧边栏、页脚等)。区域在页面模板(tpl.php)中分配,并且会根据您使用的主题而有所不同。通常,次要内容(包括但不限于视图)通过块放置。块在分配到区域时显示(“右侧栏中”中的“新用户”)。此外,视图也可以嵌入到页面模板中(区域内外)。

      【讨论】:

      • NonProfit,我更新了关于您的解释的问题。谢谢。
      • 嗨 D. Pfeffer,我建议您查看 drupal.org/project/devel 特别是介绍视频 drupal.org/files/videocasts/moshe-theme-developer.mov 这有点像 Drupal 的 Firebug。当您将鼠标悬停在页面上的元素上时,此模块将提供生成它的函数以及传递它的模板(以及将覆盖它的潜在模板)。它还提供了已传递的函数参数及其值。
      猜你喜欢
      • 2020-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-29
      • 1970-01-01
      • 2011-05-05
      • 2020-11-22
      • 2011-01-29
      相关资源
      最近更新 更多