74 public function evaluate(
int $refId,
int $userId) : array
76 $courseTemplates = $this->templateRepository->fetchActiveTemplatesByType(
'crs');
78 $enabledGlobalLearningProgress = $this->trackingHelper->enabledLearningProgress();
80 $templatesOfCompletedCourses = array();
81 foreach ($courseTemplates as $courseTemplate) {
82 $courseObjectId = $courseTemplate->getObjId();
84 if ($enabledGlobalLearningProgress) {
86 $mode = $objectLearningProgressSettings->getMode();
93 $subItems = $this->setting->get(
'cert_subitems_' . $courseObjectId,
false);
95 if (
false === $subItems || $subItems === null) {
99 $subItems = json_decode($subItems);
101 if (!is_array($subItems)) {
105 $subitem_obj_ids = array();
106 foreach ($subItems as $subItemRefId) {
107 $subitem_obj_ids[$subItemRefId] = $this->objectHelper->lookupObjId((
int) $subItemRefId);
110 if (in_array($refId, $subItems)) {
114 foreach ($subitem_obj_ids as $subitem_ref_id => $subitem_id) {
115 $status = $this->statusHelper->lookUpStatus($subitem_id, $userId);
123 if (
true === $completed) {
124 $templatesOfCompletedCourses[] = $courseTemplate;
129 return $templatesOfCompletedCourses;
const LP_STATUS_COMPLETED_NUM
evaluate(int $refId, int $userId)
const LP_MODE_DEACTIVATED
__construct(ilCertificateTemplateRepository $templateRepository, ilSetting $setting=null, ilCertificateObjectHelper $objectHelper=null, ilCertificateLPStatusHelper $statusHelper=null, ilCertificateObjUserTrackingHelper $trackingHelper=null)