• Модуль: 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);
}