- Модуль: lists
- Путь к файлу: ~/bitrix/modules/lists/lib/entity/field.php
- Класс: BitrixListsEntityField
- Вызов: Field::adjustmentFields
private function adjustmentFields($fields)
{
foreach ($fields as $fieldId => &$field)
{
if ($field["TYPE"] == "ACTIVE_FROM")
{
if ($field["DEFAULT_VALUE"] === "=now")
$field["DEFAULT_VALUE"] = ConvertTimeStamp(time()+CTimeZone::getOffset(), "FULL");
elseif ($field["DEFAULT_VALUE"] === "=today")
$field["DEFAULT_VALUE"] = ConvertTimeStamp(time()+CTimeZone::getOffset(), "SHORT");
}
elseif ($field["TYPE"] == "L")
{
$option = [];
$propertyEnum = CIBlockProperty::getPropertyEnum($field["ID"]);
while ($listEnum = $propertyEnum->fetch())
{
if ($listEnum["DEF"] === "Y")
{
$field["DEFAULT_VALUE"] = $listEnum["ID"];
}
$option[$listEnum["ID"]] = $listEnum["VALUE"];
}
$field["DISPLAY_VALUES_FORM"] = $option;
}
elseif ($field["TYPE"] == "G")
{
$option = [];
$sections = CIBlockSection::getTreeList(["IBLOCK_ID" => $field["LINK_IBLOCK_ID"]]);
while ($section = $sections->getNext())
$option[$section["ID"]] = str_repeat(" . ", $section["DEPTH_LEVEL"]).$section["~NAME"];
$field["DISPLAY_VALUES_FORM"] = $option;
}
elseif (preg_match("/^(E|E:)/", $field["TYPE"]))
{
$option = [];
$elements = CIBlockElement::getList(["NAME"=>"ASC"],
["IBLOCK_ID" => $field["LINK_IBLOCK_ID"]], false, false, ["ID", "NAME"]);
while ($element = $elements->fetch())
$option[$element["ID"]] = $element["NAME"];
$field["DISPLAY_VALUES_FORM"] = $option;
}
elseif ($field["TYPE"] == "N:Sequence")
{
$sequence = new CIBlockSequence($field["IBLOCK_ID"], $field["ID"]);
$field["USER_TYPE_SETTINGS"]["VALUE"] = $sequence->getNext();
}
}
return $fields;
}