- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/classes/general/columnmanager.php
- Класс: CTaskColumnManager
- Вызов: CTaskColumnManager::moveColumnAfter
public function moveColumnAfter($movedColumnId, $moveAfterId = 0)
{
CTaskAssert::assertLaxIntegers($movedColumnId, $moveAfterId);
$movedColumnId = (int) $movedColumnId;
$moveAfterId = (int) $moveAfterId;
$arAllowedColumnsIDs = array_keys(CTaskColumnList::get());
CTaskAssert::assert(
($movedColumnId > 0)
&& ($moveAfterId >= 0)
&& in_array($movedColumnId, $arAllowedColumnsIDs)
);
$arCurrentColumns = $this->getCurrentPresetColumns();
$arColumnToBeMoved = null;
foreach ($arCurrentColumns as &$columnData)
{
if ($columnData['ID'] == $movedColumnId)
{
$arColumnToBeMoved = $columnData;
break;
}
}
unset($columnData);
if ($arColumnToBeMoved === null)
return (false);
$arNewColumns = array();
if ($moveAfterId === 0)
{
$arNewColumns[] = array(
'ID' => $movedColumnId,
'WIDTH' => $arColumnToBeMoved['WIDTH']
);
foreach ($arCurrentColumns as &$columnData)
{
if ($columnData['ID'] == $movedColumnId)
continue;
$arNewColumns[] = array(
'ID' => $columnData['ID'],
'WIDTH' => $columnData['WIDTH']
);
}
unset($columnData);
}
else
{
foreach ($arCurrentColumns as $columnData)
{
$columnId = $columnData['ID'];
if ($columnId == $movedColumnId)
continue;
$arNewColumns[] = array(
'ID' => $columnId,
'WIDTH' => $columnData['WIDTH']
);
if ($columnId == $moveAfterId)
{
$arNewColumns[] = array(
'ID' => $arColumnToBeMoved['ID'],
'WIDTH' => $arColumnToBeMoved['WIDTH']
);
}
}
}
$this->setColumns($arNewColumns);
return (true);
}