Ich versuche, die where-Bedingung einer Ansichtsabfrage zu ändern. Bis jetzt war es mir gelungen, "order by" zu ändern, aber ich habe keine Ahnung, wie ich den where-Zustand ändern soll . Ich möchte das search_term überprüfen und wenn es in Großbuchstaben geschrieben ist, in Kleinbuchstaben umwandeln, damit die Abfrage es finden kann. Außerdem gibt es einige Sonderzeichen in meiner Sprache (Persisch), die ich ersetzen muss, bevor die Abfrage ausgeführt wird. Kann mir jemand helfen, wo ich anfangen soll oder welche Hooks oder Views-Handler ich verwenden soll?
<?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);
}
}
?>
Das Entwicklungsergebnis für den aktuellen Zustand ist wie folgt. : views_combine entspricht% 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_t_
@inheritdoc