• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/grid/row/assembler/property/elementfieldassembler.php
  • Класс: BitrixIblockGridRowAssemblerPropertyElementFieldAssembler
  • Вызов: ElementFieldAssembler::prepareRow
protected function prepareRow(array $row): array
{
	if (!self::isElementRow($row))
	{
		return $row;
	}

	$columnIds = $this->getColumnIds();
	if (empty($columnIds))
	{
		return $row;
	}

	$rowId = RowType::getIndex(self::getRowType($row), (string)($row['data']['ID'] ?? ''));

	$row['columns'] ??= [];

	foreach ($columnIds as $columnId)
	{
		$value = $this->getColumnValues($row['data'][$columnId] ?? null);
		$viewValue = '';
		if (!empty($value))
		{
			$tmp = [];
			foreach ($value as $valueItem)
			{
				$tmp[] = $this->getName((int)$valueItem);
			}

			$viewValue = join(' / ', $tmp);
		}

		// view
		$row['columns'][$columnId] ??= $viewValue;

		// edit
		if ($this->isCustomEditable($columnId))
		{
			$row['data']['~' . $columnId] = $this->getEditValue($rowId, $columnId, $this->properties[$columnId], $value);
		}
		unset($value);
	}

	return $row;
}