• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/integration/forum/task/topic.php
  • Класс: BitrixTasksIntegrationForumTaskis
  • Вызов: is::getFileCount
static function getFileCount(int $taskId)
{
	$count = 0;

	$task = TaskRegistry::getInstance()->getObject($taskId);
	if (!$task)
	{
		return 0;
	}

	$topicId = $task->getForumTopicId();
	$forumId = Comment::getForumId();

	if($forumId && $topicId && static::includeModule() && Loader::includeModule("disk"))
	{
		$userFieldManager = Driver::getInstance()->getUserFieldManager();
		[$connectorClass, $moduleId] = $userFieldManager->getConnectorDataByEntityType("forum_message");

		$countQuery = new Query(AttachedObjectTable::getEntity());
		$totalCnt = $countQuery
			->setFilter(array(
				"=ENTITY_TYPE" => $connectorClass,
				"=MODULE_ID" => $moduleId,
				"=VERSION_ID" => null,
			))
			->addSelect(new ExpressionField("CNT", "COUNT(1)"))
			->registerRuntimeField("",
				new ReferenceField(
					"M",
					"Bitrix\Forum\MessageTable",
					array(
						"=this.ENTITY_ID" => "ref.ID",
						"=ref.TOPIC_ID" => new SqlExpression("?i", $topicId),
						"=ref.FORUM_ID" => new SqlExpression("?i", $forumId),
					),
					array(
						"join_type" => "INNER"
					)
				)
			)
			->setLimit(null)
			->setOffset(null)
			->exec()
			->fetch();

		$count = intval($totalCnt["CNT"]);
	}

	return $count;
}