Drupal:来自node_reference字段的块中的内容?

时间:2010-02-17 14:30:26

标签: drupal drupal-views drupal-blocks

在与Drupal合作仅仅几周后,我提出了一个反复出现的问题,我实际上没有最佳解决方案,所以我希望这里的某个人能够提供一些最佳实践指针。

我的node.tpl.php中包含region,其中填充了显示CCK类型的两个node_reference字段内容的块。这在显示单个节点时工作正常。当我需要使用view时会出现问题。

例如,假设我有一个新闻列表和一个新闻项目视图。当我显示单个新闻项目时,我可以使用新闻节点node_reference字段来引用我希望在侧边栏中添加的任何材料,但是当我在新闻列表视图中时,我想分别引用节点。解决这个问题的最佳做法是什么?

我有一些想法,但似乎没有一个是合乎逻辑的选择,你会怎么做?

3 个答案:

答案 0 :(得分:1)

我对您的问题的理解是您不希望块显示在视图页面上,并且您希望块信息与节点内联显示。

第一部分很简单,您可以修改块可见性设置,使其不显示在您拥有视图的路径上。

第二部分取决于您如何设置视图。如果您使用的是字段,则只需添加node_reference的字段即可显示。如果使用节点视图,则必须覆盖模板并创建显示节点引用字段的模板。

如果您想进一步说明,请发表评论,我可以澄清

答案 1 :(得分:1)

在阅读我的问题后,我意识到它的解释非常糟糕,所以我会再试一次,并告诉我如何解决它。

问题
在普通的“页面”上(当只显示一个节点时),我有一个侧边栏,显示类似于横幅的东西,它们是随机的,或者我可以选择一个或多个应始终显示在侧边栏上的横幅。当使用CCK node_reference字段显示单个节点时,这很容易解决。问题是当使用显示多个节点的视图时,例如新闻列表 -

解决方案
在我的情况下,我可以通过在我的默认页面内容类型上创建其他字段来解决此问题。这些字段称为viewdisplayarguments。在我的tpl.php我然后在页面中嵌入了新闻列表视图,我们称之为新闻。这样我获得了很大的灵活性,并且还帮助新闻页面知道菜单结构中的位置。

最终评论
我还没有发现这样做是否存在任何缺点或危险,但如果有,请随时与我分享:)

答案 2 :(得分:0)

我倾向于创建自己的模块,它们创建块并直接引用数据库。然后我把块放在面板里面,这对我来说比使用视图和cck字段等更灵活......