- Модуль: lists
- Путь к файлу: ~/bitrix/modules/lists/lib/entity/element.php
- Класс: BitrixListsEntityElement
- Вызов: Element::getElementData
private function getElementData()
{
$elementSelect = ["ID", "IBLOCK_ID", "NAME", "IBLOCK_SECTION_ID", "CREATED_BY", "BP_PUBLISHED", "CODE"];
$elementFields = [];
$elementProperty = [];
$fields = $this->listObject->getFields();
$propertyFields = [];
foreach ($fields as $fieldId => $field)
{
if ($this->listObject->is_field($fieldId))
$elementSelect[] = $fieldId;
else
$propertyFields[] = $fieldId;
if ($fieldId == "CREATED_BY")
$elementSelect[] = "CREATED_USER_NAME";
if ($fieldId == "MODIFIED_BY")
$elementSelect[] = "USER_NAME";
}
$filter = [
"IBLOCK_TYPE" => $this->params["IBLOCK_TYPE_ID"],
"IBLOCK_ID" => $this->iblockId,
"ID" => $this->elementId,
"CHECK_PERMISSIONS" => "N"
];
$queryObject = CIBlockElement::getList([], $filter, false, false, $elementSelect);
if ($result = $queryObject->fetch())
{
$elementFields = $result;
if (!empty($propertyFields))
{
$queryProperty = CIBlockElement::getProperty(
$this->iblockId,
$result["ID"], "SORT", "ASC",
array("ACTIVE"=>"Y", "EMPTY"=>"N")
);
while ($property = $queryProperty->fetch())
{
$propertyId = $property["ID"];
if (!array_key_exists($propertyId, $elementProperty))
{
$elementProperty[$propertyId] = $property;
unset($elementProperty[$propertyId]["DESCRIPTION"]);
unset($elementProperty[$propertyId]["VALUE_ENUM_ID"]);
unset($elementProperty[$propertyId]["VALUE_ENUM"]);
unset($elementProperty[$propertyId]["VALUE_XML_ID"]);
$elementProperty[$propertyId]["FULL_VALUES"] = [];
$elementProperty[$propertyId]["VALUES_LIST"] = [];
}
$elementProperty[$propertyId]["FULL_VALUES"][$property["PROPERTY_VALUE_ID"]] = [
"VALUE" => $property["VALUE"],
"DESCRIPTION" => $property["DESCRIPTION"],
];
$elementProperty[$propertyId]["VALUES_LIST"][$property["PROPERTY_VALUE_ID"]] = $property["VALUE"];
}
}
}
return [$elementSelect, $elementFields, $elementProperty];
}