2011-09-19 66 views
2

我試圖使用drupal hook_views_pre_execute()更新查看查詢。
它正確更新查詢,但即使我的查詢只返回幾個記錄,在查看頁面顯示底部分頁但我已設置頁面限制10.任何人都可以告訴我如何解決此問題。如何更改drupal-6查看-2查詢

function mymodule_views_pre_execute(&$view) 
{ 
    switch($view->name) 
    { 
     case 'test_merchandise': 
      $view->build_info['query'] = "MY QUERY"; 
      drupal_set_message($view->build_info['query']); 
     break; 
    } 
} 

回答

3

,如果你想查詢修改意見,然後用這個方法

function modulename_views_query_alter(&$view, &$query){ 

    if ($view->name == 'test_merchandise') { 
     //here you will get the whole $query object and alter only the place you want change 
     $query->orderby[0] = "substring(node_data_field_date_field_date_value,1,4) DESC"; 
     echo "<pre>";print_r($query);echo "</pre>"; 
    } 
} 
+2

非常感謝。這個鉤子不僅幫助我解決了我所面臨的問題,而且通過打印來理解視圖的結構。 –

+0

根據[drupal views api docs](https://api.drupal.org/comment/33563#comment-33563),這個鉤子必須放在一個名爲MODULE.views.inc的文件中,而且您可能需要添加'hook_views_api()'到您的.module文件中。 – Rustavore