Как смастерить доску объявлений с автоматическим удалением записей по истечении времени?
Прислано: NecroHill
сб, 30/06/2007 - 23:33
Приветствую!
Вопрос у меня на повестве дня. Есть ли возможность смастерить доску объявлений с автоматическим удалением записей по истечении времени?
Конкретно нужно сайт с объявлениями частных лиц, которые будут заходить, регистрироваться, размещать объявления заполнив необходимые поля и загрузив фото авто. Срок жизни объявления 1 месяц, по истечении которого оно должно удаляться автоматом. Ну и возможность пользователю тоже предоставить надо бы для удаления/изменения объявления.
Какие лучше модули использовать? Есть ли у кого подобный опыт?
Заранее спасибо.
- NecroHill's blog
- Для комментирования войдите или зарегистрируйтесь
Да делал похожее, sched_act (scheduler) + workflow + cck + imagecache + action + views
- Для комментирования войдите или зарегистрируйтесь
я делаю сейчас сайт с вакансиями/резюме... cck+views хорошо для этого подходят. Для "доски объявлений" уже сделали отдельный модуль - http://drupal.org/project/ed_classified .
Если решишь делать через cck+views без classified (в котором уже встроены механизмы отключения объявлений по истечению какого-то срока) - тогда читай дальше :)
Я не знаю зачем нужны вещи типа scheduler на таких специализированных сайтах - ИМХО гораздо удобнее воспользоваться hook_cron в своем модуле. (Я отталкиваюсь от описания модуля sheduler на drupal.org - это примитив). У меня к примеру у пользователя есть возможность выбрать срок хранения резюме - 1мес/3мес/6 мес
такое реализуется одной функцией:
<?php
function job_cron() {
$sql = "UPDATE {node} n INNER JOIN {content_field_actual_till} c ON n.nid=c.nid SET n.status=0 WHERE (n.`type`='job' OR n.`type`='resume') AND (c.field_actual_till_value * %d+n.created)<NOW()";
$month = 60*60*24*30;
db_query($sql, $month);
db_query($sql, $month*2);
db_query($sql, $month*3);
db_query($sql, $month*6);
}
?>- Для комментирования войдите или зарегистрируйтесь
Ну если только content_field_actual_till тогда быстро, но это извечный вопрос - "гибкости - производительности - универсальности" :)
- Для комментирования войдите или зарегистрируйтесь
доброго времени суток. Restyler подскажи а
<?php
function job_cron() {
$sql = "UPDATE {node} n INNER JOIN {content_field_actual_till} c ON n.nid=c.nid SET n.status=0 WHERE (n.`type`='job' OR n.`type`='resume') AND (c.field_actual_till_value * %d+n.created)<NOW()";
$month = 60*60*24*30;
db_query($sql, $month);
db_query($sql, $month*2);
db_query($sql, $month*3);
db_query($sql, $month*6);
}
?>куда именно нужно вставлять
- Для комментирования войдите или зарегистрируйтесь
Здравствуйте! Меня тоже интересует куда вставлять код упомянутый выше!!!
- Для комментирования войдите или зарегистрируйтесь
Кажется оптимальный вариант это модуль auto_expire. Позволяет снять с публикации выбранный тип материала по назначенному сроку размещения. Есть у него еще одна удобная штука, оповещение пользователя за выбранное количество дней до удаления по почте.
На Drupal.org предлагают еще один вариант, модуль node_expire, но его не смотрел, так как в точку подошел первый модуль.
- Для комментирования войдите или зарегистрируйтесь




Комментарии