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/Chamilo/UserBundle/Entity/Repository/UserRepository.php

109 lines
2.7 KiB

<?php
/* For licensing terms, see /license.txt */
11 years ago
namespace Chamilo\UserBundle\Entity\Repository;
use Doctrine\ORM\EntityRepository;
//use Symfony\Component\Security\Core\Exception\UsernameNotFoundException;
//use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
/**
* Class UserRepository
*
* All functions that query the database (selects)
* Functions should return query builders.
*
11 years ago
* @package Chamilo\UserBundle\Repository
*/
class UserRepository extends EntityRepository
{
/**
* @param string $keyword
*
* @return mixed
*/
public function searchUserByKeyword($keyword)
{
$qb = $this->createQueryBuilder('a');
// Selecting user info
$qb->select('DISTINCT b');
$qb->from('Chamilo\UserBundle\Entity\User', 'b');
// Selecting courses for users
//$qb->innerJoin('u.courses', 'c');
//@todo check app settings
$qb->add('orderBy', 'b.firstname ASC');
$qb->where('b.firstname LIKE :keyword OR b.lastname LIKE :keyword ');
$qb->setParameter('keyword', "%$keyword%");
$query = $qb->getQuery();
return $query->execute();
}
/**
* Get course user relationship based in the course_rel_user table.
* @return array
*/
/*public function getCourses(User $user)
{
$queryBuilder = $this->createQueryBuilder('user');
// Selecting course info.
$queryBuilder->select('c');
// Loading User.
//$qb->from('Chamilo\UserBundle\Entity\User', 'u');
// Selecting course
$queryBuilder->innerJoin('Chamilo\CoreBundle\Entity\Course', 'c');
//@todo check app settings
//$qb->add('orderBy', 'u.lastname ASC');
$wherePart = $queryBuilder->expr()->andx();
// Get only users subscribed to this course
$wherePart->add($queryBuilder->expr()->eq('user.userId', $user->getUserId()));
$queryBuilder->where($wherePart);
$query = $queryBuilder->getQuery();
return $query->execute();
}
public function getTeachers()
{
$queryBuilder = $this->createQueryBuilder('u');
// Selecting course info.
$queryBuilder
->select('u')
->where('u.groups.id = :groupId')
->setParameter('groupId', 1);
$query = $queryBuilder->getQuery();
return $query->execute();
}*/
/*public function getUsers($group)
{
$queryBuilder = $this->createQueryBuilder('u');
// Selecting course info.
$queryBuilder
->select('u')
->where('u.groups = :groupId')
->setParameter('groupId', $group);
$query = $queryBuilder->getQuery();
return $query->execute();
}*/
}