ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\Course\Certificate\CertificateCourseLearningProgressEvaluation Class Reference
+ Collaboration diagram for ILIAS\Course\Certificate\CertificateCourseLearningProgressEvaluation:

Public Member Functions

 __construct (private readonly ilCertificateTemplateRepository $templateRepository, ?ilSetting $setting=null, ?ilCertificateObjectHelper $objectHelper=null, ?ilCertificateLPStatusHelper $statusHelper=null, ?ilCertificateObjUserTrackingHelper $trackingHelper=null)
 
 evaluate (int $refId, int $userId)
 

Private Attributes

readonly ilSetting $setting
 
readonly ilCertificateObjectHelper $objectHelper
 
readonly ilCertificateLPStatusHelper $statusHelper
 
readonly ilCertificateObjUserTrackingHelper $trackingHelper
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Course\Certificate\CertificateCourseLearningProgressEvaluation::__construct ( private readonly ilCertificateTemplateRepository  $templateRepository,
?ilSetting  $setting = null,
?ilCertificateObjectHelper  $objectHelper = null,
?ilCertificateLPStatusHelper  $statusHelper = null,
?ilCertificateObjUserTrackingHelper  $trackingHelper = null 
)

Definition at line 41 of file CertificateCourseLearningProgressEvaluation.php.

47 {
48 if (null === $setting) {
49 $setting = new ilSetting('crs');
50 }
51 $this->setting = $setting;
52
53 if (null === $objectHelper) {
55 }
56 $this->objectHelper = $objectHelper;
57
58 if (null === $statusHelper) {
60 }
61 $this->statusHelper = $statusHelper;
62 if (null === $trackingHelper) {
64 }
65 $this->trackingHelper = $trackingHelper;
66 }
ILIAS Setting Class.

References ILIAS\Course\Certificate\CertificateCourseLearningProgressEvaluation\$objectHelper, ILIAS\Course\Certificate\CertificateCourseLearningProgressEvaluation\$setting, ILIAS\Course\Certificate\CertificateCourseLearningProgressEvaluation\$statusHelper, and ILIAS\Course\Certificate\CertificateCourseLearningProgressEvaluation\$trackingHelper.

Member Function Documentation

◆ evaluate()

ILIAS\Course\Certificate\CertificateCourseLearningProgressEvaluation::evaluate ( int  $refId,
int  $userId 
)
Returns
ilCertificateTemplate[]

Definition at line 71 of file CertificateCourseLearningProgressEvaluation.php.

71 : array
72 {
73 $courseTemplates = $this->templateRepository
74 ->fetchActiveCertificateTemplatesForCoursesWithDisabledLearningProgress(
75 $this->trackingHelper->enabledLearningProgress(),
76 $refId
77 );
78
79 $templatesOfCompletedCourses = [];
80 foreach ($courseTemplates as $courseTemplate) {
81 $courseObjectId = $courseTemplate->getObjId();
82
83 $subItems = $this->setting->get('cert_subitems_' . $courseObjectId);
84 if ($subItems === null) {
85 continue;
86 }
87 $subItems = json_decode($subItems, true, 512, JSON_THROW_ON_ERROR);
88 if (!is_array($subItems)) {
89 continue;
90 }
91
92 $subitem_obj_ids = [];
93 foreach ($subItems as $subItemRefId) {
94 $subitem_obj_ids[$subItemRefId] = $this->objectHelper->lookupObjId((int) $subItemRefId);
95 }
96
97 if (in_array($refId, $subItems)) {
98 $completed = true;
99
100 // check if all subitems are completed now
101 foreach ($subitem_obj_ids as $subitem_id) {
102 $status = $this->statusHelper->lookUpStatus($subitem_id, $userId);
103
104 if ($status !== ilLPStatus::LP_STATUS_COMPLETED_NUM) {
105 $completed = false;
106
107 break;
108 }
109 }
110
111 if ($completed) {
112 $templatesOfCompletedCourses[] = $courseTemplate;
113 }
114 }
115 }
116
117 return $templatesOfCompletedCourses;
118 }
const LP_STATUS_COMPLETED_NUM
$refId
Definition: xapitoken.php:58

References $refId, and ilLPStatus\LP_STATUS_COMPLETED_NUM.

Field Documentation

◆ $objectHelper

readonly ilCertificateObjectHelper ILIAS\Course\Certificate\CertificateCourseLearningProgressEvaluation::$objectHelper
private

◆ $setting

readonly ilSetting ILIAS\Course\Certificate\CertificateCourseLearningProgressEvaluation::$setting
private

◆ $statusHelper

readonly ilCertificateLPStatusHelper ILIAS\Course\Certificate\CertificateCourseLearningProgressEvaluation::$statusHelper
private

◆ $trackingHelper

readonly ilCertificateObjUserTrackingHelper ILIAS\Course\Certificate\CertificateCourseLearningProgressEvaluation::$trackingHelper
private

The documentation for this class was generated from the following file: