• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/grid/task/row/content/title.php
  • Класс: BitrixTasksGridTaskRowContentTitle
  • Вызов: Title::prepare
public function prepare(): string
{
	$row = $this->getRowData();
	$parameters = $this->getParameters();

	$userId = User::getId();
	$taskId = (int)$row['ID'];
	$taskStatus = (int)$row['REAL_STATUS'];
	$taskPriority = (int)($row['PRIORITY'] ?? 0);
	$groupId = (int)($parameters['GROUP_ID'] ?? 0);

	$taskUrlTemplate = (
		$groupId > 0 ? $parameters['PATH_TO_GROUP_TASKS_TASK'] : $parameters['PATH_TO_USER_TASKS_TASK']
	);
	$taskUrl = CComponentEngine::MakePathFromTemplate($taskUrlTemplate, [
		'user_id' => $userId,
		'task_id' => $taskId,
		'group_id' => $groupId,
		'action' => 'view',
	]);

	$priorityLayout = ($taskPriority === BitrixTasksInternalsTaskPriority::HIGH ? ' ' : '');

	$countFiles = (int) ($row['COUNT_FILES'] ?? 0);
	$checkListComplete = (int) ($row['CHECK_LIST']['COMPLETE'] ?? 0);
	$checkListWork = (int) ($row['CHECK_LIST']['WORK'] ?? 0);
	$checkListAll = ($checkListComplete + $checkListWork);

	$filesIcon = "
{$countFiles}
"; $checkListIcon = "
{$checkListComplete}/{$checkListAll}
"; $postfixIcons = "{$priorityLayout}" .($countFiles > 0 ? $filesIcon : '') .($checkListAll > 0 ? $checkListIcon : '') .""; $timeTracker = ""; $statuses = [Status::COMPLETED, Status::DEFERRED]; $cssClass = 'task-status-text-color-'.( in_array($taskStatus, $statuses, true) ? tasksStatus2String($taskStatus) : 'in-progress' ); $taskTitle = htmlspecialcharsbx($row['TITLE']); $title = "{$taskTitle}{$postfixIcons}"; $title .= $timeTracker . $this->prepareTimeTracking(); if (isset($row['NAV_CHAIN']) && !empty($row['NAV_CHAIN'])) { $title .= '
'; foreach ($row['NAV_CHAIN'] as $subTask) { $subTaskUrl = CComponentEngine::MakePathFromTemplate($taskUrlTemplate, [ 'user_id' => $userId, 'task_id' => $subTask['ID'], 'group_id' => $groupId, 'action' => 'view', ]); $subTaskTitle = htmlspecialcharsbx($subTask['TITLE']); $title .= "  ←  {$subTaskTitle}"; } $title .= '
'; } return $title; }