• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/grid/row/actions/item/createcodeitem.php
  • Класс: BitrixIblockGridRowActionsItemCreateCodeItem
  • Вызов: CreateCodeItem::getControl
public function getControl(array $rawFields): ?array
{
	if (empty($rawFields['ID']))
	{
		return null;
	}

	$rowId = (int)$rawFields['ID'];
	$rowType = (string)($rawFields['ROW_TYPE'] ?? RowType::ELEMENT);

	if ($rowType === RowType::SECTION)
	{
		if (
			empty($this->getSectionTranslitSettings())
			|| !$this->getIblockRightsChecker()->canEditSection($rowId)
		)
		{
			return null;
		}
	}
	elseif ($rowType === RowType::ELEMENT)
	{
		if (
			empty($this->getElementTranslitSettings())
			|| !$this->getIblockRightsChecker()->canEditElement($rowId)
		)
		{
			return null;
		}
	}
	else
	{
		// unknown type
		return null;
	}

	$actionId = self::getId();
	$data = CUtil::PhpToJSObject([
		'id' => RowType::getIndex($rowType, $rowId),
	]);

	$confirmMessage =
		$rowType === RowType::SECTION
			? Loc::getMessage('IBLOCK_GRID_ROW_ACTIONS_CREATE_CODE_SECTION_CONFIRM')
			: Loc::getMessage('IBLOCK_GRID_ROW_ACTIONS_CREATE_CODE_ELEMENT_CONFIRM')
	;
	$confirmMessage = CUtil::JSEscape($confirmMessage);

	$this->onclick = "IblockGridInstance.sendActionWithConfirm('{$actionId}', {$data}, '{$confirmMessage}')";

	return parent::getControl($rawFields);
}