32 static::SCOPE =>
array(
33 "lists.get.iblock.type.id" =>
array(__CLASS__,
"getIblockTypeId"),
35 "lists.add" =>
array(__CLASS__,
"addLists"),
36 "lists.get" =>
array(__CLASS__,
"getLists"),
37 "lists.update" =>
array(__CLASS__,
"updateLists"),
38 "lists.delete" =>
array(__CLASS__,
"deleteLists"),
40 "lists.section.add" =>
array(__CLASS__,
"addSection"),
41 "lists.section.get" =>
array(__CLASS__,
"getSection"),
42 "lists.section.update" =>
array(__CLASS__,
"updateSection"),
43 "lists.section.delete" =>
array(__CLASS__,
"deleteSection"),
45 "lists.field.add" =>
array(__CLASS__,
"addField"),
46 "lists.field.get" =>
array(__CLASS__,
"getFields"),
47 "lists.field.update" =>
array(__CLASS__,
"updateField"),
48 "lists.field.delete" =>
array(__CLASS__,
"deleteField"),
49 "lists.field.type.get" =>
array(__CLASS__,
"getFieldTypes"),
51 "lists.element.add" =>
array(__CLASS__,
"addElement"),
52 "lists.element.get" =>
array(__CLASS__,
"getElement"),
53 "lists.element.update" =>
array(__CLASS__,
"updateElement"),
54 "lists.element.delete" =>
array(__CLASS__,
"deleteElement"),
55 "lists.element.get.file.url" =>
array(__CLASS__,
"getFileUrl"),
67 if ($iblockType->hasErrors())
69 self::throwError($iblockType->getErrors());
87 $rightParam->setUser(
$USER);
89 if (!\CLists::isListFeatureEnabled($rightParam->getIblockTypeId()))
95 $right->checkPermission(IblockRight::EDIT);
98 self::throwError(
$right->getErrors());
101 $conn = Application::getConnection();
102 $conn->startTransaction();
115 $errors[] =
new Error(
'Internal error adding list. Try adding again.');
119 $conn->commitTransaction();
125 $conn->rollbackTransaction();
137 $rightParam->setUser(
$USER);
139 if (!\CLists::isListFeatureEnabled((
string)$rightParam->getIblockTypeId()))
145 $right->checkPermission(IblockRight::READ);
148 self::throwError(
$right->getErrors());
152 list ($iblocks, $queryObject) =
$iblock->get(self::getNavData(
$n));
153 if (empty($iblocks) ||
$iblock->hasErrors())
175 $rightParam->setUser(
$USER);
177 if (!\CLists::isListFeatureEnabled($rightParam->getIblockTypeId()))
183 $right->checkPermission(IblockRight::EDIT);
186 self::throwError(
$right->getErrors());
189 $conn = Application::getConnection();
190 $conn->startTransaction();
203 $errors[] =
new Error(
'Internal error updating the list. Try updating again.');
207 $conn->commitTransaction();
213 $conn->rollbackTransaction();
231 $rightParam->setUser(
$USER);
233 if (!\CLists::isListFeatureEnabled($rightParam->getIblockTypeId()))
239 $right->checkPermission(IblockRight::EDIT);
242 self::throwError(
$right->getErrors());
245 $conn = Application::getConnection();
246 $conn->startTransaction();
259 $errors[] =
new Error(
'Internal error deleting list. Try deleting again.');
263 $conn->commitTransaction();
269 $conn->rollbackTransaction();
282 $rightParam->setUser(
$USER);
283 $rightParam->setEntityId(
$params[
"IBLOCK_SECTION_ID"]);
285 if (!\CLists::isListFeatureEnabled($rightParam->getIblockTypeId()))
294 self::throwError(
$right->getErrors());
297 $section =
new Section($param);
299 $conn = Application::getConnection();
300 $conn->startTransaction();
304 $sectionId = $section->add();
307 $errors = $section->getErrors();
313 $errors[] =
new Error(
'Internal error adding list section. Try adding again.');
317 $conn->commitTransaction();
323 $conn->rollbackTransaction();
336 $rightParam->setUser(
$USER);
337 $rightParam->setEntityId(
$params[
"IBLOCK_SECTION_ID"]);
339 if (!\CLists::isListFeatureEnabled($rightParam->getIblockTypeId()))
348 self::throwError(
$right->getErrors());
351 $section =
new Section($param);
352 list ($sections, $queryObject) = $section->get(self::getNavData(
$n));
353 if (empty($sections) || $section->hasErrors())
368 $section =
new Section($param);
369 if (!$section->isExist())
376 $rightParam->setUser(
$USER);
377 $rightParam->setEntityId(
$params[
"IBLOCK_SECTION_ID"]);
379 if (!\CLists::isListFeatureEnabled($rightParam->getIblockTypeId()))
388 self::throwError(
$right->getErrors());
391 $conn = Application::getConnection();
392 $conn->startTransaction();
399 $errors = $section->getErrors();
405 $errors[] =
new Error(
'Internal error updating the list section. Try updating again.');
409 $conn->commitTransaction();
415 $conn->rollbackTransaction();
426 $section =
new Section($param);
427 if (!$section->isExist())
434 $rightParam->setUser(
$USER);
435 $rightParam->setEntityId(
$params[
"IBLOCK_SECTION_ID"]);
437 if (!\CLists::isListFeatureEnabled($rightParam->getIblockTypeId()))
446 self::throwError(
$right->getErrors());
449 $conn = Application::getConnection();
450 $conn->startTransaction();
457 $errors = $section->getErrors();
463 $errors[] =
new Error(
'Internal error deleting list section. Try deleting again.');
467 $conn->commitTransaction();
473 $conn->rollbackTransaction();
491 $rightParam->setUser(
$USER);
493 if (!\CLists::isListFeatureEnabled($rightParam->getIblockTypeId()))
499 $right->checkPermission(IblockRight::EDIT);
502 self::throwError(
$right->getErrors());
505 $field =
new Field($param);
506 $fieldId = $field->add();
507 if ($field->hasErrors())
509 self::throwError($field->getErrors());
529 $rightParam->setUser(
$USER);
531 if (!\CLists::isListFeatureEnabled($rightParam->getIblockTypeId()))
537 $right->checkPermission();
540 self::throwError(
$right->getErrors());
543 $field =
new Field($param);
544 return $field->get();
559 $rightParam->setUser(
$USER);
561 if (!\CLists::isListFeatureEnabled($rightParam->getIblockTypeId()))
567 $right->checkPermission(IblockRight::EDIT);
570 self::throwError(
$right->getErrors());
573 $field =
new Field($param);
574 if ($field->update())
580 self::throwError($field->getErrors());
596 $rightParam->setUser(
$USER);
598 if (!\CLists::isListFeatureEnabled($rightParam->getIblockTypeId()))
604 $right->checkPermission(IblockRight::EDIT);
607 self::throwError(
$right->getErrors());
610 $field =
new Field($param);
628 $rightParam->setUser(
$USER);
630 if (!\CLists::isListFeatureEnabled($rightParam->getIblockTypeId()))
636 $right->checkPermission(IblockRight::EDIT);
639 self::throwError(
$right->getErrors());
642 $field =
new Field($param);
643 return $field->getAvailableTypes();
659 $rightParam->setUser(
$USER);
660 $rightParam->setEntityId(
$params[
"IBLOCK_SECTION_ID"]);
662 if (!\CLists::isListFeatureEnabled($rightParam->getIblockTypeId()))
669 $right->checkPermission(ElementRight::ADD);
672 self::throwError(
$right->getErrors());
675 $element =
new Element($param);
676 if ($element->isExist())
681 $conn = Application::getConnection();
682 $conn->startTransaction();
686 $elementId = $element->add();
689 $errors = $element->getErrors();
695 $errors[] =
new Error(
'Internal error adding list element. Try adding again.');
699 $conn->commitTransaction();
705 $conn->rollbackTransaction();
724 $rightParam->setUser(
$USER);
725 $rightParam->setEntityId(Utils::getElementId($param->getParams()));
727 if (!\CLists::isListFeatureEnabled($rightParam->getIblockTypeId()))
733 $param->setParam([
"CAN_FULL_EDIT" => ($elementRight->canFullEdit() ?
"Y" :
"N")]);
736 $right->checkPermission(ElementRight::READ);
739 self::throwError(
$right->getErrors());
742 $element =
new Element($param);
743 if (is_array(
$params[
"FILTER"] ??
null))
745 list($availableFields, $listCustomFields) = $element->getAvailableFields();
746 $element->resultSanitizeFilter = self::getSanitizeFilter(
747 $params[
"FILTER"], $availableFields, $listCustomFields);
749 list ($elements, $queryObject) = $element->get(self::getNavData(
$n));
772 $rightParam->setUser(
$USER);
773 $rightParam->setEntityId(Utils::getElementId($param->getParams()));
775 if (!\CLists::isListFeatureEnabled($rightParam->getIblockTypeId()))
782 $right->checkPermission(ElementRight::EDIT);
785 self::throwError(
$right->getErrors());
788 $element =
new Element($param);
789 if (!$element->isExist())
794 $conn = Application::getConnection();
795 $conn->startTransaction();
802 $errors = $element->getErrors();
808 $errors[] =
new Error(
'Internal error updating list element. Try updating again.');
812 $conn->commitTransaction();
818 $conn->rollbackTransaction();
836 $rightParam->setUser(
$USER);
837 $rightParam->setEntityId(Utils::getElementId($param->getParams()));
839 if (!\CLists::isListFeatureEnabled($rightParam->getIblockTypeId()))
846 $right->checkPermission(ElementRight::EDIT);
849 self::throwError(
$right->getErrors());
852 $element =
new Element($param);
853 if (!$element->isExist())
858 $elementRight->canDelete();
859 if ($elementRight->hasErrors())
861 self::throwError($elementRight->getErrors());
864 $conn = Application::getConnection();
865 $conn->startTransaction();
872 $errors = $element->getErrors();
878 $errors[] =
new Error(
'Internal error deleting list element. Try deleting again.');
882 $conn->commitTransaction();
888 $conn->rollbackTransaction();
906 $rightParam->setUser(
$USER);
907 $rightParam->setEntityId(Utils::getElementId($param->getParams()));
909 if (!\CLists::isListFeatureEnabled($rightParam->getIblockTypeId()))
916 $right->checkPermission(ElementRight::READ);
919 self::throwError(
$right->getErrors());
922 $element =
new Element($param);
923 if (!$element->isExist())
928 return $element->getFileUrl();
950 throw new RestException(
$error, RestException::ERROR_CORE);
957 throw new RestException(
"Unknown error", RestException::ERROR_NOT_FOUND);
960 private static function getSanitizeFilter(
$filter, $availableFields, $listCustomFields)
962 return parent::sanitizeFilter(
965 function($field, $value) use ($listCustomFields)
967 if (array_key_exists($field, $listCustomFields))
969 $callback = $listCustomFields[$field];
970 if ($callback instanceof \Closure)
972 return $callback($value);
976 return call_user_func_array($listCustomFields[$field], [[], [
"VALUE" => $value]]);
981 [
"",
"!%",
">=",
"><",
"!><",
">",
"<=",
"<",
"%",
"=",
"*",
"!"]
const ERROR_ELEMENT_NOT_FOUND
const ERROR_ELEMENT_ALREADY_EXISTS
const ERROR_IBLOCK_NOT_FOUND
const ERROR_IBLOCK_ALREADY_EXISTS
const ERROR_SECTION_NOT_FOUND
static addLists(array $params, $n, \CRestServer $server)
const ERROR_PROPERTY_ALREADY_EXISTS
static onRestServiceBuildDescription()
static getFieldTypes(array $params, $n, \CRestServer $server)
static getIblockTypeId(array $params, $n, \CRestServer $server)
const ENTITY_LISTS_CODE_PREFIX
const ERROR_DELETE_ELEMENT
const ERROR_IBLOCK_NOT_FOUND
const ERROR_IBLOCK_ALREADY_EXISTS
static addField(array $params, $n, \CRestServer $server)
static getFields(array $params, $n, \CRestServer $server)
static addElement(array $params, $n, \CRestServer $server)
static getElement(array $params, $n, \CRestServer $server)
static getSection(array $params, $n, \CRestServer $server)
static updateElement(array $params, $n, \CRestServer $server)
static deleteSection(array $params, $n, \CRestServer $server)
static deleteElement(array $params, $n, \CRestServer $server)
static addSection(array $params, $n, \CRestServer $server)
static updateSection(array $params, $n, \CRestServer $server)
static deleteLists(array $params, $n, \CRestServer $server)
static getFileUrl(array $params, $n, \CRestServer $server)
static deleteField(array $params, $n, \CRestServer $server)
static updateField(array $params, $n, \CRestServer $server)
static getLists(array $params, $n, \CRestServer $server)
const ERROR_REQUIRED_PARAMETERS_MISSING
static updateLists(array $params, $n, \CRestServer $server)
static includeModule($moduleName)
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( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
if($inWords) echo htmlspecialcharsbx(Number2Word_Rus(roundEx($totalVatSum $params['CURRENCY']