Nge-alter Query di Drupal Views ? Bisa koq....

Pertama, gue bukan jenius, jadi jelas ada yang sudah pernah bikin kayak beginian, gue juga cuman belajar dan mencoba meneruskan. Kalo yg tertarik dengan tutorial aslinya, bisa visit sendiri.

Anggap saja, gue punya module dengan nama xxx, maka di xxx.module akan tertulis seperti ini :

/**
 * Implements hook_views_api().
 */
function xxx_views_api() {
  return array(
    'api' => 3, 
    'path' => drupal_get_path('module', 'xxx'), 
    'template path' => drupal_get_path('module', 'xxx'),
  );
}

Nah berikutnya bikin file dengan nama xxx.views.inc

/**
 * Implements hook_views_query_alter().
 */
function xxx_views_query_alter(&$view, &$query) {
  if ($view->name == 'xxx_nama_views' && $view->current_display == 'page') {
    $isi_varible = fungsi_sebuah_kalkulasi();
    $query->where[1]['conditions'][4]['value'] = $isi_variable; 
  }
}

Pastikan xxx_nama_views adalah nama mesin dari view yang akan di-alter, contoh diatas mengambil page sebagai nama display yang di-alter.

Kalau bingung, coba edit viewsnya, dalam case gue dia akan keluar di path /admin/structure/views/view/xxx/edit/page. Kliatan kan yg di bold, itu nilai dari nama mesin dan nama display.

Contoh diatas adalah mengubah value dari kondisi where yang ada di views. Kalau bingung coba di print variable $query, atau kalau menurut tutorial di atas bisa memakai devel.

Good luck! Pleasantry