예제 #1
0
 /**
  * Retrieve links and return them as an array of extensions of AbstractLink.
  * To keep consistency, do not call this method but LinkFactory::load instead.
  */
 public static function load($id = null, $type = null, $ref_id = null, $user_id = null, $course_code = null, $category_id = null, $visible = null)
 {
     $em = Database::getManager();
     $qb = $em->createQueryBuilder();
     $qb->select('gl')->from('ChamiloCoreBundle:GradebookLink', 'gl');
     if (isset($id)) {
         $id = intval($id);
         $qb->andWhere($qb->expr()->eq('gl.id', $id));
     }
     if (isset($type)) {
         $type = intval($type);
         $qb->andWhere($qb->expr()->eq('gl.type', $type));
     }
     if (isset($ref_id)) {
         $ref_id = intval($ref_id);
         $qb->andWhere($qb->expr()->eq('gl.refId', $ref_id));
     }
     if (isset($user_id)) {
         $user_id = intval($user_id);
         $qb->andWhere($qb->expr()->eq('gl.userId', $user_id));
     }
     if (isset($course_code)) {
         $course = $em->getRepository('ChamiloCoreBundle:Course')->findOneBy(['code' => $course_code]);
         $qb->andWhere($qb->expr()->eq('gl.course', $course->getId()));
     }
     if (isset($category_id)) {
         $category_id = intval($category_id);
         $qb->andWhere($qb->expr()->eq('gl.categoryId', $category_id));
     }
     if (isset($visible)) {
         $visible = intval($visible);
         $qb->andWhere($qb->expr()->eq('gl.visible', $visible));
     }
     $result = $qb->getQuery()->getResult();
     $links = AbstractLink::createObjectsFromEntities($result);
     return $links;
 }