- Модуль: im
- Путь к файлу: ~/bitrix/modules/im/lib/update/openlinesindex.php
- Класс: BitrixImUpdateOpenLinesIndex
- Вызов: OpenLinesIndex::execute
public function execute(array &$option)
{
return false;
if (!Loader::includeModule(self::$moduleId))
{
return false;
}
$return = false;
$params = Option::get(self::$moduleId, self::OPTION_NAME, "");
$params = ($params !== "" ? @unserialize($params, ['allowed_classes' => false]) : []);
$params = (is_array($params) ? $params : []);
if (empty($params))
{
$lastIdQuery =
ChatTable::query()
->addSelect('ID')
->where('TYPE', Chat::TYPE_OPEN_LINE)
->addOrder('ID', 'DESC')
->setLimit(1)
->fetch()
;
$params = [
"lastId" => (int)$lastIdQuery['ID'] + 1,
"number" => 0,
"count" => ChatTable::getCount([
'=TYPE' => [Chat::TYPE_OPEN_LINE],
]),
];
}
if ($params["count"] > 0)
{
$query =
ChatTable::query()
->setSelect(['ID', 'ENTITY_TYPE'])
->where('ID', '<', $params['lastId'])
->where('TYPE', Chat::TYPE_OPEN_LINE)
->addOrder('ID', 'DESC')
->setLimit(self::LIMIT)
;
$found = false;
foreach ($query->exec() as $row)
{
CIMChat::index($row['ID']);
$params["lastId"] = $row['ID'];
$found = true;
}
if ($found)
{
Option::set(self::$moduleId, self::OPTION_NAME, serialize($params));
$return = true;
}
else
{
Option::delete(self::$moduleId, ["name" => self::OPTION_NAME]);
}
}
return $return;
}