/** * 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; }