if ($_POST['mode'] === 'addRemoveColumns') { CTaskAssert::assert(isset($_POST['selectedColumns'], $_POST['columnContextId'])); CTaskAssert::assert(is_array($_POST['selectedColumns'])); $arNewColumns = array(); $loggedInUserId = $USER->getId(); $columnContextId = (int) $_POST['columnContextId']; $selectedColumns = array_unique(array_map('intval', $_POST['selectedColumns'])); // Force TITLE column if (!in_array(CTaskColumnList::COLUMN_TITLE, $selectedColumns, true)) { $selectedColumns[] = CTaskColumnList::COLUMN_TITLE; } CTaskAssert::assert($loggedInUserId >= 1); CTaskAssert::assert(in_array($columnContextId, CTaskColumnContext::get())); $oPresetManager = CTaskColumnPresetManager::getInstance($loggedInUserId, $columnContextId); $oColumnManager = new CTaskColumnManager($oPresetManager); $arCurrentColumns = $oColumnManager->getCurrentPresetColumns(); // remove not selected columns $arColumnsIds = array(); foreach ($arCurrentColumns as &$columnData) { if (in_array((int) $columnData['ID'], $selectedColumns, true) && !in_array((int) $columnData['ID'], $arColumnsIds, true)) { $arNewColumns[] = $columnData; $arColumnsIds[] = (int) $columnData['ID']; } } unset($columnData); // add new columns foreach (array_diff($selectedColumns, $arColumnsIds) as $newColumndId) { $arNewColumns[] = array('ID' => $newColumndId, 'WIDTH' => 0); } if (empty($arNewColumns)) { $arNewColumns[] = array('ID' => CTaskColumnList::COLUMN_TITLE, 'WIDTH' => 0);
break; default: $columnsContextId = CTaskColumnContext::CONTEXT_ALL; break; } break; case CTaskListState::VIEW_SECTION_ADVANCED_FILTER: default: $columnsContextId = CTaskColumnContext::CONTEXT_ALL; break; } } $arResult['COLUMNS_CONTEXT_ID'] = $columnsContextId; $oColumnPreset = CTaskColumnPresetManager::getInstance($loggedInUserId, $columnsContextId); $oColumnManager = new CTaskColumnManager($oColumnPreset); $arResult['COLUMNS'] = $oColumnManager->getCurrentPresetColumns(); $arResult['KNOWN_COLUMNS'] = CTaskColumnList::get(); //user paths $arParams["PATH_TO_USER_TASKS"] = trim($arParams["PATH_TO_USER_TASKS"]); if (strlen($arParams["PATH_TO_USER_TASKS"]) <= 0) { $arParams["PATH_TO_USER_TASKS"] = COption::GetOptionString("tasks", "paths_task_user", null, SITE_ID); } $arParams["PATH_TO_USER_TASKS_TASK"] = trim($arParams["PATH_TO_USER_TASKS_TASK"]); if (strlen($arParams["PATH_TO_USER_TASKS_TASK"]) <= 0) { $arParams["PATH_TO_USER_TASKS_TASK"] = COption::GetOptionString("tasks", "paths_task_user_action", null, SITE_ID); } $arParams["PATH_TO_USER_TASKS_REPORT"] = trim($arParams["PATH_TO_USER_TASKS_REPORT"]); if (strlen($arParams["PATH_TO_USER_TASKS_REPORT"]) <= 0) { $arParams["PATH_TO_USER_TASKS_REPORT"] = htmlspecialcharsbx($APPLICATION->GetCurPage() . "?" . $arParams["PAGE_VAR"] . "=user_tasks_report&" . $arParams["USER_VAR"] . "=#user_id#"); } $arParams["PATH_TO_USER_TASKS_TEMPLATES"] = trim($arParams["PATH_TO_USER_TASKS_TEMPLATES"]);