На одном из сайтов на Drupal 8 потребовалось выводить список различных культурных мероприятий города (выставки/концерты/конкурсы/и т.д.). Список выводится с помощью модуля Views. У мероприятия есть два поля типа «Дата»: начало мероприятия и конец мероприятия. Используя эти поля, нужно было сделать фильтрацию по текущим/прошлым/предстоящим событиям. Стандартной возможности реализовать такое через Exposed Filters по полям «Дата» я не обнаружил, так что пришлось изобретать свой велосипед.
Для начала к нужным материалам добавил поле «Время» тип «Список» и задал ему значения «Прошедший», «Текущий», «Будущий», и срыл его в hook_form_alter() (сначала это было поле на ссылку термина, но тогда к SQL-запросу добавлялись таблицы словарей через JOIN, что мне не нужно). Затем в фильтрах добавил фильтр «Начало» не пусто и «Конец» не пусто, чтобы в запрос добавились эти поля (лень было разбираться с addField() :)). Ну, наконец, и сам код:
function mymodule_views_query_alter($view, $query) { if($view->id() == "konkursy_i_vystavki") { //Скинем все условия фильтра времени foreach ($query->where as &$condition_group) { unset($condition_group["conditions"][2]); } //Добавим заного $group = $query->setWhereGroup($type = 'OR'); //Прошедший if($view->exposed_raw_input['field_vrema_value'][1] == "1") { $query->addWhere($group, "node__field_konec.field_konec_value", date('Y-m-d') , '< ' ); } //Будущий if($view->exposed_raw_input['field_vrema_value'][3] == "3") { $query->addWhere($group, "node__field_nacalo.field_nacalo_value", date('Y-m-d') , '>' ); } //Текущий if($view->exposed_raw_input['field_vrema_value'][2] == "2") { $query->addWhereExpression($group, "node__field_nacalo.field_nacalo_value < = '".date('Y-m-d')."' AND node__field_konec.field_konec_value > '".date('Y-m-d')."'"); } } } |
Так как фильтр времени может иметь множественные значения, я определил его в отдельную группу: $group = $query->setWhereGroup($type = ‘OR’); — все условия, добавленные в эту группу, будут объединятся условием OR. Грубо говоря, если отметить все чекбоксы, то условие будет выглядеть так: прошедший OR текущий OR будущий. Однако у значения «Текущий» есть два условия, которые должны выполнятся (дата начала текущая дата начала в прошлом И дата конца сегодня или в будущем). Поэтому эти условия я определил не через addWhere, а через addWhereExpression(), позволяющую задавать комплексные условия.
buy prednisone online no prescription
cialis online no prescription
Acheter Levitra En Luxembourg
Dapoxetine 60mg
amoxicillin vs azithromycin
hydroxychloroquine buy online usa
cialis online reviews
whats gabapentin
where is viagra manufactured
Levitra Generika Unterschied
В данном разделе: тренажеры на сведение/разведение/сгибание/разгибание ног, комбинированные тяги, баттерфляй, мультистанции и другие.Бубновского надежный помощник для тех, кто уже знаком с его уникальной методикой оздоровления организма человека в целом через лечение и совершенствование опорно-двигательного аппарата, но по тем или иным причинам не может регулярно посещать специализированные Центры Кинезитерапии с авторскими тренажерами.Закрепите фиксатор выше уровня головы.Производитель: ООО «СБОРСПЕЦМОНТАЖ»Лягте на спину головой к фиксатору.
Кинезотерапия тренажеры бубновский супер акция от легендарного завода-производителя реабилитационных тренажеров для лечения остеохандроза . Производитель спорттоваров Happykiddi.com.ua доставку осуществляет к Вам домой по всей Украине : Днепр , Запорожье , Луцк , Николаев , Сумы , Херсон, Черкассы курьерской компанией Мист-экспресс или транспортом завода без предоплаты в течении 1-3 дней после заказа. Стоимость доставки 325 грн.
Автор разработал множество методик, каждая из которых предназначена для определенной возрастной группы.Плывем прямыми руками вперед, а потом назад.Упражнение сложное выполняйте столько сколько сможете.Первое упражнение заключается в следующем.Тренажер состоит из платформы, эластичных лент, экспандеров, гимнастических мячей, флексбаров, тренажеров баланса.
Блочные тренажеры от бубновского лучшие скидки от популярного завода спортивных тренажеров для взрослых . Производитель тренажеров и аксессуаров для лечение кинезитерапией Спортхеппи доставку осуществляет к Вам домой по всей Украине : Днепр , Запорожье , Луцк , Николаев , Ровно , Харьков , Хмельницкий курьерской компанией Гюнсел или транспортом завода без предоплаты в течении 3-4 дней после заказа. Стоимость доставки 325 грн.
Cialis Sottobanco
Viagra Effetto Collaterale
kamagras online australia alquilo kamagra farmacias kamagra
initakacciny percussion achat levitra france
Rialaíonn círéib na hAraibe don Phacastáin rátaí malairte forex. https://ie.system-forex.com
Gomgfp prednisolone during pregnancy
Multiple uidlled sacs cysts within and on the kidney. Egsunf what are the side effects of taking plaquenil? Viagra 50mg Pas Cher
Iwihev Of the individual markers of AD pathology neuritic amyloid plaques neurofibrillary tangles and diffuse amyloid plaques the strongest association was with neuritic plaques P where can i buy plaquenil without a doctor prescription PREFACE vii New clinical photographs and drawings dynamically illustrate medical terminology conditions and treatments.
Chiến lược giao dịch ngoại hối. https://vn.forex-stock-bitcoin-brokers.com
https://irongamers.ru/13-luchshix-fentezi-igr.html
buy us number online
Τα καλύτερα σήματα συναλλαγών ημέρας forex. https://gr.forex-stock-bitcoin-brokers.com
https://antonsimakin.ru/kak-ponyat-lyublyu-li-ya-sebya/
steam authenticator
купить электрический теплый пол
купить оборудование для майнинга
https://qazcrypto.kz/
ассоциация блокчейн казахстан
https://zooluxe.com/ru/kitten/
написать сумму прописью
https://irongamers.ru/sale/seller/997159
https://www.06239.com.ua/list/208204
./,.
пленка инфракрасная
ТОП 100 самых лучших фильмов смотреть онлайн.
Тут тот или иной фильм.
Фильм смотрите бесплатно на Filmix.
Mostbet app allows you to play popular online casino games.
The betting and casino site is licensed from Curacao. It is very convenient to use the
site of the Mostbet bookmaker, but you will not be able to bet on a regular basis while
sitting at the computer. Players can also use their mobile devices to access the website.
The most popular slot machines are also available on the Mostbet
website. With such a large variety, players are sure to find something they enjoy.
The official Mostbet website is a great place to find high
odds and other casino games. These impressive numbers prove that MostBet is a
reliable online on line casino and sportsbook
platform. While most sportsbook websites have the same high odds, Mostbet has a unique set of advantages that make them worth trying out.
You can also register through the mobile application (the procedure for creating an account is the same).
The Mostbet app allows you to bet on multiple sports and games
at the same time. Multiple types of gambling option are available.
[U — Обмен опытом. Общие технические РІРѕРїСЂРѕСЃС‹. Обсуждение новостей РІ РјРёСЂРµ авто.[/U — [URL=https://saabclub.xf2.site/index.php?forums/900-9-3.19/ — Автовладельцы Saab[/URL — [B — Выбор SAAB.[/B —
Смотреть онлайн полный фильм в HD 1080 фильмы онлайн.
Тут смотреть онлайн в хорошем качестве бесплатно фильмы.
В хорошем качестве 720 HD.
Фильм Буду смотреть.
Фильм смотреть онлайн бесплатно..
Кино смотреть фильмы онлайн с.
Смотреть онлайн бесплатно
в качестве HD.
україна 2025