28 $res =
$DB->Query(
'DELETE FROM b_cluster_webnode WHERE ID = ' .
$ID,
false,
'', [
'fixed_connection' =>
true]);
48 $strUpdate =
$DB->PrepareUpdate(
'b_cluster_webnode',
$arFields);
52 UPDATE b_cluster_webnode SET
54 WHERE ID = ' .
$ID .
'
56 if (!
$DB->Query($strSql,
false,
'', [
'fixed_connection' =>
true]))
73 if (preg_match(
'/^([0-9a-zA-Z-_.]+)$/',
$arFields[
'HOST']))
80 $aMsg[] = [
'id' =>
'HOST',
'text' =>
GetMessage(
'CLU_WEBNODE_WRONG_IP')];
90 $bStatus = is_array($arStatus);
112 if (!is_array($arSelect))
116 if (
count($arSelect) < 1)
128 if (!is_array($arOrder))
134 foreach ($arOrder as $strColumn => $strDirection)
136 $strColumn = mb_strtoupper($strColumn);
137 $strDirection = mb_strtoupper($strDirection) ===
'ASC' ?
'ASC' :
'DESC';
142 $arSelect[] = $strColumn;
143 $arQueryOrder[$strColumn] = $strColumn .
' ' . $strDirection;
149 foreach ($arSelect as $strColumn)
151 $strColumn = mb_strtoupper($strColumn);
160 $arQuerySelect[$strColumn] =
'w.' . $strColumn;
164 if (
count($arQuerySelect) < 1)
166 $arQuerySelect = [
'ID' =>
'w.ID'];
172 'TABLE_ALIAS' =>
'w',
173 'FIELD_NAME' =>
'w.ID',
174 'FIELD_TYPE' =>
'int',
178 'TABLE_ALIAS' =>
'w',
179 'FIELD_NAME' =>
'w.GROUP_ID',
180 'FIELD_TYPE' =>
'int',
184 'TABLE_ALIAS' =>
'w',
185 'FIELD_NAME' =>
'w.NAME',
186 'FIELD_TYPE' =>
'string',
190 'TABLE_ALIAS' =>
'w',
191 'FIELD_NAME' =>
'w.HOST',
192 'FIELD_TYPE' =>
'string',
196 'TABLE_ALIAS' =>
'w',
197 'FIELD_NAME' =>
'w.PORT',
198 'FIELD_TYPE' =>
'int',
208 $strQueryWhere = $obQueryWhere->GetQuery(
$arFilter);
210 $bDistinct = $obQueryWhere->bDistinctReqired;
213 SELECT ' . ($bDistinct ?
'DISTINCT' :
'') .
'
214 ' . implode(
', ', $arQuerySelect) .
'
217 ' . $obQueryWhere->GetJoins() .
'
224 ' . $strQueryWhere .
'
228 if (
count($arQueryOrder) > 0)
232 ' . implode(
', ', $arQueryOrder) .
'
236 return $DB->Query($strSql,
false,
'', [
'fixed_connection' =>
true]);
243 $protocol = ($port ===
'443') ?
'ssl://' :
'';
244 $FP = @fsockopen(
$protocol .
$host, $port, self::$errno, self::$errstr, 2);
247 $strRequest =
'GET ' .
$url .
" HTTP/1.0\r\n";
248 $strRequest .=
"User-Agent: BitrixSMCluster\r\n";
249 $strRequest .=
"Accept: */*\r\n";
250 $strRequest .=
'Host: ' .
$host .
"\r\n";
251 $strRequest .=
"Accept-Language: en\r\n";
252 $strRequest .=
"\r\n";
253 fputs($FP, $strRequest);
258 $line = fgets($FP, 4096);
269 $text .= fread($FP, 4096);
275 if (preg_match_all(
'#<dt>(.*?)\\s*:\\s*(.*?)</dt>#',
$text, $match))
278 foreach ($match[0] as
$i => $_)
281 $value = $match[2][
$i];
282 if (
$key ===
'Total accesses')
285 if (preg_match(
'/^(.*) - (.*)\\s*:\\s*(.*)$/', $value, $accessMatch))
287 $value = $accessMatch[1];
288 $arResult[$accessMatch[2]] = $accessMatch[3];
305 SELECT ID, GROUP_ID, HOST
306 FROM b_cluster_webnode
307 ORDER BY GROUP_ID, ID
309 while ($arData =
$rsData->Fetch())
311 $host = $arData[
'HOST'] ===
'127.0.0.1' || $arData[
'HOST'] ===
'localhost' ?
'' : $arData[
'HOST'];
313 'ID' => $arData[
'ID'],
314 'GROUP_ID' => $arData[
'GROUP_ID'],
315 'SERVER_TYPE' =>
'web',
319 'EDIT_URL' =>
'/bitrix/admin/cluster_webnode_edit.php?lang=' . LANGUAGE_ID .
'&group_id=' . $arData[
'GROUP_ID'] .
'&ID=' . $arData[
'ID'],
327 static $search =
false;
328 static $replace =
false;
329 if ($search ===
false)
333 for (
$i = 1;
$i <= 12;
$i++)
335 $time = mktime(0, 0, 0,
$i, 1, 2010);
336 $search[] = date(
'M',
$time);
337 $replace[] = date(
'm',
$time);
341 $str = str_replace($search, $replace,
$str);
343 if (preg_match(
'/(\\d{2}-\\d{2}-\\d{4} \\d{2}:\\d{2}:\\d{2})/',
$str, $dateMatch))
CheckFields(&$arFields, $ID)
static ParseDateTime($str)
static GetStatus($host, $port, $url)
static GetList($arOrder=false, $arFilter=false, $arSelect=false)
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)
MakeTimeStamp($datetime, $format=false)
if(empty($signedUserToken)) $key
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
if(file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/updater.log") &&is_file($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/updater.log") &&is_readable($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/updater.log")) $rsData