У меня есть представление для типа контента События
с полями название события
, описание
, резюме
, event_start_date
, и т.д.
Каково мое требование:
- Расположите события в порядке возрастания
event_date больше или равно текущей дате
(Предстоящие События)
- Отсортировать события в порядке убывания
event_date меньше текущей даты
(прошедшие события)
ПРИМЕЧАНИЕ: сначала должны идти предстоящие данные, а затем прошлые данные.
например, данные и ожидаемый результат
пример данных
ожидаемый результат
Через обычные настройки интерфейса просмотра я не смог этого добиться. поэтому я попробовал views_query_alter
hook для изменения критериев сортировки. но я не мог этого добиться. Любая помощь?
Что я пробовал
/**
* Реализует hook_views_query_alter
*/
function news_t1_views_query_alter (ViewExecutable $ view, QueryPluginBase $ запрос) {
if($view->id() == 'события'){
$query->orderby[0]['field'] = "CASE node__field_st_field_st_value, КОГДА ДАТА(node__field_st_field_st_value) >= CURDATE() END";
$query->orderby[0]['direction'] = "ASC";
$query->orderby[1]['field'] = "СЛУЧАЙ node__field_st_field_st_value, КОГДА ДАТА(node__field_st_field_st_value) < CURDATE() END";
$query->orderby[1]['direction'] = "DESC";
//$view->set_items_per_page(5);
}
}
node__field_st
имя поля event_date.
Обновление после ответа @Patrick Kenny
Ваше решение отлично работает. Благодарность!. я добавил Глобально: область просмотра (Глобально: область просмотра)
в нижнем колонтитуле основного дисплея. Но есть небольшой глюк, который нужно устранить. У меня есть контекстные и открытые фильтры в главном представлении, которое унаследовано (эта часть в порядке). Но проблема в том, что заголовок повторяется на прикрепленном дисплее. любой способ избавиться от этого? скриншот прилагается.