Стоит корп портал.
Делаю список сотрудников компании, где надо вытащить id фио и подразделения, вот не могу справиться именно с подразделениями, так как это доп поле "привязка к разделу инфоблока", надо вытащить именно так Главный отдел / дочерний отдел / дочерний отдел дочернего / отдел где работает сотрудник. Но в итоге выходит как дочерний отдел дочернего / отдел где работает, причем если выводить так то всю иерархию выводит нормально
$rsParentSection = CIBlockSection::GetByID($value);
if ($thisSection = $rsParentSection->GetNext())
{
$arFilter = array('IBLOCK_ID' => 5, "<=LEFT_BORDER" => $thisSection["LEFT_MARGIN"],
">=RIGHT_BORDER" => $thisSection["RIGHT_MARGIN"],
"<DEPTH_LEVEL" => $thisSection["DEPTH_LEVEL"]); // выберет потомков без учета активности
$rsSect = CIBlockSection::GetList(array('left_margin' => 'asc'),$arFilter);
while ($arSect = $rsSect->GetNext())
{
$sectionNames = $arSect["NAME"]; // наше имя
}
}
Написал вот такого вот монстра, если кто подскажет как будет правильней буду рад.
<?
$result = \Bitrix\Main\UserTable::getList(array(
'select' => array('ID','NAME','LAST_NAME','SECOND_NAME','UF_DEPARTMENT'), // выберем идентификатор и генерируемое (expression) поле SHORT_NAME
'order' => array('LAST_LOGIN'=>'DESC'), // все группы, кроме основной группы администраторов,
));
?>
<table class="allusers">
<thead><th>ID</th><th>Имя Фамилия</th><th>Отдел</th></thead>
<?
while ($arUser = $result->fetch()) {
foreach ($arUser['UF_DEPARTMENT'] as $key => $value) {
}
$arFilter = array("IBLOCK_ID"=>5, "ID" => $value);
//какие свойства хотим получить, в данном случае нам надо название, описание и пользовательское свойство раздела (создается в меню редактирования раздела в админке)
$arSelect = array("NAME", "DESCRIPTION", "UF_PRE");
$rsResult = CIBlockSection::GetList(array("SORT"=>"ASC"), $arFilter, false, $arSelect);
while($ob = $rsResult->GetNext()) {
$sectionName = $ob["NAME"]; // наше имя
}
//пример выборки дерева подразделов для раздела
$rsParentSection = CIBlockSection::GetByID($value);
if ($thisSection = $rsParentSection->GetNext())
{
$arFilter = array('IBLOCK_ID' => 5, "<=LEFT_BORDER" => $thisSection["LEFT_MARGIN"],
">=RIGHT_BORDER" => $thisSection["RIGHT_MARGIN"],
"<DEPTH_LEVEL" => $thisSection["DEPTH_LEVEL"]); // выберет потомков без учета активности
$rsSect = CIBlockSection::GetList(array('left_margin' => 'asc'),$arFilter);
while ($arSect = $rsSect->GetNext())
{
$sectionNames = $arSect["NAME"]; // наше имя
}
}
echo "<tr><td>".$arUser['ID']."</td><td>".$arUser['NAME']." ".$arUser['LAST_NAME']." ".$arUser['SECOND_NAME']."</td><td>".$sectionNames." / ".$sectionName."</td></tr>";
}
?>