Наборы, фильтр по полю Дата

InstantCMS 2.X
#16 13 апреля 2018 в 19:27

2018-06-07 тоже есть.

Jestik
Логично. 7 июня 18-го будет через два месяца.
#17 13 апреля 2018 в 20:21
Ris, так а:
  1. FORCE INDEX FOR ORDER BY (dataset_week)
Или я уже совсем потерял нить)
#18 13 апреля 2018 в 20:23
Jestik,
Не-не. У Вас в поле dateof дата из будущего.
#19 13 апреля 2018 в 20:30
Ris, так а как реализовать фильтр, что бы показывались записи которые будут в течении 7 дней скажем? а те что позже скрыть?
#20 13 апреля 2018 в 20:34
Jestik,
Если хотите, чтобы в результатах не было записей из будущего — делайте так:


@Elv,
Посетите нарколога, пожалуйста.
Результаты обследования — сюда.
#21 13 апреля 2018 в 20:44
Ris, наверно все таки не поняли меня)

Дата публикации это дата когда материал добавлен на сайт. У меня есть еще одно поле типа "Дата" в котором я выбираю в какое время будет проводится мероприятие. И вот хотелось бы что бы можно было сортировать по этому самому полю, что бы при этом все записи были опубликованные. Что бы можно было посмотреть что будет на этой неделе, а что через месяц и позже.

И у меня кстати одно и то же поле не дает выбрать два раза
#22 13 апреля 2018 в 20:52

Ris, наверно все таки не поняли меня)

Jestik
Я все понял.
Ну поставьте вместо даты публикации ваше поле dateof. Ну мне что картинки как в мурзилке рисовать?
Я НЕ ЗНАЮ как ваше поле dateof называется.
#23 13 апреля 2018 в 21:13
Все врачи одобряют.
#24 13 апреля 2018 в 23:33
Jestik,
Специально для иллюстрации в типе "Новости" создал поле "Дата" с системным именем dateof.
Потом создал набор и добавил в него два фильтра:
В результате имеем такой запрос в отладке:
  1. SELECT i.*, u.nickname AS `user_nickname`, f.title AS `folder_title`
  2. FROM cms_con_news i
  3. FORCE INDEX FOR ORDER BY (dataset_dof)
  4. INNER JOIN cms_users AS u FORCE INDEX (PRIMARY) ON u.id = i.user_id
  5. LEFT JOIN cms_content_folders AS f ON f.id = i.folder_id
  6. WHERE (i.dateof >= DATE_SUB(NOW(), INTERVAL 7 DAY)) AND (i.dateof < DATE_SUB(NOW(), INTERVAL 0 DAY)) AND (i.is_parent_hidden IS NULL) AND (i.is_approved = '1') AND (i.is_deleted IS NULL) AND (i.is_pub = '1')
  7. ORDER BY i.dateof DESC
  8. LIMIT 0, 15
В результате имеем в выдаче данные, где dateof не старше семи дней, но не из будущего.
#25 14 апреля 2018 в 00:00
Только вот попробовал на 3-х сайтах, и поле Дата нигде не дает использовать более одного раза в фильтре. Как принципе и все другие поля, в фильтр можно добавить только раз. На демо так же

#26 14 апреля 2018 в 00:04

поле Дата нигде не дает использовать более одного раза в фильтре.

Jestik
Странно… а мне разрешает…
#27 14 апреля 2018 в 00:14

Странно… а мне разрешает

Ris
Может просто не надо удалять папку install?))) Проверил на свежей установке — только один раз пропускает.
#28 14 апреля 2018 в 11:17
Jestik, я правильно понимаю, что вы хотите организовать набором что-то похожее на афишу?
Попробуйте набор такой: joxi.ru/DrlEZq7UvPMBNm
Если нужно чтобы скрывались те, у которых дата события уже прошла, придётся ещё и дату окончания публикации выставлять (равную дате события) или в шаблоне списка условие соорудить по этому полю (так даже больше поле для манёвра должно получиться).
Вообще условия для "будущих" дат для наборов не помешали бы. Но они в модели ядра (лучше не связываться, а на гите предложить).
#29 14 апреля 2018 в 14:24
Олег Васильевич я, danceСпасибо) работает)
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.