• Модуль: fileman
  • Путь к файлу: ~/bitrix/modules/fileman/classes/general/html_editor.php
  • Класс: CHTMLEditor
  • Вызов: CHTMLEditor::_HandleComponentElement
static function _HandleComponentElement($arEls, $path)
{
	foreach ($arEls as $elName => $arEl)
	{
		$arEl['*'] = $arEl['*'] ?? null;
		if (mb_strpos($path, ",") !== false)
		{
			if (isset($arEl['*']))
			{
				$thirdLevelName = '__bx_thirdLevel_'.self::$thirdLevelId;
				self::$thirdLevelId++;
				foreach ($arEl['*'] as $name => $comp)
				{
					self::$arComponents['items'][] = array(
						"path" => $path,
						"name" => $name,
						"type" => $comp['TYPE'],
						"title" => $comp['TITLE'],
						"complex" => $comp['COMPLEX'],
						"params" => array("DESCRIPTION" => $comp['DESCRIPTION']),
						"thirdlevel" => $thirdLevelName
					);
				}
			}
			continue;
		}

		$realPath = (($path == '') ? $elName : $path.','.$elName);
		// Group
		self::$arComponents['groups'][] = array(
			"path" => $path,
			"name" => $elName,
			"title" => (isset($arEl['@']['NAME']) && $arEl['@']['NAME'] !== '') ? $arEl['@']['NAME'] : $elName
		);

		if (isset($arEl['#']))
		{
			self::_HandleComponentElement($arEl['#'], $realPath);
		}

		if (is_array($arEl['*']) && !empty($arEl['*']))
		{
			foreach ($arEl['*'] as $name => $comp)
			{
				self::$arComponents['items'][] = array(
					"path" => $realPath,
					"name" => $name,
					"type" => $comp['TYPE'],
					"title" => $comp['TITLE'],
					"complex" => $comp['COMPLEX'],
					"params" => array("DESCRIPTION" => $comp['DESCRIPTION']),
					"thirdlevel" => false
				);
			}
		}
	}
}