• Модуль: lists
  • Путь к файлу: ~/bitrix/modules/lists/classes/general/listfields.php
  • Класс: CListFieldList
  • Вызов: CListFieldList::_save_form_settings
protected function _save_form_settings($form_id)
{
	if($form_id && $this->iblock_id)
	{
		$arFormLayout = array();
		$arFormLayout[] = "edit1--#--".CIBlock::GetArrayByID($this->iblock_id, "ELEMENT_NAME");
		foreach($this->fields as $field_id => $sort)
		{
			/** @var CListField $obField */
			$obField = $this->fields[$field_id];
			$arFormLayout[] =
					$obField->GetID()
					."--#--"
					.($obField->IsRequired()? "*": "")
					.str_replace("-", "", $obField->GetLabel())
			;
		}
		$tab1 = implode("--,--", $arFormLayout);

		$arFormLayout = array();
		$arFormLayout[] = "edit2--#--".CIBlock::GetArrayByID($this->iblock_id, "SECTION_NAME");
		$arFormLayout[] = "SECTIONS--#--".CIBlock::GetArrayByID($this->iblock_id, "SECTION_NAME");
		$tab2 = implode("--,--", $arFormLayout);

		global $USER;
		if (is_object($USER) && ((get_class($USER) === 'CUser') || ($USER instanceof CUser)))
			CUserOptions::DeleteOption("form", $form_id); //This clears custom user settings
		CUserOptions::SetOption("form", $form_id, array("tabs" => $tab1."--;--".$tab2."--;--"), true);
	}
}