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/LanguageRepository.php

69 lines
1.7 KiB

<?php
declare(strict_types=1);
/* For licensing terms, see /license.txt */
namespace Chamilo\CoreBundle\Repository;
use Chamilo\CoreBundle\Entity\Language;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\QueryBuilder;
use Doctrine\Persistence\ManagerRegistry;
class LanguageRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, Language::class);
}
public function getAllAvailable(): QueryBuilder
{
$qb = $this->createQueryBuilder('l');
$qb
->where(
$qb->expr()->eq('l.available', true)
)
/*->andWhere(
$qb->expr()->isNull('l.parent')
)*/
;
return $qb;
}
public function getAllAvailableToArray(): array
{
$languages = $this->getAllAvailable()->getQuery()->getResult();
$list = [];
/** @var Language $language */
foreach ($languages as $language) {
$list[$language->getIsocode()] = $language->getOriginalName();
}
return $list;
}
/**
* Get all the sub languages that are made available by the admin.
*
* @return Collection|Language[]
*/
public function findAllSubLanguages()
{
$qb = $this->createQueryBuilder('l');
$qb->select('l')
->where(
$qb->expr()->eq('l.available', true)
)
->andWhere(
$qb->expr()->isNotNull('l.parent')
)
;
return $qb->getQuery()->getResult();
}
}