如何改变drupal-6 view-2查询

时间:2011-09-19 17:17:16

标签: drupal

我正在尝试使用drupal hook_views_pre_execute()更新视图查询 它正在更新查询,但即使我的查询只返回几个记录,在视图页面它显示底部的分页,但我已设置页面限制10.任何人都可以建议我如何解决此问题。

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;
  }
}

1 个答案:

答案 0 :(得分: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>";
    }
}