Стоит задача автоматически снимать объявления с истекшим сроком действия с публикации.
модель node_expire конечно интересен, но его большим недостатком является наличие нескольких непонятных простому пользователю настроек.
Хотелось бы дать возможность пользователю использовать выпадающий список со значениями, к примеру, "1 день", "7 дней", "1 месяц" и т.д.
Какие решения может предложить сообщество?
Комментарии
Может посмотреть на этот модуль похлопать глазами и написать то что пишет всегда - "поиск Вам в помощь". Обратите внимание что за 2 года Вам никто не ответил, я и сам наткнулся на этот пост потому что начал использовать этот модуль и мне необходимо увеличить число продления материала или сделать выборку как в Вашем случае.
Вы наивно полагаете, что я два года жду ответ? ыхы
я на некотрые вопросы год уже жду...
ыыы
так вы решили вопрос то?
beerman, не утаивайте от общественности, напишите решение (если нашли), -- пригодится будущему поколению.
Я расскажу лишь об основных ингредиентах этого блюда.
1. Берем за одну из основ, например, модуль email и по его подобию, со своими обработчиками делаем модуль/поле autounpublish типа селект (можно и дата попап, но селект гораздо проще для юзеров)
2. В обработчике поля при сохранении в ноду добавляем филд типа timestamp в который записываем дату по формуле time() + (60*60*24) * x, где Х это наше значение в выпадающем поле в днях.
3. пишем hook_cron и в ней делаем выборку тех нод, у которых закончился срок действия (наше поле). Можно задействовать вьюс для выбора нужных nid.
4. Пишем batch для снятия с публикации. batch нужен для того, чтоби избежать падение по таймауту при выполнении SQL запроса на анпаблиш большого числа нод. Обычно, в один проход я помещаю до 200 нод. Из крона дергаем batch, если есть чего снимать с публикации.
5. Радуемся.
ЗЫ. Было давно, мог в чем-то ошибиться. Но ход мысли верный.
а рулесами нельзя разве снять???
Для этого можно использовать scheduler
Да проще было бы его выложить для нуждающихся, кстати свою проблему решил модулем auto_expire, так как нужна была привязка к userpoints.
Вот такой вопрос кто - нибудь встречал или хотя бы имеет представление чем можно реализовать следующее:
1 день публикации материала стоит 1 кредит (возьмем за основу userpoints) хотелось бы модулек который давал бы возможность выбирать пользователю срок публикации но опираясь на его баланс, то есть у меня есть 23 кредита, я могу опубликовать материал на 23 дня, как то так.
Батч из крона? Интересный подход, притом что батч из браузера запускается
Я не знаю что такое "Батч" - расшифруйте
Но у меня при прочтении поста возникла 1ая мысль именно такая. Просто перегрузить хук крона, в котором будем шелестеть по нодам.
Справедливости ради, нужно отметить, что вы абсолютно правы. Я даже специально посмотрел дату первой версии для 6.х - февраль 2008. Т.е. на момент написания поста уже можно было использовать данное решение.
ЗЫ: хорошо, когда всплывают такие темы
Кстати хорошим тоном всегда считаю писать решение в своем посте, если нашел его сам. Т.е. если даже никто не ответил - потрудись помочь потенциальному гугло-искателю в своем вопросе...
Можно в теме поставить [РЕШЕНО]
Тут что-то похожее: http://xandeadx.ru/blog/drupal/649