Автоматическое удаление
Добрый день! Хотел попросить помощи. Есть снипет добавления ресурса и фоток на сайт:
Добавление ресурса
(За код не пинайте, подглядывал везде где мог)
Добавление ресурса
<?php $doc = $modx->getObject('modResource',array('id'=>$hook->getValue('resource_id'))); if (empty($doc)){ $doc = $modx->newObject('modResource'); $doc->set('createdby', $modx->user->get('id')); } else{ $doc->set('editedby', $modx->user->get('id')); } $allFormFields = $hook->getValues(); foreach ($allFormFields as $field=>$value) { if ($field !== 'spam' && $field !== 'resource_id'){ $doc->set($field, $value); } } $alias = $doc->cleanAlias($fields['pagetitle']); if($modx->getCount(modResource, array('alias'=>$alias))!= 0) { $count = 1; $newAlias = $alias; while($modx->getCount(modResource, array('alias'=>$newAlias))!= 0) { $newAlias = $alias; $newAlias .= '-' . $count; $count++; } $alias = $newAlias; } $doc->set('alias',$alias); $doc->set('template', $template); $doc->save(); foreach ($allFormFields as $field=>$value) { if (!empty($value) && $tv = $modx->getObject('modTemplateVar', array ('name'=>$field))) { if (is_array($value)) { $featureInsert = array(); while (list($featureValue, $featureItem) = each($value)) { $featureInsert[count($featureInsert)] = $featureItem; } $value = implode('||',$featureInsert); } $tv->setValue($doc->get('id'), $value); $tv->save(); } } $modx->cacheManager->refresh(); return true;Добавление файла:
<?php $doc = $modx->getObject('modResource',array('id'=>$hook->getValue('resource_id'))); if (empty($doc)){ $doc = $modx->newObject('modResource'); $doc->set('createdby', $modx->user->get('id')); } else{ $doc->set('editedby', $modx->user->get('id')); } $allFormFields = $hook->getValues(); foreach ($allFormFields as $field=>$value) { if ($field !== 'spam' && $field !== 'resource_id'){ $doc->set($field, $value); } } $alias = $doc->cleanAlias($fields['pagetitle']); if($modx->getCount(modResource, array('alias'=>$alias))!= 0) { $count = 1; $newAlias = $alias; while($modx->getCount(modResource, array('alias'=>$newAlias))!= 0) { $newAlias = $alias; $newAlias .= '-' . $count; $count++; } $alias = $newAlias; } $doc->set('alias',$alias); $doc->set('template', $template); $doc->save(); foreach ($allFormFields as $field=>$value) { if (!empty($value) && $tv = $modx->getObject('modTemplateVar', array ('name'=>$field))) { if (is_array($value)) { $featureInsert = array(); while (list($featureValue, $featureItem) = each($value)) { $featureInsert[count($featureInsert)] = $featureItem; } $value = implode('||',$featureInsert); } $tv->setValue($doc->get('id'), $value); $tv->save(); } } $modx->cacheManager->refresh(); return true;Подскажите как сделать что бы по прошествии например 7 дней объявление либо становилось не опубликованным либо удалялось.
(За код не пинайте, подглядывал везде где мог)
Поблагодарить автора
Отправить деньги
Комментарии: 4
Как вариант, можно попробовать с помощью Cron запускать скрипт, который бы проверял все ресурсы. А если попробовать выставлять «Дату отмены публикации»?
А если попробовать выставлять «Дату отмены публикации»?
Хорошая идея (я ни разу не пробовал).
Блин точно! Есть же дата публикации)) Я чет запарился. Пока доков не много можно самому проставлять. Только возможно с картинками придется повозится. Потому что их чистить надо будет. Спасибо!
Плагин на OnLoadWebDocument.
При запросе проверять дату создания, и если больше 7 дней — удалять или отключать ресурс и отправлять на главную или на 404.
То есть, юзеры сами будут инициировать отключение, cron не нужен.
При запросе проверять дату создания, и если больше 7 дней — удалять или отключать ресурс и отправлять на главную или на 404.
То есть, юзеры сами будут инициировать отключение, cron не нужен.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.