- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/classes/general/im_convert.php
- Класс: CIMConvert
- Вызов: CIMConvert::DeliveredMessage
static function DeliveredMessage($step = 100, $maxExecutionTime = 10)
{
if (!CModule::IncludeModule("socialnetwork"))
return false;
$step = intval($step)>0? intval($step): 100;
$startConvertTime = getmicrotime();
$step = intval($step);
$dbMessage = CSocNetMessages::GetList(
array("ID" => "ID"),
array(
"!DATE_VIEW" => "",
"TO_DELETED" => "N",
"MESSAGE_TYPE" => "P"
),
false,
array("nTopCount" => $step),
array("ID", "FROM_USER_ID", "TO_USER_ID", "MESSAGE", "DATE_CREATE")
);
while($arMessage = $dbMessage->Fetch())
{
$ar = Array(
"FROM_USER_ID" => intval($arMessage["FROM_USER_ID"]),
"TO_USER_ID" => intval($arMessage["TO_USER_ID"]),
"MESSAGE" => $arMessage["MESSAGE"],
"MESSAGE_DATE" => $arMessage["DATE_CREATE"],
"IMPORT_ID" => $arMessage["ID"],
"CONVERT" => 'Y',
);
CIMMessage::Add($ar);
CSocNetMessages::Update($arMessage["ID"], array("TO_DELETED" => "Y", "FROM_DELETED" => "Y"));
self::$converted++;
self::$convertPerStep++;
if($maxExecutionTime > 0 && (getmicrotime() - $startConvertTime > $maxExecutionTime))
break;
}
if ($maxExecutionTime > (2*(getmicrotime() - $startConvertTime)))
self::$nextConvertPerStep = $step*2;
else
self::$nextConvertPerStep = $step;
return true;
}