• Модуль: fileman
  • Путь к файлу: ~/bitrix/modules/fileman/classes/general/medialib.php
  • Класс: CMedialib
  • Вызов: CMedialib::SetTypes
static function SetTypes($arTypes = array())
{
	global $DB;

	for ($i = 0, $l = count($arTypes); $i < $l; $i++)
	{
		$arFields = $arTypes[$i];

		$arFields["CODE"] = preg_replace("/[^a-zA-Z0-9_]/i", "", $arFields["CODE"]);
		$arFields["EXT"] = preg_replace("/[^a-zA-Z0-9_,]/i", "", $arFields["EXT"]);

		//if ($arFields["CODE"] == '' || $arFields["EXT"] == '' || $arFields["NAME"] == '')
		if ($arFields["CODE"] == '' || $arFields["EXT"] == '')
			continue;

		$id = intval($arFields['ID']);
		unset($arFields['ID']);

		if ($arFields['NEW'] ?? null) // Add
		{
			unset($arFields['NEW']);
			$DB->Add("b_medialib_type", $arFields, array("DESCRIPTION"));
		}
		else // Update
		{
			// Edit only non system types
			//if ($arFields['SYSTEM'] == 'Y')
			//	continue;

			//$strSql =
			//	"UPDATE b_medialib_type SET ".
			//		$DB->PrepareUpdate("b_medialib_type", $arFields).
			//	" WHERE SYSTEM<>'Y' AND ID=".$id;

			$strSql =
				"UPDATE b_medialib_type SET ".
					$DB->PrepareUpdate("b_medialib_type", $arFields).
				" WHERE ID=".$id;

			$DB->QueryBind($strSql,
				array('DESCRIPTION' => $arFields['DESCRIPTION'] ?? ''),
				false, "File: ".__FILE__."
Line: ".__LINE__ ); } } self::ClearCache(array("types")); }