> 백엔드 개발 > PHP 튜토리얼 > drupal7修改(添加)view 的查询条件_PHP教程

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

WBOY
풀어 주다: 2016-07-13 17:54:27
원래의
1055명이 탐색했습니다.

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


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

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

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

[php] 
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的数组元素你就会一目了然了,希望可以帮到大家。

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

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/477964.htmlTechArticledrupal的view虽然好使但是在有些情况下我们想根据自己的需求来动态的修改查询条件,这不足为过,那么接下来就告诉你一个很好的方法来修...
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿