Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何为Drupal视图创建自定义过滤器';s模块?_Php_Drupal_Drupal 6_Drupal Views - Fatal编程技术网

Php 如何为Drupal视图创建自定义过滤器';s模块?

Php 如何为Drupal视图创建自定义过滤器';s模块?,php,drupal,drupal-6,drupal-views,Php,Drupal,Drupal 6,Drupal Views,我在Drupal6站点上安装了Profile、CCK和Views2模块。我在用户配置文件中添加了一个字符串字段。我可以通过Views GUI builder轻松过滤预设值,非常好。但是,我希望根据其他环境变量(即$\u服务器['SERVER\u NAME'])动态设置筛选条件 有没有一个基本的“How-to-write-a-custom-drupal-views-filter”呢?我一直在浏览文档,但我的头脑并不清楚如何做到这一点。在查看了为我自己的站点安装的过滤器之后,有可能过滤器必须基于某个

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


有没有一个基本的“How-to-write-a-custom-drupal-views-filter”呢?我一直在浏览文档,但我的头脑并不清楚如何做到这一点。

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


话虽如此,如果您想进一步研究它,最好从一个已经提供视图过滤器的模块开始。为节点模块提供了带有视图的过滤器;或者,您可以查看还提供一些过滤器的。此外,发布到Drupal论坛或支持列表可能会出现另一个模块,允许您实现您的尝试。

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

可能还有其他(可能更好)的方法来编写一个模块来使用过滤器。因此,这只是一个建议。也可以尝试一下“视图PHP过滤器”。我还没有使用过它,但听起来值得一试

  • 按drupal用户(drupal用户名:drupdrips)

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

<?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);
}
?>

您可以使用允许按
节点id筛选视图的模块。
但是,如果您需要为
用户视图扩展此模块,则有一个补丁。
我有一个类似的问题,本文对解决此问题非常有帮助

和hook_视图_数据和官方文档


@AbhiG你试过这种方法吗?这似乎是一段有趣的代码。我应该将代码放在运算符中,替换为'