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
 
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)