- Модуль: report
- Путь к файлу: ~/bitrix/modules/report/classes/general/report.php
- Класс: CReport
- Вызов: CReport::generateColumnTree
static function generateColumnTree($chains, $initEntity, $helper_class, $level = 0)
{
$tree = array();
foreach ($chains as $k => $v)
{
if ($k == '__CHAIN__')
{
continue;
}
if ($v instanceof EntityQueryChain)
{
// there is single element (chain)
$chain = $v;
$treeElem = $chain->getLastElement()->getValue();
$branch = null;
}
else
{
// there is sub tree
if (!empty($v['__CHAIN__']))
{
// real sub-tree
$chain = $v['__CHAIN__'];
$treeElem = $v['__CHAIN__']->getLastElement()->getValue();
if (is_array($treeElem))
{
$treeElem = $treeElem[1];
}
}
else
{
// virtual category
$chain = null;
$treeElem = null;
}
$branch = self::generateColumnTree($v, $initEntity, $helper_class, $level+1);
}
$tree[] = array(
'fieldName' => $k,
'humanTitle' => '', // reserved
'fullHumanTitle' => '', // reserved
'field' => $treeElem,
'chain' => $chain,
'branch' => $branch
);
}
if ($level == 0)
{
self::attachLangToColumnTree($tree, $initEntity, $helper_class);
}
return $tree;
}