【发布时间】:2013-11-27 17:16:59
【问题描述】:
这是 Views 6.x-2.x 的问题:在具有许多不同视图的站点上(其中许多是包含在面板中的块,它们将参数传递给块)我想根据分类术语过滤视图访问站点的域。此过滤应该是第一个参数(分类术语)的附加内容。
该站点配置为使用不同的域,例如 example1.com 和 example2.com。我想将这些域“连接”到分类术语 45 和 115。
例如:
example1.com/my_view/1 应该显示所有具有术语 1 和术语 45 的节点。
example2.com/my_view/1 应显示具有术语 1 和术语 115 的所有节点。
我的方法是添加第二个参数(第一个是默认的分类术语 ID 参数)。作为默认参数,我在参数处理代码中使用以下片段:
<?php
// Get domain.
$host = preg_match('/[^.]+\.[^.]+$/', $_SERVER['HTTP_HOST'], $hit);
$host = $hit[0];
// Select taxonomy term.
if ($host == 'example1.com'){
$taxonomy = '45';
} elseif ($host == 'example2.com'){
$taxonomy = '115';
}
return $taxonomy;
?>
这在我使用带有路径 my_view/% 的页面显示时有效(仅使第一个参数是强制性的)。但是当我在面板中使用它时,我只会得到一个空视图(如果选择了“无上下文”)或第二个参数没有任何效果(如果选择了“第一个/所有术语的术语 ID”)。
有什么想法可能是错的吗?我真的尝试了很多。
【问题讨论】:
-
您是否启用了“发送参数”复选框?
-
感谢您的关注。我在“面板”窗格中启用了该复选框,是的。如果没有第二个参数,视图可以正常工作,这表明参数实际上是通过 Panels 传递给视图的。
-
那么,您的问题现在解决了吗?
-
不,一点也不。当我问我的问题时,我已经激活了复选框。这就是我想在上一条评论中说的。
-
对于第一个分类参数,您是否启用了“如果参数不验证要采取的操作 > 显示所有结果”?
标签: drupal drupal-6 drupal-views drupal-panels