- Модуль: 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;
}