11

我在 Drupal 6 站点上安装了 Profile、CCK 和 Views2 模块。我在用户配置文件中添加了一个字符串字段。我可以通过 Views GUI builder 轻松过滤预设值,非常好。但是,我希望根据其他环境变量(即$_SERVER['SERVER_NAME'])动态设置过滤条件。

那里有一个基本的“如何编写自定义drupal-views-filter”吗?我一直在查看文档,但是对于我的简单想法来说,如何做到这一点并不明显。

4

5 回答 5

3

您可以创建自己的函数,如下所示添加自己的过滤器。

<?php custom_views_embed_view($view_name, $display_id) {
$view = views_get_view($view_name);
$view->set_display($display_id);
$id = $view->add_item($display_id, 'filter', 'node', 'created',
                      array( 'value' => array('type' => 'date', 'value' => date('c')), 'operator' => '<='));
return $view->execute_display($display_id);
}
?>
于 2009-05-07T15:55:57.330 回答
1

I have a similar problem and this article has been very helpful in resolving the problem.

http://www.metaltoad.com/blog/drupal-7-tutorial-creating-custom-filters-views

And hook_views_data oficial documentation

http://api.drupal.org/api/views/docs%21docs.php/function/hook_views_data/6

于 2013-01-29T08:04:03.587 回答
0

在查看为我自己的站点安装的过滤器类型之后,有可能过滤器必须基于某个数据库字段,在这种情况下,您尝试实现的目标是不可能的。过滤器似乎为生成的 SQL 查询提供了 WHERE 子句。

说了这么多,如果你想更进一步,最好的办法是从一个已经为视图提供过滤器的模块开始。节点模块的视图提供了过滤器;或者,您可以查看还提供一些过滤器的音频模块。此外,发布到 Drupal 论坛或支持列表可能会打开另一个模块,让您实现您正在尝试的目标。

于 2008-11-13T22:18:45.270 回答
0

是的,你可以做到。尝试使用模块“视图过滤块”。一旦启用块..在查看页面时从“查看源代码”中提取块的 html。现在禁用“视图过滤器块”...创建您自己的自定义块..使用您喜欢的任何 css 添加代码使其看起来很漂亮。在此代码中,使用 php 动态指定您希望过滤器初始选择的内容。确保您实际选择了过滤器所基于的字段..然后在自定义 php 块中使用 php 代码编写 IF 条件来检查 server_name 值并相应地为过滤器变量分配正确的值。”

可能还有其他(可能甚至更好)的方法来实际编写一个模块来使用 filter 。所以这只是一个建议。也试试“Views PHP Filter”。我还没有使用它,但听起来值得一试。

  • 通过drupal用户(drupal用户名:drupdrips)
于 2009-03-05T06:52:57.350 回答
0

您可以使用viewsphpfilter允许过滤视图的模块,node id.但是如果您需要将其扩展为user views

于 2011-11-22T10:34:53.293 回答