ビュークエリのwhere条件を変更しようとしています。これまでは「order by」の変更に成功しましたが、where条件を変更する方法がわかりません。search_termを確認し、大文字であった場合は小文字に変換して、クエリで検索できるようにします。また、私の言語(ペルシア語)には、クエリを実行する前にそれらを置き換える必要があるいくつかの特殊文字があります。誰でも私がどこから始めればいいのか、どんなフックやviews_handlersを使うのを手伝ってくれる?
<?php
/**
* Implementation of hook_views_query_alter
* @param type $view
* @param type $query
*/
function nashreneydev_views_query_alter(&$view, &$query) {
//krumo($query);
//krumo($view);
if ($view->name == 'custom_search') {
$search_term = $view->exposed_raw_input['combine'];
**//$query->where[0]['conditions'][0]['field']= "?????";**
$view->query->orderby[1]['field'] = "CASE node_type WHEN 'product_display' THEN 1 ELSE 2 END";
$view->query->orderby[1]['direction'] = "ASC";
$view->query->orderby[0]['field'] = "CASE node_title WHEN '".$search_term."' THEN 1 ELSE 2 END";
$view->query->orderby[0]['direction'] = "ASC";
//krumo($view->query->orderby);
}
}
?>
where条件の開発結果は次のとおりです。:views_combineは%s%と同じです。
CONCAT_WS( ''、node.title、 ''、field_data_body.body_value、 ''、field_data_field_author.field_author_target_id、 ''、field_data_field_translator.field_translator_target_id、 ''、field_data_field_book_tags.field_book_tags_tid)LIKE:views_combine
@inheritdoc