Estoy tratando de modificar la condición where de una consulta de vistas. hasta ahora tuve éxito al alterar "ordenar por" , pero no tengo idea de cómo alterar la condición where . Quiero verificar search_term y si estaba en mayúsculas, transformarlo en minúsculas para que la consulta pueda encontrarlo. También hay algunos caracteres especiales en mi idioma (persa) que necesito reemplazarlos antes de que se ejecute la consulta. ¿Alguien puede ayudarme por dónde empezar o qué ganchos o vistas_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);
}
}
?>
El resultado de desarrollo para donde la condición es la siguiente en este momento. : views_combine es 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.field_book_tags.field_book_take.view_book_take.view_book_take.book_book_book_booking
@inheritdoc
Respuestas:
Puede acceder al contenido de una condición where que modifica su valor:
Bastante similar a lo que hiciste con orderby. También puede agregar condiciones de ubicación personalizadas ( https://api.drupal.org/api/views/plugins%21views_plugin_query_default.inc/function/views_plugin_query_default%3A%3Aadd_where/7 y https://api.drupal.org/api/ views / plugins% 21views_plugin_query_default.inc / function / views_plugin_query_default% 3A% 3Aadd_where_expression / 7 )
fuente
Para agregar una nueva cláusula where que pueda usar, add_where
Por ejemplo :
fuente
fuente
Prueba esto,
fuente
Puedes usar igual que
fuente