我在Drupal 6站点上安装了Profile,CCK和Views2模块。我在用户配置文件中添加了一个字符串字段。我可以通过Views GUI构建器轻松过滤预设值,非常好。但是,我希望根据其他环境变量(即$_SERVER['SERVER_NAME']
)动态设置过滤条件。
那里有某个基本的'如何编写自定义drupal-views-filter'?我一直在寻找文档,但对于我的简单思维来说,如何做到这一点并不明显。
答案 0 :(得分: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);
}
?>
答案 1 :(得分:1)
我遇到了类似的问题,本文对解决问题非常有帮助。
http://www.metaltoad.com/blog/drupal-7-tutorial-creating-custom-filters-views
和hook_views_data官方文档
http://api.drupal.org/api/views/docs%21docs.php/function/hook_views_data/6
答案 2 :(得分:0)
考虑到为我自己的网站安装的那种过滤器,有可能过滤器必须基于某些数据库字段,在这种情况下,你想要实现的是不可能的。似乎过滤器为生成的SQL查询提供WHERE子句。
说了这么多,如果你想进一步追求它,最好的办法是从一个已经为视图提供过滤器的模块开始。有针对节点模块的视图提供的过滤器;或者,您可以查看audio module,它也提供了一些过滤器。此外,发布到Drupal论坛或支持列表可能会打开另一个模块,让您实现您正在尝试的目标。
答案 3 :(得分:0)
可能还有其他(可能更好)的方法来实际编写模块来使用过滤器。所以这只是一个建议。还试试看“PHP过滤器”。我还没有使用它,但听起来值得一试。
答案 4 :(得分:0)
您可以使用viewsphpfilter
模块,该模块允许按node id.
进行过滤视图,但如果您需要为user views