2009-10-30 75 views
2

我们正在Drupal中构建一个内容非常丰富的站点。这是我第一次使用它。本网站有各种各样的部分,每个部分都有不同的布局。我计划通过phptemplate_preprocess_page()方法确定page.tpl.php。我是否正确理解Drupal区域和视图?

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

更新:

关于处理视图作为查询 - 是什么让我困惑的是,意见也有选项来修改其外观。我更喜欢如果我能从View返回节点数组,所以我可以在PHP中对数据进行操作,而不是格式化标记。那可能吗?

+0

请记住,即使您不在模板中输出块区域,仍会生成块区域,并且会降低性能。使用显示规则确保只在页面上实际使用块时才处理块。 – gapple 2009-10-31 02:45:04

+0

@ D.Pfeffer:至于执行一个视图而不呈现结果,请参阅:http://drupal.org/node/342132 – 2009-11-03 21:54:00

+2

顺便说一句,这是不是富有成效的添加一个(不同)后续问题这样的一个已经回答了问题,因为没有多少人会注意到它。在这种情况下,你应该问一个新的问题(也许链接原始的,如果仍然相关的话)。 – 2009-11-03 22:54:03

回答

3

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

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

3

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

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

这取决于你的布局结构。

1

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

+0

NonProfit,我更新了关于您的解释的问题。谢谢。 – 2009-11-03 17:13:02

+0

嗨D. Pfeffer,我建议你看看http://drupal.org/project/devel具体介绍视频http://drupal.org/files/videocasts/moshe-theme-developer.mov这是一种像Drupal的Firebug。当您将鼠标悬停在页面上的某个元素上时,此模块将提供生成它的函数以及通过它的模板(以及覆盖它的潜在模板)。它还提供了已传递的函数参数及其值。 – NonProfit 2009-11-04 15:30:29