这是一个非常特别的问题,所以任何输入都将受到赞赏......
我在drupal 7站点的自定义视图模板文件中使用面板和视图。面板中嵌入了一个视图,以及下面的一些额外内容。我的视图集有3个上下文过滤器,其中的分类术语是从url中提取的。这工作正常。 所以如果我去像
那样的话/search/ford/red
它将成功提取所有具有分类术语“福特”的项目,这些项目也应用了分类术语“红色”。
但有趣的是,如果我将其中一个术语更改为词汇表中存在的某些术语,但与成功通过第一个条件的项目没有任何关系,则只会加载面板空白的站点包装器。没有任何错误,搜索过滤器框消失,分页消失,甚至视图中嵌入的其他内容也消失。
对于应用于视图的任何或所有过滤器,我选择的“如果过滤器值无法验证”操作似乎并不重要。我试图将其设置为不显示结果,但我认为它不适用,因为我也使用自定义模板文件进行视图。
我希望它没有显示结果。但我也希望它能够将搜索栏放在首位,这样用户就可以从菜单中选择不同的过滤器,以及视图中嵌入的其他内容。
搜索框是视图模板文件的自定义。它不会显示的唯一原因是视图本身是否未加载。在这种情况下,看起来整个面板都没有显示。
如果这还不够,请随时询问具体细节。感谢。
答案 0 :(得分:0)
对于未来读者遇到drupal中的许多无法解释的漏洞,这是我必须做的完全黑客来防止这个未公布的错误:
在我的自定义视图中,我必须检查$view->result
的大小,然后重新定义它,如果为空:
<?php if(sizeof($view->result) < 1): $view->result = array(0 => array()); ?>
<div class="no-results">
There are no results.
</div>
<?php else: ?>
--- normal view loop here ---
<?php endif; ?>
不,只是在结果循环中添加计数条款不起作用。我不知道drupal如何处理视图,但如果我允许结果数组为空,则不会显示该面板的内容。
向下 - 它仍然不会显示此面板中嵌入的任何其他内容,因此如果我在此下面有另一个嵌入视图,它将神秘地消失。 哦,好吧,我只是告诉管理员,除了可过滤的索引之外,他们不能用任何东西填充这个页面。 Phooey,但这就是drupal生活... POS。