19 declare(strict_types=1);
48 if (
null === $setting) {
53 if (
null === $objectHelper) {
58 if (
null === $statusHelper) {
62 if (
null === $trackingHelper) {
73 $courseTemplates = $this->templateRepository
74 ->fetchActiveCertificateTemplatesForCoursesWithDisabledLearningProgress(
75 $this->trackingHelper->enabledLearningProgress(),
79 $templatesOfCompletedCourses = [];
80 foreach ($courseTemplates as $courseTemplate) {
81 $courseObjectId = $courseTemplate->getObjId();
83 $subItems = $this->setting->get(
'cert_subitems_' . $courseObjectId);
84 if ($subItems ===
null) {
87 $subItems = json_decode($subItems,
true, 512, JSON_THROW_ON_ERROR);
88 if (!is_array($subItems)) {
92 $subitem_obj_ids = [];
93 foreach ($subItems as $subItemRefId) {
94 $subitem_obj_ids[$subItemRefId] = $this->objectHelper->lookupObjId((
int) $subItemRefId);
97 if (in_array($refId, $subItems)) {
101 foreach ($subitem_obj_ids as $subitem_id) {
102 $status = $this->statusHelper->lookUpStatus($subitem_id, $userId);
112 $templatesOfCompletedCourses[] = $courseTemplate;
117 return $templatesOfCompletedCourses;
const LP_STATUS_COMPLETED_NUM
readonly ilSetting $setting
readonly ilCertificateLPStatusHelper $statusHelper
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
readonly ilCertificateObjectHelper $objectHelper
readonly ilCertificateObjUserTrackingHelper $trackingHelper
evaluate(int $refId, int $userId)
__construct(private readonly ilCertificateTemplateRepository $templateRepository, ?ilSetting $setting=null, ?ilCertificateObjectHelper $objectHelper=null, ?ilCertificateLPStatusHelper $statusHelper=null, ?ilCertificateObjUserTrackingHelper $trackingHelper=null)