Form Expose- View Help me!

Events happening in the community are now at Drupal community events on www.drupal.org.
dovantuyen's picture

Bạn nào có thể chỉ giúp mình :
Mình tạo một view expose thành form search user. Trong form đó có 1 textfield mình expose từ field năm của mình. Giờ mình muốn người ta nhập tuổi muốn tìm và dùng hook để tính ra năm sinh người ta muốn tìm tức là lấy năm hiện tại trừ đi giá trị trong textfield và gán lại giá trị đó vào field năm để tiến hành search.
Thanks All

Comments

Sử dụng views_query_alter đi

Nothing4ever's picture

Sử dụng views_query_alter đi bạn
Ví dụ nhé

function mymodule_views_query_alter(&$view, &$query) {
  // Only apply this where clause on the search issue project view.
  if ($view->name == 'NodeSearchByMultiField') {
    // Get the keyword used for the search.
    $text_query = isset($_GET['author_id']) ? $_GET['author_id'] : '';
   
   //Add relationship
//$view->query->add_relationship('content_field_author', new views_join('content_field_author', 'vid', 'node', 'vid','INNER'));

    // Add a new group to the query with an OR group operator.
  $view->query->add_where('alter_views_exposed_group', "node_data_field_author.field_author_nid LIKE '%%%s%%'", $text_query);
   
    $view->query->set_group_operator('AND');
 
  }
}

Thanks

dovantuyen's picture

Mình chỉ cần gán lại giá trị cho một field trước khi submit form đó thôi bạn

ebooks-downloadfree.com

Bạn thử hook_init() rồi thay

thehong's picture

Bạn thử hook_init() rồi thay đổi giá trị của $_GET coi sao - chiêu này hơi bẩn :D

Thanks Anh

dovantuyen's picture

Anh thehong có thể nói rõ hơn chút được không . Em mới vào nghề nên mấy vần đề này còn non kém quá :D

ebooks-downloadfree.com

Tạo module tên yourmodule,

thehong's picture

Tạo module tên yourmodule, rồi viết hàm này dzô :P

<?php
function yourmodule_init() {
  if (!empty(
$_GET['tuoi'])) {
   
$_GET['date_filter'] = date('Y') - $_GET['tuoi'];
  }
}
?>

Thanks anh Thehong

dovantuyen's picture

Vấn đề là em muốn user nó nhập tuổi vào đó anh và khi nhập tuổi thì mới lấy giá trị đó . date_filter=day('Y')-$_Get['tuoi'].
Nhưng do em expose field đó là định dạng em để là năm nên không thể nhập tuổi được anh ạ.

ebooks-downloadfree.com

Hook_form_alter

nhan_go1's picture

Bạn có thể hook_form_alter cũng được đó

Thanks

dovantuyen's picture

mình cũng đang hook form alter mà nhưng chưa lấy được giá trị từ text box . Tức là khi người ta nhập tuổi đó mình phải lấy được giá trị đó trước khi submit để lấy năm hiện tại trừ đi tuổi thì có năm người ta muốn tìm và gán nó vào filter năm để search :(. Đang test thử cái function của anh Thehong chưa biết kế quả sao:D

ebooks-downloadfree.com

Ban nen rewrite len form do

nhan_go1's picture

Có nghĩa lài bạn se dung form_state để lấy giá trị, sau đó rewrite lai form đó, chac chan sẽ được
ban có file name la: abc

Con khong ban co the hook form submit
Chúc bạn thành công

Thanks Nhan_go

dovantuyen's picture

không hiểu sao làm mãi vẫn chưa được nhan_go có nick yahoo or sky gì không có thẻ cho mình rồi hướng dẫn cho mình cụ thể chút đc ko? Thanks bạn nhiều!

ebooks-downloadfree.com

Skype

nhan_go1's picture

le.quang.nhan
Ban co muon hoi ji thi hoi nha

antesla's picture

Chủ topic nên gửi code của cái views vào đây. Hiện tại không có code gì ráo. Nên dẫn đến tình trạng trả lời chưa đúng ý tác giả. Và tốt hơn nữa là chụp vài cái pic đưa lên.