Как смастерить доску объявлений с автоматическим удалением записей по истечении времени?

Прислано: NecroHill

сб, 30/06/2007 - 23:33

Приветствую!
Вопрос у меня на повестве дня. Есть ли возможность смастерить доску объявлений с автоматическим удалением записей по истечении времени?
Конкретно нужно сайт с объявлениями частных лиц, которые будут заходить, регистрироваться, размещать объявления заполнив необходимые поля и загрузив фото авто. Срок жизни объявления 1 месяц, по истечении которого оно должно удаляться автоматом. Ну и возможность пользователю тоже предоставить надо бы для удаления/изменения объявления.
Какие лучше модули использовать? Есть ли у кого подобный опыт?

Заранее спасибо.

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано sas@drupal.org в вс, 01/07/2007 - 09:29.

Да делал похожее, sched_act (scheduler) + workflow + cck + imagecache + action + views


Опубликовано restyler в вс, 01/07/2007 - 17:23.

я делаю сейчас сайт с вакансиями/резюме... 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);
}
?>


Опубликовано sas@drupal.org в пн, 02/07/2007 - 06:46.

Ну если только content_field_actual_till тогда быстро, но это извечный вопрос - "гибкости - производительности - универсальности" :)


Опубликовано hurt3 в вс, 30/08/2009 - 11:46.

доброго времени суток. Restyler подскажи а

"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);
}
?>

куда именно нужно вставлять


Опубликовано arefkin в ср, 11/11/2009 - 12:28.

Здравствуйте! Меня тоже интересует куда вставлять код упомянутый выше!!!


Опубликовано gaintsev в чт, 14/01/2010 - 20:07.

Кажется оптимальный вариант это модуль auto_expire. Позволяет снять с публикации выбранный тип материала по назначенному сроку размещения. Есть у него еще одна удобная штука, оповещение пользователя за выбранное количество дней до удаления по почте.
На Drupal.org предлагают еще один вариант, модуль node_expire, но его не смотрел, так как в точку подошел первый модуль.


Новое на сайте

Ссылки партнёров