- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/classes/general/subelement.php
- Класс: CAdminSubList
- Вызов: CAdminSubList::AddHeaders
public function AddHeaders($aParams)
{
$showAll = $this->request->get('showallcol');
if ($showAll !== null && $showAll !== '')
{
$this->session['SHALL'] = $showAll === 'Y';
}
$showAll = isset($this->session['SHALL']) && $this->session['SHALL'];
$hiddenColumns = (!empty($this->arHideHeaders) ? array_fill_keys($this->arHideHeaders, true) : array());
$aOptions = CUserOptions::GetOption("list", $this->table_id, array());
if (!is_array($aOptions))
{
$aOptions = [];
}
$aColsTmp = explode(",", $aOptions["columns"] ?? '');
$aCols = array();
$userColumns = array();
foreach($aColsTmp as $col)
{
$col = trim($col);
if ($col != '' && !isset($hiddenColumns[$col]))
{
$aCols[] = $col;
$userColumns[$col] = true;
}
}
$bEmptyCols = empty($aCols);
$userVisibleColumns = array();
foreach ($aParams as $param)
{
$param["__sort"] = -1;
$param['default'] ??= false;
if (!isset($hiddenColumns[$param["id"]]))
{
$this->aHeaders[$param["id"]] = $param;
if (
$showAll
|| ($bEmptyCols && ($param["default"] === true))
|| isset($userColumns[$param["id"]])
)
{
$this->arVisibleColumns[] = $param["id"];
$userVisibleColumns[$param["id"]] = true;
}
}
}
unset($userColumns);
$aAllCols = ($this->isConfigMode() ? $this->aHeaders : null);
if(!$bEmptyCols)
{
foreach ($aCols as $i => $col)
if (isset($this->aHeaders[$col]))
$this->aHeaders[$col]["__sort"] = $i;
MainTypeCollection::sortByColumn($this->aHeaders, array('__sort' => SORT_ASC), '', null, true);
}
foreach($this->aHeaders as $id=>$arHeader)
{
if (isset($userVisibleColumns[$id]) && !isset($hiddenColumns[$id]))
$this->aVisibleHeaders[$id] = $arHeader;
}
unset($userVisibleColumns, $hiddenColumns);
if ($this->isConfigMode())
{
$this->ShowSettings($aAllCols, $aCols, $aOptions);
}
}