- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/update_client_partner.php
- Класс: CUpdateClientPartner
- Вызов: CUpdateClientPartner::CheckUpdatability
static function CheckUpdatability($updatesDir, &$strError)
{
$strError_tmp = "";
$updatesDirFull = $_SERVER["DOCUMENT_ROOT"]."/bitrix/updates/".$updatesDir;
if (!file_exists($updatesDirFull) || !is_dir($updatesDirFull))
$strError_tmp .= "[UCU01] ".str_replace("#FILE#", $updatesDirFull, GetMessage("SUPP_CU_NO_TMP_CAT")).". ";
if ($strError_tmp == '')
if (!is_readable($updatesDirFull))
$strError_tmp .= "[UCU02] ".str_replace("#FILE#", $updatesDirFull, GetMessage("SUPP_CU_RD_TMP_CAT")).". ";
if ($handle = @opendir($updatesDirFull))
{
while (($file = readdir($handle)) !== false)
{
if ($file == "." || $file == "..")
continue;
if (is_dir($updatesDirFull."/".$file))
{
CUpdateClientPartner::CheckUpdatability($updatesDir."/".$file, $strError_tmp);
}
elseif (is_file($updatesDirFull."/".$file))
{
$strRealPath = $_SERVER["DOCUMENT_ROOT"].US_SHARED_KERNEL_PATH."/modules/".mb_substr($updatesDir."/".$file, mb_strpos($updatesDir."/".$file, "/"));
if (file_exists($strRealPath))
{
if (!is_writeable($strRealPath))
$strError_tmp .= "[UCU03] ".str_replace("#FILE#", $strRealPath, GetMessage("SUPP_CU_MAIN_ERR_FILE")).". ";
}
else
{
$p = CUpdateClientPartner::__bxstrrpos($strRealPath, "/");
$strRealPath = mb_substr($strRealPath, 0, $p);
if (mb_strlen($strRealPath) > 1)
$strRealPath = rtrim($strRealPath, "/");
$p = CUpdateClientPartner::__bxstrrpos($strRealPath, "/");
while ($p > 0)
{
if (file_exists($strRealPath) && is_dir($strRealPath))
{
if (!is_writable($strRealPath))
$strError_tmp .= "[UCU04] ".str_replace("#FILE#", $strRealPath, GetMessage("SUPP_CU_MAIN_ERR_CAT")).". ";
break;
}
$strRealPath = mb_substr($strRealPath, 0, $p);
$p = CUpdateClientPartner::__bxstrrpos($strRealPath, "/");
}
}
}
}
@closedir($handle);
}
if ($strError_tmp <> '')
{
CUpdateClientPartner::AddMessage2Log($strError_tmp, "CUCU");
$strError .= $strError_tmp;
return false;
}
else
return true;
}