Am o vizualizare pentru tipul de conținut evenimente
cu câmpuri numele evenimentului
, Descriere
, rezumat
, event_start_date
, etc.
Care este cerinta mea:
- Sortați evenimentele în ordine crescătoare de
data_evenimentului egală sau mai mare decât data curentă
(evenimente viitoare)
- Sortați evenimentele în ordine descrescătoare a
event_date mai mică decât data curentă
(Evenimente trecute)
NOTĂ: datele viitoare ar trebui să apară mai întâi și apoi datele trecute.
de exemplu, date și rezultate așteptate
date de exemplu
rezultat asteptat
Prin setările normale de vizualizare a interfeței de utilizare, nu am putut realiza acest lucru. asa ca am incercat views_query_alter
cârlig pentru a modifica criteriile de sortare. dar nu am putut realiza asta. Orice ajutor?
Ce am incercat
/**
* Implementează hook_views_query_alter
*/
function news_t1_views_query_alter(ViewExecutable $view, QueryPluginBase $query) {
if($view->id() == 'evenimente'){
$query->orderby[0]['field'] = "CASE node__field_st_field_st_value WHEN DATE(node__field_st_field_st_value) >= CURDATE() END";
$query->orderby[0]['direction'] = "ASC";
$query->orderby[1]['field'] = "CASE node__field_st_field_st_value WHEN DATE(node__field_st_field_st_value) < CURDATE() END";
$query->orderby[1]['direction'] = "DESC";
//$view->set_items_per_page(5);
}
}
node__field_st
este numele câmpului event_date.
Actualizare după răspunsul lui @Patrick Kenny
Soluția ta funcționează excelent. Mulțumiri!. am adaugat un Global: zona de vizualizare (Global: zona de vizualizare)
în subsolul ecranului principal. Dar există o mică eroare care trebuie eliminată. Am filtre contextuale și expuse în vizualizarea principală care este moștenit (această parte este în regulă). Dar problema este că titlul se repetă în afișajul atașat. vreo modalitate de a scăpa de asta? captură de ecran atașată.