• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/integration/report/internals/task.php
  • Класс: BitrixTasksIntegrationReportInternalsTaskTable
  • Вызов: TaskTable::getRuntimeMixins
static function getRuntimeMixins(array $mixins = array())
{
	$result = array();
	foreach($mixins as $alias => $mixinData)
	{
		$mixinData['NAME'] = !is_numeric($alias) ? $alias : $mixinData['CODE'];

		if(!array_key_exists('USER_ID', $mixinData))
		{
			// get current USER_ID

			$mixinData['USER_ID'] = 0;
			if(User::getId())
			{
				$mixinData['USER_ID'] = (int) User::getId();
			}
		}

		switch($mixinData['CODE'])
		{
			case 'IN_FAVORITE':
				$rt = BitrixTasksInternalsRunTimeTaskFavorite::getFlag($mixinData);
				if(is_array($rt['runtime']) && !empty($rt['runtime']))
				{
					$result = array_shift($rt);
				}
				break;

			case 'CHECK_RIGHTS':
				$mixin = static::getRuntimeFieldMixinsCheckRights($mixinData);
				if($mixin)
				{
					$result[] = $mixin;
				}
				break;

			case 'LEGACY_FILTER':
				$mixin = static::getRuntimeFieldMixinsLegacyFilter($mixinData);
				if($mixin)
				{
					$result[] = $mixin;
				}
				break;

			default:
				throw new BitrixMainArgumentException('Unknown mixin: '.$mixinData['CODE']);
				break;
		}
	}

	return $result;
}