- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/update_b24.php
- Класс: CB24Updater
- Вызов: CB24Updater::UpdateFromVersion
public function UpdateFromVersion($moduleId, $dbVersion)
{
if ($moduleId == '')
{
return;
}
$errorMessage = "";
if (file_exists($this->updatersDir.$moduleId) && is_dir($this->updatersDir.$moduleId))
{
$arUpdaters = array();
if ($handle = @opendir($this->updatersDir.$moduleId))
{
while (false !== ($dir = readdir($handle)))
{
if ($dir == "." || $dir == "..")
{
continue;
}
if (substr($dir, 0, 7) == "updater")
{
if (is_file($this->updatersDir.$moduleId."/".$dir))
{
$num = substr($dir, 7, strlen($dir) - 11);
if (substr($dir, strlen($dir) - 9) == "_post.php")
{
$num = substr($dir, 7, strlen($dir) - 16);
}
$arUpdaters[] = array("/".$dir, trim($num));
}
elseif (file_exists($this->updatersDir.$moduleId."/".$dir."/index.php"))
{
$num = substr($dir, 7);
if (substr($dir, strlen($dir) - 5) == "_post")
{
$num = substr($dir, 7, strlen($dir) - 12);
}
$arUpdaters[] = array("/".$dir."/index.php", trim($num));
}
}
}
closedir($handle);
}
$ni1 = count($arUpdaters);
for ($i1 = 0; $i1 < $ni1 - 1; $i1++)
{
for ($j1 = $i1 + 1; $j1 < $ni1; $j1++)
{
if (CUpdateClient::CompareVersions($arUpdaters[$i1][1], $arUpdaters[$j1][1]) > 0)
{
$tmp1 = $arUpdaters[$i1];
$arUpdaters[$i1] = $arUpdaters[$j1];
$arUpdaters[$j1] = $tmp1;
}
}
}
for ($i1 = 0; $i1 < $ni1; $i1++)
{
if (CUpdateClient::CompareVersions($arUpdaters[$i1][1], $dbVersion) <= 0)
{
continue;
}
$errorMessageTmp = "";
syslog(LOG_INFO, $_SERVER["HTTP_HOST"]."tstartt".$moduleId.$arUpdaters[$i1][0]);
CUpdateClient::RunUpdaterScript($this->updatersDir.$moduleId.$arUpdaters[$i1][0], $errorMessageTmp, "", $moduleId);
syslog(LOG_INFO, $_SERVER["HTTP_HOST"]."tendt".$moduleId.$arUpdaters[$i1][0]."t".$errorMessageTmp);
if ($errorMessageTmp <> '')
{
$errorMessage .= str_replace("#MODULE#", $moduleId, str_replace("#VER#", $arUpdaters[$i1][1], GetMessage("SUPP_UK_UPDN_ERR"))).": ".$errorMessageTmp.".";
}
$this->CollectDatabaseVersions("MODULE", $moduleId, $arUpdaters[$i1][1]);
}
}
if ($errorMessage <> '')
{
$message = "Database update error (".$moduleId."-".$dbVersion."): ".$errorMessage;
CUpdateClient::AddMessage2Log($message, "DUE");
syslog(LOG_INFO, $_SERVER["HTTP_HOST"] . "terrort" . $message);
}
else
{
$message = "Database updated successfully (".$moduleId."-".$dbVersion.")";
CUpdateClient::AddMessage2Log($message, "DUS");
syslog(LOG_INFO, $_SERVER["HTTP_HOST"] . "tokt" . $message);
}
}