0

这是一个非常特殊的问题,因此将不胜感激任何输入...

我在 drupal 7 站点的自定义视图模板文件中使用面板和视图。该面板中嵌入了一个视图,以及下面的一些额外内容。我有 3 个上下文过滤器的视图集,这些过滤器具有从 url 中提取的分类术语。这工作正常。所以如果我去类似的东西

/search/ford/red

它将成功提取所有具有分类术语“福特”且应用了分类术语“红色”的项目。

但有趣的是,如果我将其中一个术语更改为词汇表中存在的内容,但碰巧与成功通过第一个标准的项目没有任何关系,它只会加载面板空白的站点包装器。没有任何错误,搜索过滤框消失,分页消失,甚至视图中嵌入的其他内容也消失了。

对于应用于视图的任何或所有过滤器,我为“如果过滤器值未验证要采取的操作”选择什么似乎并不重要。我尝试将其设置为不显示任何结果,但我认为它不适用,因为我还在为视图使用自定义模板文件。

我希望它不会显示任何结果。但我也希望它的顶部有搜索栏,以便用户可以从菜单中选择不同的过滤器,以及嵌入在视图中的其他内容。

搜索框是视图模板文件的自定义。它不会显示的唯一原因是视图本身没有加载。在这种情况下,看起来整个面板都没有显示。

如果这还不够继续,请随时询问细节。谢谢。

4

1 回答 1

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。

于 2013-02-01T02:10:16.963 回答