程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> drupal7修改(添加)view 的查詢條件

drupal7修改(添加)view 的查詢條件

編輯:關於PHP編程

   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的數組元素你就會一目了然了,希望可以幫到大家。

注:上面的例子是我用來將時間日期轉換為時間戳的,當然你可以在這裡任意的改動

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved