31 if (!Loader::includeModule(self::$moduleId))
33 return self::CONTINUE_EXECUTION;
36 $numOfIterations = (int)Option::get(self::$moduleId, self::OPTION_NAME_ITERATION_COUNT, self::ITERATION_COUNT_DEFAULT);
38 $result = self::CONTINUE_EXECUTION;
39 for (
$i = 0;
$i < $numOfIterations; ++
$i)
43 if (
$result === self::FINISH_EXECUTION)
52 private function makeMigrationIteration(
array &
$option): bool
54 $isFinished = Option::get(self::$moduleId, self::OPTION_NAME,
'');
56 if ($isFinished ===
'')
58 Option::set(self::$moduleId, self::OPTION_NAME,
'N');
61 if ($isFinished ===
'Y')
63 return self::FINISH_EXECUTION;
71 Option::set(self::$moduleId, self::OPTION_NAME,
'Y');
72 if (\
Bitrix\
Main\Loader::includeModule(
'pull'))
75 Event::SHARED_CHANNEL,
78 'command' =>
'linkUrlMigrationFinished',
85 return self::FINISH_EXECUTION;
88 $ids =
$params->getParamValueList();
91 $urlsPreview = \Bitrix\Main\UrlPreview\UrlPreview::getMetadataByIds($ids);
92 $urlCollection =
new EO_LinkUrl_Collection();
96 $urlPreview = $urlsPreview[$param->getParamValue()];
97 $uri =
new Uri($urlPreview[
'URL']);
98 if (
$uri->getHost() ===
'')
107 $url =
new EO_LinkUrl();
110 ->setAuthorId(
$message->getAuthorId())
111 ->setMessageId($param->getMessageId())
112 ->setDateCreate(
$message->getDateCreate())
113 ->setPreviewUrlId((
int)$urlPreview[
'ID'])
114 ->setUrl($urlPreview[
'URL'])
116 $urlCollection[] =
$url;
118 $urlCollection->save(
true);
119 LinkUrlIndexTable::index((
int)Option::get(self::$moduleId, self::OPTION_NAME_LIMIT, self::LIMIT_DEFAULT));
122 $count = MessageParamTable::getCount(Query::filter()->where(
'PARAM_NAME',
'URL_ID'));
126 return self::CONTINUE_EXECUTION;
129 private function getParams(
int $lastId): EO_MessageParam_Collection
131 $params = MessageParamTable::query()
133 ->where(
'PARAM_NAME',
'URL_ID')
135 ->setOrder([
'ID' =>
'ASC'])
136 ->setLimit((
int)Option::get(self::$moduleId, self::OPTION_NAME_LIMIT, self::LIMIT_DEFAULT))
145 $params->fill([
'MESSAGE_ID',
'PARAM_VALUE']);
147 $messageIds =
$params->getMessageIdList();
149 if (empty($messageIds))
155 ->setSelect([
'ID',
'AUTHOR_ID',
'DATE_CREATE',
'CHAT_ID'])
156 ->whereIn(
'ID', $messageIds)
static getCount($filter=array(), array $cache=array())
if(file_exists($_SERVER['DOCUMENT_ROOT'] . "/urlrewrite.php")) $uri