23 private static $arAllowedOperations =
array(
'',
'!',
'<',
'<=',
'>',
'>=',
'><',
'!><',
'?',
'=',
'!=',
'%',
'!%',
'');
27 if(CModule::IncludeModule(
'iblock'))
31 'entity.add' =>
array(__CLASS__,
'entityAdd'),
32 'entity.get' =>
array(__CLASS__,
'entityGet'),
33 'entity.update' =>
array(__CLASS__,
'entityUpdate'),
34 'entity.delete' =>
array(__CLASS__,
'entityDelete'),
35 'entity.rights' =>
array(__CLASS__,
'entityRights'),
37 'entity.section.add' =>
array(__CLASS__,
'entitySectionAdd'),
38 'entity.section.get' =>
array(__CLASS__,
'entitySectionGet'),
39 'entity.section.update' =>
array(__CLASS__,
'entitySectionUpdate'),
40 'entity.section.delete' =>
array(__CLASS__,
'entitySectionDelete'),
42 'entity.item.add' =>
array(__CLASS__,
'entityItemAdd'),
43 'entity.item.get' =>
array(__CLASS__,
'entityItemGet'),
44 'entity.item.update' =>
array(__CLASS__,
'entityItemUpdate'),
45 'entity.item.delete' =>
array(__CLASS__,
'entityItemDelete'),
47 'entity.item.property.add' =>
array(__CLASS__,
'entityItemPropertyAdd'),
48 'entity.item.property.get' =>
array(__CLASS__,
'entityItemPropertyGet'),
49 'entity.item.property.update' =>
array(__CLASS__,
'entityItemPropertyUpdate'),
50 'entity.item.property.delete' =>
array(__CLASS__,
'entityItemPropertyDelete'),
62 if(!self::checkEntity(
$params[
'ENTITY'], $server))
69 $params[
'ACCESS'][
'U'.$USER->GetID()] =
'X';
71 $arIBlockFields =
array(
72 'IBLOCK_TYPE_ID' => self::getIBlockType(),
73 "NAME" => trim(
$params[
'NAME']),
74 "CODE" => self::getEntityIBlockCode(
$params[
'ENTITY'], $server),
77 'INDEX_SECTION' =>
'N',
78 'INDEX_ELEMENT' =>
'N',
81 'RIGHTS' => self::checkRights(
$params[
'ACCESS']),
82 'SITE_ID' => CSite::GetDefSite()
87 $conn = Application::getConnection();
88 $conn->startTransaction();
92 $ID = $ib->Add($arIBlockFields);
95 $error = $ib->getLastError();
100 $error =
'Internal error adding entity. Try adding again.';
104 $conn->commitTransaction();
110 $conn->rollbackTransaction();
116 throw new RestException(
'Entity already exists', self::ERROR_ENTITY_ALREADY_EXISTS);
133 'IBLOCK_TYPE_ID' =>
$arRes[
'IBLOCK_TYPE_ID'],
140 throw new RestException(
'Entity not found', self::ERROR_ENTITY_NOT_FOUND);
155 'IBLOCK_TYPE_ID' =>
$arRes[
'IBLOCK_TYPE_ID'],
175 $obIBlockRights = new \CIBlockRights(
$arIBlock[
'ID']);
181 $params[
'ACCESS'][
'U'.$USER->GetID()] =
'X';
184 $obIBlockRights->SetRights($arRights);
185 $obIBlockRights->Recalculate();
193 $arRights = $obIBlockRights->GetRights();
196 foreach($arRights as $arRight)
198 $res[$arRight[
'GROUP_CODE']] = \CIBlockRights::TaskToLetter($arRight[
'TASK_ID']);
217 $recalcRights =
false;
219 $arIBlockFields =
array();
222 $arIBlockFields[
"NAME"] = trim(
$params[
'NAME']);
227 if (self::checkEntity(
$params[
'ENTITY_NEW'], $server))
229 throw new RestException(
'Entity already exists', self::ERROR_ENTITY_ALREADY_EXISTS);
237 $recalcRights =
true;
238 $params[
'ACCESS'][
'U'.$USER->GetID()] =
'X';
242 if(
count($arIBlockFields) > 0)
244 $ib = new \CIBlock();
246 $conn = Application::getConnection();
247 $conn->startTransaction();
251 if (!$ib->Update(
$arIBlock[
'ID'], $arIBlockFields))
253 $error = $ib->getLastError();
255 if (
$error ===
'' && $recalcRights)
258 $obIBlockRights->Recalculate();
259 unset($obIBlockRights);
264 $error =
'Internal error updating entity. Try updating again.';
268 $conn->commitTransaction();
272 $conn->rollbackTransaction();
285 throw new RestException(
'Entity not found', self::ERROR_ENTITY_NOT_FOUND);
302 $conn = Application::getConnection();
303 $conn->startTransaction();
313 :
'Unable to delete iblock'
322 $error =
'Internal error deleting entity. Try deleting again.';
326 $conn->commitTransaction();
330 $conn->rollbackTransaction();
343 throw new RestException(
'Entity not found', self::ERROR_ENTITY_NOT_FOUND);
350 if(self::checkSectionParams(
$params))
355 $arSort =
array(
'ID' =>
'ASC');
360 $arSort = array_change_key_case(
$params[
'SORT'], CASE_UPPER);
372 $dbRes = \CIBlockSection::GetList(
376 array(
'ID',
'IBLOCK_ID',
'CODE',
'TIMESTAMP_X',
'DATE_CREATE',
'CREATED_BY',
'MODIFIED_BY',
'ACTIVE',
'SORT',
'NAME',
'PICTURE',
'DETAIL_PICTURE',
'DESCRIPTION',
'LEFT_MARGIN',
'RIGHT_MARGIN',
'DEPTH_LEVEL',
'IBLOCK_SECTION_ID'),
384 $res[
'SECTION'] =
$res[
'IBLOCK_SECTION_ID'];
386 $res[
'TIMESTAMP_X'] = CRestUtil::ConvertDateTime(
$res[
'TIMESTAMP_X']);
387 $res[
'DATE_CREATE'] = CRestUtil::ConvertDateTime(
$res[
'DATE_CREATE']);
389 if(
$res[
'PICTURE'] > 0)
392 if(
$res[
'DETAIL_PICTURE'] > 0)
395 unset(
$res[
'IBLOCK_ID']);
396 unset(
$res[
'IBLOCK_SECTION_ID']);
397 unset(
$res[
'DETAIL_TEXT_TYPE']);
398 unset(
$res[
'DESCRIPTION_TYPE']);
406 throw new RestException(
'Entity not found', self::ERROR_ENTITY_NOT_FOUND);
413 if(self::checkSectionParams(
$params))
422 $ib = new \CIBlockSection();
424 $conn = Application::getConnection();
425 $conn->startTransaction();
430 $ID = $ib->Add($arSectionFields);
433 $error = $ib->getLastError();
438 $error =
'Internal error adding entity section. Try adding again.';
442 $conn->commitTransaction();
448 $conn->rollbackTransaction();
459 throw new RestException(
'Entity not found', self::ERROR_ENTITY_NOT_FOUND);
466 if(self::checkSectionParams(
$params))
483 ),
false,
array(
'ID'));
490 if(
count($arSectionFields) > 0)
492 $ib = new \CIBlockSection();
494 $conn = Application::getConnection();
495 $conn->startTransaction();
499 if (!$ib->Update(
$arRes[
'ID'], $arSectionFields))
501 $error = $ib->getLastError();
506 $error =
'Internal error updating entity section. Try updating again.';
510 $conn->commitTransaction();
514 $conn->rollbackTransaction();
523 throw new RestException(
'Section not found', self::ERROR_SECTION_NOT_FOUND);
533 throw new RestException(
'Entity not found', self::ERROR_ENTITY_NOT_FOUND);
544 if(self::checkSectionParams(
$params))
556 if(\CIBlockRights::UserHasRightTo(
$arIBlock[
'ID'],
$arIBlock[
'ID'],
'section_delete'))
561 ),
false,
array(
'ID'));
565 $conn = Application::getConnection();
566 $conn->startTransaction();
570 if (!\CIBlockSection::Delete(
$params[
'ID']))
576 :
'Unable to delete section'
585 $error =
'Internal error deleting entity section. Try deleting again.';
589 $conn->commitTransaction();
593 $conn->rollbackTransaction();
601 throw new RestException(
'Section not found', self::ERROR_SECTION_NOT_FOUND);
611 throw new RestException(
'Entity not found', self::ERROR_ENTITY_NOT_FOUND);
619 if(!self::checkItemParams(
$params))
628 throw new RestException(
'Entity not found', self::ERROR_ENTITY_NOT_FOUND);
633 while ($arField =
$dbRes->Fetch())
635 $arFields[$arField[
'CODE']] = $arField[
'ID'];
638 $arSort =
array(
'ID' =>
'ASC');
643 $arSort = array_change_key_case(
$params[
'SORT'], CASE_UPPER);
655 $dbRes = \CIBlockElement::GetList(
659 self::getNavData(
$n),
660 array(
'ID',
'IBLOCK_ID',
'TIMESTAMP_X',
'MODIFIED_BY',
'DATE_CREATE',
'CREATED_BY',
'ACTIVE',
'DATE_ACTIVE_FROM',
'DATE_ACTIVE_TO',
'SORT',
'NAME',
'PREVIEW_PICTURE',
'PREVIEW_TEXT',
'DETAIL_PICTURE',
'DETAIL_TEXT',
'CODE',
'IBLOCK_SECTION_ID')
664 while ($el =
$dbRes->GetNextElement(
false))
666 $res = $el->GetFields();
667 $arProps = $el->GetProperties();
671 if(array_key_exists(
'~'.
$key,
$res))
679 $res[
'SECTION'] =
$res[
'IBLOCK_SECTION_ID'];
684 foreach($arProps as $prop)
686 if($prop[
'PROPERTY_TYPE'] ==
'F')
688 if($prop[
'VALUE'] > 0)
694 $res[
'PROPERTY_VALUES'][$prop[
'CODE']] = $prop[
'~VALUE'];
698 $res[
'DATE_ACTIVE_FROM'] = CRestUtil::ConvertDateTime(
$res[
'DATE_ACTIVE_FROM']);
699 $res[
'DATE_ACTIVE_TO'] = CRestUtil::ConvertDateTime(
$res[
'DATE_ACTIVE_TO']);
700 $res[
'TIMESTAMP_X'] = CRestUtil::ConvertDateTime(
$res[
'TIMESTAMP_X']);
701 $res[
'DATE_CREATE'] = CRestUtil::ConvertDateTime(
$res[
'DATE_CREATE']);
703 if(
$res[
'PREVIEW_PICTURE'] > 0)
706 if(
$res[
'DETAIL_PICTURE'] > 0)
709 unset(
$res[
'IBLOCK_ID']);
710 unset(
$res[
'IBLOCK_SECTION_ID']);
711 unset(
$res[
'DETAIL_TEXT_TYPE']);
712 unset(
$res[
'PREVIEW_TEXT_TYPE']);
713 unset(
$res[
'ACTIVE_FROM']);
714 unset(
$res[
'ACTIVE_TO']);
724 if(self::checkItemParams(
$params))
733 $ib = new \CIBlockElement();
735 $conn = Application::getConnection();
736 $conn->startTransaction();
741 $ID = $ib->Add($arItemFields);
744 $error = $ib->getLastError();
749 $error =
'Internal error adding entity item. Try adding again.';
753 $conn->commitTransaction();
759 $conn->rollbackTransaction();
770 throw new RestException(
'Entity not found', self::ERROR_ENTITY_NOT_FOUND);
777 if(self::checkItemParams(
$params))
794 ),
false,
false,
array(
'ID'));
801 if(
count($arItemFields) > 0)
803 $ib = new \CIBlockElement();
806 if(isset($arItemFields[
'PROPERTY_VALUES']))
808 $PROPS = $arItemFields[
'PROPERTY_VALUES'];
809 unset($arItemFields[
'PROPERTY_VALUES']);
812 if(isset($arItemFields[
"PREVIEW_PICTURE"]) && $arItemFields[
"PREVIEW_PICTURE"] ==
false)
814 $arItemFields[
"PREVIEW_PICTURE"] =
array(
"del" =>
"Y");
817 if(isset($arItemFields[
"DETAIL_PICTURE"]) && $arItemFields[
"DETAIL_PICTURE"] ==
false)
819 $arItemFields[
"DETAIL_PICTURE"] =
array(
"del" =>
"Y");
822 $conn = Application::getConnection();
823 $conn->startTransaction();
827 $res = $ib->Update(
$arRes[
'ID'], $arItemFields);
832 \CIBlockElement::SetPropertyValuesEx(
$arRes[
'ID'],
$arIBlock[
'ID'], $PROPS);
837 $error = $ib->getLastError();
842 $error =
'Internal error updating entity item. Try updating again.';
846 $conn->commitTransaction();
850 $conn->rollbackTransaction();
859 throw new RestException(
'Item not found', self::ERROR_ITEM_NOT_FOUND);
869 throw new RestException(
'Entity not found', self::ERROR_ENTITY_NOT_FOUND);
880 if(self::checkItemParams(
$params))
892 if(\CIBlockRights::UserHasRightTo(
$arIBlock[
'ID'],
$arIBlock[
'ID'],
'element_delete'))
894 $dbRes = \CIBlockElement::GetList(
909 $conn = Application::getConnection();
910 $conn->startTransaction();
914 if (!\CIBlockElement::Delete(
$params[
'ID']))
920 :
'Unable to delete item'
929 $error =
'Internal error deleting entity item. Try deleting again.';
933 $conn->commitTransaction();
937 $conn->rollbackTransaction();
945 throw new RestException(
'Item not found', self::ERROR_ITEM_NOT_FOUND);
955 throw new RestException(
'Entity not found', self::ERROR_ENTITY_NOT_FOUND);
963 if(self::checkItemPropertyParams(
$params))
965 if(self::checkEntity(
$params[
'ENTITY'], $server))
970 if(is_array($arField))
973 'PROPERTY' => $arField[
'CODE'],
974 'NAME' => $arField[
'NAME'],
975 'TYPE' => $arField[
'PROPERTY_TYPE'],
976 'SORT' => $arField[
'SORT'],
981 throw new RestException(
'Property not found', self::ERROR_PROPERTY_NOT_FOUND);
988 while ($arField =
$dbRes->Fetch())
991 'PROPERTY' => $arField[
'CODE'],
992 'NAME' => $arField[
'NAME'],
993 'TYPE' => $arField[
'PROPERTY_TYPE'],
994 'SORT' => $arField[
'SORT'],
1002 throw new RestException(
'Entity not found', self::ERROR_ENTITY_NOT_FOUND);
1009 if(self::checkItemPropertyParams(
$params))
1011 if(!self::checkItemProperty(
$params[
'PROPERTY'],
$params[
'ENTITY'], $server))
1013 if(!isset(
$params[
'PROPERTY']))
1025 "CODE" =>
$params[
'PROPERTY'],
1028 "PROPERTY_TYPE" =>
$params[
'TYPE'],
1034 throw new \Bitrix\Main\NotSupportedException(self::ERROR_UNSUPPORTED_PROPERTY_TYPE);
1037 $ibp = new \CIBlockProperty;
1039 $conn = Application::getConnection();
1040 $conn->startTransaction();
1048 $error = $ibp->getLastError();
1053 $error =
'Internal error adding entity property. Try adding again.';
1057 $conn->commitTransaction();
1061 $conn->rollbackTransaction();
1074 throw new RestException(
'Entity not found', self::ERROR_ENTITY_NOT_FOUND);
1079 throw new RestException (
'Property already exists', self::ERROR_PROPERTY_ALREADY_EXISTS);
1086 if(self::checkItemPropertyParams(
$params))
1088 if(self::checkEntity(
$params[
'ENTITY'], $server))
1093 if(\CIBlockRights::UserHasRightTo($arField[
'IBLOCK_ID'], $arField[
'IBLOCK_ID'],
'iblock_edit'))
1095 $arPropFields =
array();
1099 if (self::checkItemProperty(
$params[
'PROPERTY_NEW'],
$params[
'ENTITY'], $server))
1101 throw new RestException (
'Property '.
$params[
'PROPERTY_NEW'].
' already exists', self::ERROR_PROPERTY_ALREADY_EXISTS);
1104 $arPropFields[
"CODE"] =
$params[
'PROPERTY_NEW'];
1109 $arPropFields[
'NAME'] = trim(
$params[
'NAME']);
1114 $arPropFields[
'SORT'] = trim(
$params[
'SORT']);
1117 if(isset(
$params[
'TYPE']) && $arField[
'PROPERTY_TYPE'] !=
$params[
'TYPE'])
1121 throw new \Bitrix\Main\ArgumentException(
'Cannot change property type to File',
"TYPE");
1129 $arPropFields[
'PROPERTY_TYPE'] =
$params[
'TYPE'];
1133 $ibp = new \CIBlockProperty;
1135 $conn = Application::getConnection();
1136 $conn->startTransaction();
1140 if (!$ibp->Update($arField[
'ID'], $arPropFields))
1142 $error = $ibp->getLastError();
1147 $error =
'Internal error updating entity property. Try updating again.';
1151 $conn->commitTransaction();
1155 $conn->rollbackTransaction();
1168 throw new RestException(
'Property not found', self::ERROR_PROPERTY_NOT_FOUND);
1173 throw new RestException(
'Entity not found', self::ERROR_ENTITY_NOT_FOUND);
1183 if(self::checkItemPropertyParams(
$params))
1185 if(self::checkEntity(
$params[
'ENTITY'], $server))
1190 if(\CIBlockRights::UserHasRightTo($arField[
'IBLOCK_ID'], $arField[
'IBLOCK_ID'],
'iblock_edit'))
1192 $conn = Application::getConnection();
1193 $conn->startTransaction();
1197 if (!CIBlockProperty::Delete($arField[
'ID']))
1203 :
'Unable to delete item'
1212 $error =
'Internal error deleting entity property. Try deleting again.';
1216 $conn->commitTransaction();
1220 $conn->rollbackTransaction();
1233 throw new RestException(
'Property not found', self::ERROR_PROPERTY_NOT_FOUND);
1238 throw new RestException(
'Entity not found', self::ERROR_ENTITY_NOT_FOUND);
1245 if(CModule::IncludeModule(
'iblock'))
1248 '=TYPE' => self::getIBlockType(),
1249 'CODE' => self::ENTITY_IBLOCK_CODE_PREFIX.
"_".$appId.
'%'
1253 \CIBlock::Delete(
$arRes[
'ID']);
1260 $iblockType = COption::GetOptionString(
"rest",
"entity_iblock_type",
"rest_entity");
1262 $arIBlockTypeData =
array(
1263 'ID' => $iblockType,
1268 $obBlocktype = new \CIBlockType();
1269 if($obBlocktype->Add($arIBlockTypeData))
1271 COption::SetOptionString(
"rest",
"entity_iblock_type", $iblockType);
1275 $taskId = \CIBlockRights::LetterToTask(
'X');
1279 $obIBlockRights = new \CIBlockRights(
$arIBlock[
'ID']);
1280 $arRights = $obIBlockRights->GetRights();
1282 foreach($arRights as
$key => $arRight)
1284 if($arRight[
'GROUP_CODE'] ==
'U1')
1286 unset($arRights[
$key]);
1290 $arRights[
'n0'] =
array(
1291 'GROUP_CODE' =>
'U1',
1292 'TASK_ID' => $taskId,
1296 $obIBlockRights->SetRights($arRights);
1304 '=TYPE' => self::getIBlockType(),
1309 if(!
$arRes && !$bSkipCheck)
1321 '=TYPE' => self::getIBlockType(),
1322 'CODE' => self::getEntityIBlockCode(
'%', $server)
1328 $dbRes = \CIBlockProperty::GetByID($property,
false, self::getEntityIBlockCode(
$entity, $server));
1334 return \CIBlockProperty::GetList(
1335 array(
'SORT' =>
'ASC'),
1336 array(
'IBLOCK_CODE' => self::getEntityIBlockCode(
$entity, $server))
1346 $params[
'ENTITY'] = preg_replace(
'/[^a-zA-Z0-9_]/i',
'', trim(strval(
$params[
'ENTITY'])));
1353 if(isset(
$params[
'ENTITY_NEW']))
1355 $params[
'ENTITY_NEW'] = preg_replace(
'/[^a-zA-Z0-9_]/i',
'', trim(strval(
$params[
'ENTITY_NEW'])));
1368 if(self::checkParams(
$params))
1380 if(self::checkParams(
$params))
1392 if(self::checkParams(
$params))
1394 if(isset(
$params[
'PROPERTY']))
1396 $params[
'PROPERTY'] = preg_replace(
'/[^a-zA-Z0-9_]/i',
'', trim(strval(
$params[
'PROPERTY'])));
1399 if(isset(
$params[
'PROPERTY_NEW']))
1401 $params[
'PROPERTY_NEW'] = preg_replace(
'/[^a-zA-Z0-9_]/i',
'', trim(strval(
$params[
'PROPERTY_NEW'])));
1428 if(self::getIBlock(self::getEntityIBlockCode(
$entity, $server)))
1436 if(self::getItemProperty($property,
$entity, $server))
1449 $str = self::ENTITY_IBLOCK_CODE_PREFIX.
"_".$server->
getClientId().
"_";
1473 return COption::GetOptionString(
"rest",
"entity_iblock_type",
"rest_entity");
1478 $arItemFields =
array();
1489 case 'PREVIEW_TEXT_TYPE':
1490 case 'DETAIL_TEXT_TYPE':
1494 case 'SHOW_COUNTER':
1495 case 'SHOW_COUNTER_START':
1500 case 'PROPERTY_VALUES':
1503 while ($arField =
$dbRes->Fetch())
1505 if(isset($param[$arField[
'CODE']]))
1507 if($arField[
'PROPERTY_TYPE'] ==
'F')
1509 $PROPS[$arField[
'CODE']] = CRestUtil::saveFile($param[$arField[
'CODE']]);
1513 $PROPS[$arField[
'CODE']] = $param[$arField[
'CODE']];
1517 $arItemFields[
'PROPERTY_VALUES'] = $PROPS;
1520 case 'DATE_ACTIVE_FROM':
1521 case 'DATE_ACTIVE_TO':
1522 $arItemFields[
$key] = CRestUtil::unConvertDateTime($param,
true);
1525 case 'PREVIEW_PICTURE':
1526 case 'DETAIL_PICTURE':
1527 $arItemFields[
$key] = CRestUtil::saveFile($param);
1531 $arItemFields[
'IBLOCK_SECTION_ID'] = $param;
1535 if(!preg_match(
'/[^a-zA-Z0-9_]/',
$key))
1536 $arItemFields[
$key] = $param;
1541 $arItemFields[
'IBLOCK_ID'] =
$arIBlock[
'ID'];
1543 return $arItemFields;
1548 $arSectionFields =
array();
1559 case 'DESCRIPTION_TYPE':
1565 case 'TIMESTAMP_X_UNIX':
1570 case 'DETAIL_PICTURE':
1571 $arSectionFields[
$key] = CRestUtil::saveFile($param);
1575 $arSectionFields[
'IBLOCK_SECTION_ID'] = $param;
1579 if(!preg_match(
'/[^a-zA-Z0-9_]/',
$key))
1580 $arSectionFields[
$key] = $param;
1585 $arSectionFields[
'IBLOCK_ID'] =
$arIBlock[
'ID'];
1587 return $arSectionFields;
1598 if(is_numeric(
$key) && is_array($value))
1607 if(!in_array($operation, self::$arAllowedOperations))
1615 case 'DATE_ACTIVE_FROM':
1616 case 'DATE_ACTIVE_TO':
1619 $arFilter[
$key] = CRestUtil::unConvertDateTime($value,
true);
1623 $arFilter[$operation.
'IBLOCK_SECTION_ID'] = $value;
1628 case 'CHECK_PERMISSIONS':
1666 if(!in_array($operation, self::$arAllowedOperations))
1676 $arFilter[
$key] = CRestUtil::unConvertDateTime($value,
true);
1680 $arFilter[$operation.
'IBLOCK_SECTION_ID'] = $value;
1685 case 'CHECK_PERMISSIONS':
1709 foreach($arRights as $rightCode =>
$access)
1714 'GROUP_CODE' => $rightCode,
1715 'TASK_ID' => \CIBlockRights::LetterToTask(
$access),
1726 $arFile = CFile::GetFileArray($fileId);
1727 if(is_array($arFile))
1729 return \CHTTP::URN2URI($arFile[
'SRC']);
static resolveIdByCode(string $code, ?string $siteId=null)
static getItemProperty($property, $entity, $server)
static checkItemPropertyParams(&$params)
static entityItemUpdate($params, $n, $server)
const ERROR_PROPERTY_ALREADY_EXISTS
const ERROR_ENTITY_ALREADY_EXISTS
static entityItemGet($params, $n, $server)
const ERROR_UNSUPPORTED_PROPERTY_TYPE
const ERROR_SECTION_NOT_FOUND
const ENTITY_IBLOCK_CODE_PREFIX
static entityAdd($params, $n, $server)
static entitySectionAdd($params, $n, $server)
static entitySectionUpdate($params, $n, $server)
static entitySectionGet($params, $n, $server)
static entityUpdate($params, $n, $server)
const ERROR_ENTITY_NOT_FOUND
static getIBlock($code, $bSkipCheck=false)
static entityItemPropertyDelete($params, $n, $server)
static checkSectionParams(&$params)
static checkItemParams(&$params)
static entityItemPropertyAdd($params, $n, $server)
static OnRestServiceBuildDescription()
static checkRights($arRights)
static parseEntity($iblock, \CRestServer $server)
static entityItemPropertyUpdate($params, $n, $server)
const ERROR_ITEM_NOT_FOUND
static checkParams(&$params)
static getItemProperties($entity, $server)
static prepareSection($params, $arIBlock, $server)
static entityDelete($params, $n, $server)
static entityItemPropertyGet($params, $n, $server)
static entityRights($params, $n, $server)
static getEntityIBlockCode($entity, \CRestServer $server)
static entityGet($params, $n, $server)
static entityItemAdd($params, $n, $server)
static checkFilter($arFilter, $bChangeLogic=true)
static entitySectionDelete($params, $n, $server)
static prepareItem($params, $arIBlock, $server)
const ERROR_UNSUPPORTED_PROPERTY_TYPE_CHANGE
static getIBlocks($server)
static checkEntity($entity, $server)
static entityItemDelete($params, $n, $server)
static checkItemProperty($property, $entity, $server)
const ERROR_PROPERTY_NOT_FOUND
static checkSectionFilter($arFilter, $bChangeLogic=true)
static setNavData($result, $dbRes)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if(! $catalogEdit->isSuccess()) $iblock
if(!is_null($config))($config as $configItem)(! $configItem->isVisible()) $code
if(!is_array($deviceNotifyCodes)) $access
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
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($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']