• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/taskliststate.php
  • Класс: CTaskListState
  • Вызов: CTaskListState::setState
public function setState(array $state = array())
{
	if(empty($state))
	{
		return;
	}

	// convert here
	try
	{
		$id = intval($state['SECTION_SELECTED']['ID']) ? intval($state['SECTION_SELECTED']['ID']) : intval($state['SECTION_SELECTED']);
		$this->setSection($id);
	}
	catch(Exception $e)
	{
	}

	try
	{
		$id = intval($state['ROLE_SELECTED']['ID']) ? intval($state['ROLE_SELECTED']['ID']) : intval($state['ROLE_SELECTED']);
		$this->setUserRole($id);
	}
	catch(Exception $e)
	{
	}

	try
	{
		$id = intval($state['VIEW_SELECTED']['ID']) ? intval($state['VIEW_SELECTED']['ID']) : intval($state['VIEW_SELECTED']);
		$this->setViewMode($id);
	}
	catch(Exception $e)
	{
	}

	if(is_array($state['VIEW_PARAMETERS']))
	{
		foreach($state['VIEW_PARAMETERS'] as $code => $value)
		{
			$this->setViewParameter($code, $value);
		}
	}


	if (is_array($state['SUBMODES'] ?? null))
	{
		foreach($state['SUBMODES'] as $id => $value)
		{
			/*
			syntax support:

			[VIEW_SUBMODE_WITH_GROUPS] => Array
			(
				[ID] => 1
				[SELECTED] => Y
			)
			*/
			if(is_array($value))
			{
				$id = $value['ID'];
				$flag = $value['SELECTED'] == 'Y';
			}
			else
			{
				$flag = $value;
			}

			if($flag)
			{
				$this->switchOnSubmode($id);
			}
			else
			{
				$this->switchOffSubmode($id);
			}
		}
	}
}