drupal 视图块参数

Posted

技术标签:

【中文标题】drupal 视图块参数【英文标题】:drupal views block arguments 【发布时间】:2010-04-20 17:18:15 【问题描述】:

我目前有一个视图(使用 Views2 的 Drupal 6)可以正确聚合自定义内容类型(视频)并过滤它们以显示页面。当我创建块显示时,它在实时预览中预览结果非常好,但是当我转到希望看到块的页面时它没有出现。

我相当确定我试图传递的参数失败了,因为当我选择“显示所有结果”作为“如果参数不验证时要采取的措施:”时,该块会很好地显示在页面上。

任何建议都非常感谢。

【问题讨论】:

如何将参数赋予块?通过 url 还是在 tpl.php 中打印视图并传递参数? 我想我正在通过 url 传递它,在块显示上我添加了一个 Term 参数,然后我提供了一个默认参数,该参数设置为来自 URL 的分类术语 ID。但它似乎不像我期望的那样工作,在实时预览中工作得很好,只是在我浏览页面时不行。 所以该块正在分类列表页面上显示? 我放弃了尝试放置一个块,而只是设置了页面显示的样式。 【参考方案1】:

您可以在“提供默认参数”部分中使用 PHP 代码。假设您使用菜单回调来应用参数,您可以这样做:

<?php

if(args(0) == 'your-menu-path' && args(1) != '')
    return args(1)


?>

如果您使用它在页面上放置视图,请确保将默认参数传递给“views-embed-view()”,否则它根本不会显示。

【讨论】:

【参考方案2】:

在 Drupal 7 中,要找出您所在的节点,请按照corneliusk 的回答将其设为默认参数。但是,不要包含 php 标签,对于 d7,它只是“arg”而不是“args”。例如:

if(arg(0) == 'node' && arg(1) != '')
    return arg(1);

else 
  return "";

【讨论】:

以上是关于drupal 视图块参数的主要内容,如果未能解决你的问题,请参考以下文章

使用ajax将参数发送到drupal视图

Drupal 6:使用视图的相关“位置”

Drupal 视图过滤使用一个分类术语并使用参数添加另一个过滤器

Drupal,在自定义 php 页面上嵌入视图块/结果

使用drupal 7的视图块中未显示图像

如何在 Drupal 视图块中自定义 HTML 结构