Puncte:0

Cum să modificați interogarea vizualizărilor datei de încheiere pentru API de căutare

drapel cn
blu

Încerc să modific un filtru de dată expusă într-o vizualizare pe care am creat-o care folosește API-ul de căutare solr. Am observat că filtrul pentru data de încheiere nu funcționează decât dacă adaug o zi la data de încheiere. deci, de exemplu, dacă am următoarele noduri:

titlu data de început Data de încheiere
A 01/01/2020 01/01/2021
b 02/01/2020 02/01/2022
c 03/01/2020 03/01/2023

și folosesc un filtru expus pentru a returna data de sfârșit de 02/01/2022 cu un operator mai mic sau egal, nu va returna nodurile a și b decât dacă schimb data de sfârșit la 02/02/2022.

Sunt blocat să încerc să-mi dau seama cum să modific hook_views_query_alter() pentru a adăuga o oră (presupun că asta este greșit.).

function my_module_views_query_alter(ViewExecutable $view, QueryPluginBase $interogare) {
  if ($view->id() == 'my_solr_search' && !empty($view->exposed_raw_input['field_end_date'])) {
    $query->addWhere(0, 'field_end_date', $view->exposed_raw_input['field_end_date'] . '23:59', '<=');
  }
}

EDITARE: Acest lucru aproape funcționează, atâta timp cât nu există nicio intrare în filtrul expus pentru data de încheiere, totuși nu pot avea asta, deoarece filtrul se bazează pe intrarea utilizatorului:

function my_module_views_query_alter(ViewExecutable $view, QueryPluginBase $interogare) {
  if ($view->id() == 'my_solr_search' && !empty($view->exposed_raw_input['field_end_date'])) {
    // Cod hard data de încheiere, deoarece nu există nicio intrare.
    $end_date = DateTime::createFromFormat('m/d/Y H:i:s', $view->exposed_raw_input['field_end_date'] . ' 23:59:59');
    $group_id = $query->setWhereGroup('ȘI', NULL, 'unde');
    $query->addWhere($group_id, 'field_end_date', $end_date->format("U"), '<=');
  }
}

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.