Итак, автоматическое ежесуточное удаление организуется с помошью [URL=http://dev.1c-bitrix.ru/api_help/main/general/technology/agents.php]Агентов[/URL].
После прочтения документации, у меня получилось следующее:
код создания агента:
[CODE]
// добавим агент модуля "Форум"
CAgent::AddAgent(
"DeleteBadMessages();", // имя функции
"", // идентификатор модуля
"N", // агент не критичен к кол-ву запусков
86400, // интервал запуска - 1 сутки
"", // дата первой проверки на запуск - текущая
"Y", // агент активен
"", // дата первого запуска - текущая
30);
[/CODE]
код функции DeleteBadMessages:
[CODE]
function DeleteBadMessages()
{
$control_date = date('d.m.Y', mktime(0, 0, 0, date('m') , (date('d') + 2), date('Y') ) );
// выберем все неопубликованные сообщения
$db_res = CForumMessage::GetList(array("ID"=>"ASC"), array("APPROVED"=>"N"));
while ($ar_res = $db_res->Fetch())
{
if($ar_res["POST_DATE"] < $control_date)
{
//Проверяем, имеет ли текущий пользователь право удалять сообщения и удаляем, есил имеет
if (CForumMessage::CanUserDeleteMessage($ar_res["ID"], CUser::GetUserGroupArray(), CUser::GetID()))
{
CForumMessage::Delete($ar_res["ID"]);
}
}
}
}
[/CODE]
Теперь меня мучает вопрос: эта функция-агент принадлежит модулю форума или нет? И куда следует поместить определение этой функции и добавление агента?