drupal7修改(添加)view 的查询条件

    drupal的view虽然好使但是在有些情况下我们想根据自己的需求来动态的修改查询条件,这不足为过,那么接下来就告诉你一个很好的方法来修改view的查询条件,同时你也可以根据需求来添加查询合法的查询条件


    1、在你的模块中你要声明一个这样和钩子

           
 function modulename_views_api() {
        return array(
                'api' => 3,
                'path' => drupal_get_path('module', 'modulename') . '/',
        );
}


     2、在你的模块目录下面创建一个文件(modulename.views.inc),用来修改view的查询条件 ,里面用到一个钩子,和一个自定义方法

function modulename_views_query_alter(&$view, &$query) {
		if ($view->name == 'viewname') {
				$data = _get_views_operationinfo_time_key($query->where[1]['conditions']);
				if (count($data) > 0) {
				      foreach ($data as $d) {
					      $query->where[1]['conditions'][$d]['value'] = strtotime($query->where[1]['conditions'][$d]['value']);
					}
				}
		}
}

function _get_views_operationinfo_time_key($conditions) {
		$data = array();
		foreach ($conditions as $key => $val) {
			if ($val['field'] == 'fieldname') {
				$data[] = $key;
			}
		}
		return $data;
}

以上几个字符的意思:

     1、modulename       你的模块名字

     2、viewname              你的view的机读名字

     3、fieldname              要加条件的字段的名字,这里它是以表名.字段名来规定的

如果疑问请留言,上面的代码如果你把$query这个大数组打印出来找到下标为where的数组元素你就会一目了然了,希望可以帮到大家。

注:上面的例子是我用来将时间日期转换为时间戳的,当然你可以在这里任意的改动




  


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值