• Модуль: mobileapp
  • Путь к файлу: ~/bitrix/modules/mobileapp/classes/general/filter.php
  • Класс: CAdminMobileFilter
  • Вызов: CAdminMobileFilter::getHtml
static function getHtml($arFields)
{
	global $APPLICATION;

	$arData = array();

	foreach ($arFields as $fieldID => $arField)
	{
		if ($arField["TYPE"] == "TEXT")
		{
			$arItem = array(
				"TYPE" => "TEXT",
				"ID" => "field_id_" . $fieldID,
				"VALUE" => $arField["VALUE"]
			);
		}
		elseif ($arField["TYPE"] == "DATE")
		{
			$arItem = array(
				"TYPE" => "TEXT",
				"ID" => "field_id_" . $fieldID,
				"VALUE" => $arField["VALUE"],
				"CUSTOM_ATTRS" => array(
					"onclick" => "maAdminFilter.getDatePickerHtml(this);"
				)
			);

		}
		elseif ($arField["TYPE"] == "ONE_SELECT")
		{
			if (isset($arField["ADD_ALL_SELECT"]) && $arField["ADD_ALL_SELECT"] == "Y")
			{
				$arField["OPTIONS"] = array_merge(
					array(self::SELECT_ALL => GetMessage("MOBILEAPP_FILTER_ALL")),
					$arField["OPTIONS"]
				);
			}

			$arItem = array(
				"TYPE" => "RADIO",
				"VALUES" => $arField["OPTIONS"],
				"SELECTED" => $arField["OPTIONS"][$arField["VALUE"]],
				"NAME" => "field_name_" . $fieldID,
			);
		}

		elseif ($arField["TYPE"] == "MULTI_SELECT")
		{
			$checked = array();
			if (is_array($arField["VALUE"]))
			{
				$checked = $arField["VALUE"];
			}
			else
			{
				if (is_string($arField["VALUE"]) && trim($arField["VALUE"]) <> '')
				{
					$checked = explode(',', $arField["VALUE"]);
				}
			}

			$arItem = array(
				"TYPE" => "CHECKBOXES",
				"VALUES" => $arField["OPTIONS"],
				"NAME" => "field_name_" . $fieldID,
			);

			if (!empty($checked))
			{
				$arItem["CHECKED"] = $checked;
			}
		}

		$arData[] = array(
			"TITLE" => $arField["NAME"],
			"TYPE" => "BLOCK",
			"FORM_ID" => "mapp_filter_form_id",
			"DATA" => array($arItem)
		);
	}

	$compParams = array(
		"FORM_ID" => 'mapp_filter_form_id',
		"DATA" => $arData,
	);

	ob_start();
	$APPLICATION->IncludeComponent(
		'bitrix:mobileapp.edit',
		'.default',
		$compParams,
		false
	);

	$result = ob_get_contents();
	ob_end_clean();

	return $result;
}