Не понятно вот этот момент: "прибавления к текущей дате количества дней (в секундах)"
Откуда будет браться это значение?
И я правильно понял, что таким макаром, если я установлю например значение в неделю. то юзеру каждую неделю нужно будет поднимать обьявление? (если так то отлично)
Jestik, нужно в типе контента "Объявления" создать невидимое поле date_top_end, которое будет заполняться в момент нажатия кнопки "Поднять в поиске" путем прибавления к текущей дате количества дней (в секундах), на которое объявление поднимается в поиске. После этого в шаблоне списка объявлений сделать проверку — если текущая дата > date_top_end, то is_top = false.
DCDozer, это вы описали ваше видение решения данного вопроса? Или из коробки реализовывали? Логика понятна, но вот реализация из коробки ведь невозможна или я что-то упустил?
Да. Сейчас у вас сортировка происходит по полям "Поднять в поиске" и "Дата добавления". Для того, чтобы в нужный момент убрать галочку с поля "Поднять в поиске" нужно создать поле date_top_end, в котором будет храниться дата и время истечения срока размещения объявления в топе. А потом нужно каждый раз при загрузке списка объявлений проверять не пора ли снимать галку с поля "Поднять в поиске" и если пора, то снимать эту галку. Но для этого нужно внести изменения в шаблон списка объявлений, а так же сделать в меню кнопку "Поднять в поиске", при нажатии на которую будут заполняться поля is_top и date_top_end, ну и конечно же списываться средства со счета юзера.И я правильно понял, что таким макаром, если я установлю например значение в неделю. то юзеру каждую неделю нужно будет поднимать обьявление? (если так то отлично)
У Evanescence на его сайте есть урок, который поможет вам в этом разобраться.
Он как я понял обновляет дату… принципе выход, но хотелось бы именно поднятие в топ, а то будут и поднятые записи и просто новые на первых местахУ Evanescence на его сайте есть урок, который поможет вам в этом разобраться.
Есть "поднятие в ТОП" и "закрепление в ТОПе", для поднятие достаточна обновить дату, а для закрепление, что бы красиво всё оформить, без кодинга не обойдется...но хотелось бы именно поднятие в топ
Но теоретический можно сделать по средством движка.
Создаем поле is_fix (или любое имя)
Тип = Дата
При добавлении объявлении выбираем на5 — 10 дней вперед от текущей даты.
Потом в админке — типы контента — объявления — наборы — новые — настроим так
Закрепить в ТОПе — это поле (is_fix) который создали.
После этого сортировка будет по поле is_fix и дата публикации, но через 5-10 дней объявление начнет идти вниз
как можно сделать чтобы срок "поднятия можно было выбирать"
Вот не понятно мне, вдруг, стало… Вроде как взаимоисключающие вещи...Задача стоит сделать для объектов Мапса и без управления сроком публикации.
Всмысле пользователь не сможет управлять сроком? Но срок-то всё-равно должен быть, как мне кажется. Пусть и установленный админом.
Логичнее всего была бы возможность поднятия пользователем на уже установленный админом срок. Например месяц, после которого запись должна опускаться, по методу Evanescence. Тут, правда, не совсем понятно, как будет отображаться дата в тех типах контента, в которых она нужна, например в объявлениях. Топовые объявления получаются объявлениями из будущего, что ли… Для записей с мапса можно дату и не отображать, поэтому с ними проще.
именноподнятия пользователем на уже установленный админом срок
В этом и загвоздка. нужно что бы в поле флаг снималась галочка скажем через месяц и пользователю нужно было опять оплачивать ее заполнениекак будет отображаться дата в тех типах контента
Надо отключить отображение этого поля в админке, уберете галочку с Показать в списке и записиТоповые объявления получаются объявлениями из будущего, что ли
Это то что можно добавить с помощью движка, а что бы админ устанавливал дату и что бы, всё было по checkbox придется кодить, это реализовано в компоненте instantcms.ru/addons/board-for-instantcms2.htmlПричём именно на установленный срок, а не выбирать самому по календарю.