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