• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/integration/tasks.php
  • Класс: BitrixIntranetIntegrationTasks
  • Вызов: Tasks::createDemoTemplates
static function createDemoTemplates(): void
{
	if (
		!Loader::includeModule('tasks')
		|| !($adminId = User::getAdminId())
	)
	{
		return;
	}

	$map = [
		'SONET_INITIAL_TASK' => [
			'TITLE' => Loc::getMessage('SONET_TASK_TITLE'),
			'DESCRIPTION' => Loc::getMessage('SONET_TASK_DESCRIPTION'),
		],
		'SONET_INVITE_TASK' => [
			"TITLE" => Loc::getMessage('SONET_INVITE_TASK_TITLE'),
			"DESCRIPTION" => Loc::getMessage('SONET_INVITE_TASK_DESCRIPTION_V2'),
		],
		'SONTE_INSTALL_APP_TASK' => [
			'TITLE' => Loc::getMessage('SONET_INSTALL_APP_TASK_TITLE'),
			'DESCRIPTION' => Loc::getMessage('SONET_INSTALL_APP_TASK_DESCRIPTION'),
		],
	];
	foreach ($map as $xmlId => $data)
	{
		$order = $navParams = $params = false;
		$filter = [
			'XML_ID' => $xmlId,
			'CREATED_BY' => $adminId,
		];
		$select = ['ID'];

		$templateResult = CTaskTemplates::GetList($order, $filter, $navParams, $params, $select);
		if (!$templateResult->Fetch())
		{
			(new CTaskTemplates())->Add([
				'CREATED_BY' => $adminId,
				'TPARAM_TYPE' => CTaskTemplates::TYPE_FOR_NEW_USER,
				'PRIORITY' => CTasks::PRIORITY_AVERAGE,
				'STATUS' => CTasks::STATE_PENDING,
				'TITLE' => $data['TITLE'],
				'DESCRIPTION' => $data['DESCRIPTION'],
				'DESCRIPTION_IN_BBCODE' => 'Y',
				'SITE_ID' => CTaskTemplates::CURRENT_SITE_ID,
				'XML_ID' => $xmlId,
				'ALLOW_CHANGE_DEADLINE' => 'Y',
			]);
		}
	}
}