Chamilo is a learning management system focused on ease of use and accessibility
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
chamilo-lms/src/CoreBundle/Repository/ResourceNodeRepository.php

41 lines
1.2 KiB

<?php
/* For licensing terms, see /license.txt */
namespace Chamilo\CoreBundle\Repository;
use Chamilo\CoreBundle\Entity\Resource\ResourceFile;
use Chamilo\CoreBundle\Entity\Resource\ResourceNode;
use Chamilo\CoreBundle\Entity\Resource\ResourceType;
use Doctrine\ORM\Query\Expr\Join;
use Gedmo\Tree\Entity\Repository\MaterializedPathRepository;
/**
* Class ResourceNodeRepository.
*/
class ResourceNodeRepository extends MaterializedPathRepository
{
/**
* @todo filter files, check status
*/
public function getSize(ResourceNode $resourceNode, ResourceType $type): int
{
$qb = $this->createQueryBuilder('node')
->select('SUM(file.size) as total')
->innerJoin(
'node.resourceFile',
'file'
)
//->innerJoin('node.resourceLinks', 'links')
->where('node.resourceType = :type')
->setParameter('type', $type)
->andWhere('node.parent = :parentNode')
->setParameter('parentNode', $resourceNode)
->andWhere('file IS NOT NULL')
;
$result = $qb->getQuery()->getSingleScalarResult();
return $result;
}
}