- Модуль: tasks
- Путь к файлу: ~/bitrix/modules/tasks/classes/general/taskliststate.php
- Класс: CTaskListState
- Вызов: CTaskListState::getState
public function getState()
{
$arRoles = self::getKnownRoles();
$arViews = $this->getAllowedViewModes();
$arSubmodes = self::getKnownSubmodes();
$arTaskCategories = $this->getAllowedTaskCategories();
$selectedSectionId = $this->getSection();
$selectedRoleId = $this->getUserRole();
$selectedViewId = $this->getViewMode();
$taskCategoryId = $this->getTaskCategory();
$filterCtrl = CTaskFilterCtrl::getInstance($this->userId);
$arViewState = array(
'SECTION_SELECTED' => array(
'ID' => $selectedSectionId,
'CODENAME' => self::resolveConstantCodename($selectedSectionId)
),
'ROLES' => array(),
'ROLE_SELECTED' => array(
'ID' => $selectedRoleId,
'CODENAME' => self::resolveConstantCodename($selectedRoleId)
),
'VIEWS' => array(),
'VIEW_SELECTED' => array(
'ID' => $selectedViewId,
'CODENAME' => self::resolveConstantCodename($selectedViewId, self::VIEW_MODE_LIST)
),
'VIEW_PARAMETERS' => $this->getViewParameters(),
'TASK_CATEGORIES' => array(),
'TASK_CATEGORY_SELECTED' => array(
'ID' => $taskCategoryId,
'CODENAME' => self::resolveConstantCodename($taskCategoryId)
),
'SPECIAL_PRESETS' => array(),
'PRESET_SELECTED' => array(
'ID' => $filterCtrl->getSelectedFilterPresetId()
),
'SPECIAL_PRESET_SELECTED' => array(
),
'SUBMODES' => array()
);
foreach ($arRoles as $roleId)
{
$codeName = self::resolveConstantCodename($roleId);
$arViewState['ROLES'][$codeName] = array(
'ID' => $roleId,
'SELECTED' => (($selectedRoleId === $roleId) ? 'Y' : 'N'),
'TITLE' => self::resolveRoleName($roleId),
'TITLE_ALT' => self::resolveRoleName($roleId, $bAltName = true)
);
}
foreach ($arViews as $viewId)
{
$codeName = self::resolveConstantCodename($viewId);
$arViewState['VIEWS'][$codeName] = array(
'ID' => $viewId,
'SELECTED' => (($selectedViewId === $viewId) ? 'Y' : 'N'),
'TITLE' => self::resolveViewName($viewId),
'SHORT_TITLE' => self::resolveViewName($viewId, $shortName = true)
);
}
foreach ($arTaskCategories as $categoryId)
{
$codeName = self::resolveConstantCodename($categoryId);
$arViewState['TASK_CATEGORIES'][$codeName] = array(
'ID' => $categoryId,
'SELECTED' => (($taskCategoryId === $categoryId) ? 'Y' : 'N'),
'TITLE' => self::resolveTaskCategoryName($categoryId)
);
}
foreach ($arSubmodes as $submodeId)
{
$codeName = self::resolveConstantCodename($submodeId);
$isSubmodeSelected = $this->isSubmode($submodeId);
$arViewState['SUBMODES'][$codeName] = array(
'ID' => $submodeId,
'SELECTED' => ($isSubmodeSelected ? 'Y' : 'N'),
'TITLE' => self::resolveSubmodeName($submodeId)
);
}
$selectedPreset = $filterCtrl->getSelectedFilterPresetId();
foreach($filterCtrl->listFilterSpecialPresets() as $id => $preset)
{
$preset['ID'] = $id;
$arViewState['SPECIAL_PRESETS'][$id] = array(
'ID' => $id,
'TITLE' => $preset['Name'],
'SELECTED' => $selectedPreset == $id ? 'Y' : 'N',
'CODE' => $preset['Code']
);
if($selectedPreset == $id)
{
$arViewState['SPECIAL_PRESET_SELECTED'] = array(
'ID' => $id,
'CODENAME' => $preset['Code']
);
}
}
return ($arViewState);
}