Estou tentando modificar a condição where de uma consulta views. até agora, tive sucesso em alterar a ordem de "" , mas não tenho idéia de como alterar a condição where . Quero verificar o termo de pesquisa e, se estiver em maiúsculas, transformá-lo em minúsculas para que a consulta possa encontrá-lo. também existem alguns caracteres especiais no meu idioma (persa) que eu preciso substituí-los antes que a consulta seja executada. alguém pode me ajudar por onde começar ou quais ganchos ou views_handlers usar?
<?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);
}
}
?>
o resultado do desenvolvimento para onde a condição é a seguinte agora. : views_combine é igual a% 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.id:
@inheritdoc
Respostas:
Você pode acessar o conteúdo de uma condição where modificando seu valor:
Bem parecido com o que você fez com orderby. Além disso, você pode adicionar condições where personalizadas ( https://api.drupal.org/api/views/plugins%21views_plugin_query_default.inc/function/views_plugin_query_default%3A%3Aadd_where/7 e https://api.drupal.org/api/ views / plugins% 21views_plugin_query_default.inc / function / views_plugin_query_default% 3A% 3Aadd_where_expression / 7 )
fonte
Para adicionar uma nova cláusula where, você pode usar, add_where
Por exemplo :
fonte
fonte
Tente isso,
fonte
Você pode usar como
fonte