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 视图块参数的主要内容,如果未能解决你的问题,请参考以下文章