ILIAS  release_7 Revision v7.30-3-g800a261c036
All Data Structures Namespaces Files Functions Variables Modules Pages
ilCertificateSettingsCourseFormRepository Class Reference
+ Inheritance diagram for ilCertificateSettingsCourseFormRepository:
+ Collaboration diagram for ilCertificateSettingsCourseFormRepository:

Public Member Functions

 __construct (\ilObject $object, string $certificatePath, bool $hasAdditionalElements, ilLanguage $language, ilCtrl $controller, ilAccess $access, ilToolbarGUI $toolbar, ilCertificatePlaceholderDescription $placeholderDescriptionObject, ilObjectLP $learningProgressObject=null, ilCertificateSettingsFormRepository $settingsFromFactory=null, ilCertificateObjUserTrackingHelper $trackingHelper=null, ilCertificateObjectHelper $objectHelper=null, ilCertificateObjectLPHelper $lpHelper=null, ilTree $tree=null, ilSetting $setting=null)
 
 createForm (ilCertificateGUI $certificateGUI)
 
 save (array $formFields)
 
 fetchFormFieldData (string $content)
 

Private Member Functions

 getLPTypes (int $a_parent_ref_id)
 
 getInvalidLPModes ()
 

Private Attributes

 $language
 
 $settingsFromFactory
 
 $object
 
 $learningProgressObject
 
 $trackingHelper
 
 $objectHelper
 
 $lpHelper
 
 $tree
 
 $setting
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilCertificateSettingsCourseFormRepository::__construct ( \ilObject  $object,
string  $certificatePath,
bool  $hasAdditionalElements,
ilLanguage  $language,
ilCtrl  $controller,
ilAccess  $access,
ilToolbarGUI  $toolbar,
ilCertificatePlaceholderDescription  $placeholderDescriptionObject,
ilObjectLP  $learningProgressObject = null,
ilCertificateSettingsFormRepository  $settingsFromFactory = null,
ilCertificateObjUserTrackingHelper  $trackingHelper = null,
ilCertificateObjectHelper  $objectHelper = null,
ilCertificateObjectLPHelper  $lpHelper = null,
ilTree  $tree = null,
ilSetting  $setting = null 
)
Parameters
ilObject$object
string$certificatePath
ilLanguage$language
ilCtrl$controller
ilAccess$access
ilToolbarGUI$toolbar
ilCertificatePlaceholderDescription$placeholderDescriptionObject
ilObjectLP | null$learningProgressObject
ilCertificateSettingsFormRepository | null$settingsFromFactory
ilCertificateObjUserTrackingHelper | null$trackingHelper
ilCertificateObjectHelper | null$objectHelper
ilCertificateObjectLPHelper | null$lpHelper
ilTree | null$tree
ilSetting | null$setting

Definition at line 70 of file class.ilCertificateSettingsCourseFormRepository.php.

References $DIC, $language, $learningProgressObject, $lpHelper, $object, $objectHelper, $setting, $settingsFromFactory, $trackingHelper, $tree, ilObject\getId(), ilObjectLP\getInstance(), and language().

86  {
87  $this->object = $object;
88 
89  $this->language = $language;
90 
91  if (null === $settingsFromFactory) {
92  $settingsFromFactory = new ilCertificateSettingsFormRepository(
93  $object->getId(),
94  $certificatePath,
95  $hasAdditionalElements,
96  $language,
97  $controller,
98  $access,
99  $toolbar,
100  $placeholderDescriptionObject
101  );
102  }
103  $this->settingsFromFactory = $settingsFromFactory;
104 
105  if (null === $learningProgressObject) {
106  $learningProgressObject = ilObjectLP::getInstance($this->object->getId());
107  }
108  $this->learningProgressObject = $learningProgressObject;
109 
110  if (null === $trackingHelper) {
111  $trackingHelper = new ilCertificateObjUserTrackingHelper();
112  }
113  $this->trackingHelper = $trackingHelper;
114 
115  if (null === $objectHelper) {
116  $objectHelper = new ilCertificateObjectHelper();
117  }
118  $this->objectHelper = $objectHelper;
119 
120  if (null === $lpHelper) {
121  $lpHelper = new ilCertificateObjectLPHelper();
122  }
123  $this->lpHelper = $lpHelper;
124 
125  if (null === $tree) {
126  global $DIC;
127  $tree = $DIC['tree'];
128  }
129  $this->tree = $tree;
130 
131  if (null === $setting) {
132  $setting = new ilSetting('crs');
133  }
134  $this->setting = $setting;
135  }
global $DIC
Definition: goto.php:24
language()
Definition: language.php:2
static getInstance($a_obj_id)
+ Here is the call graph for this function:

Member Function Documentation

◆ createForm()

ilCertificateSettingsCourseFormRepository::createForm ( ilCertificateGUI  $certificateGUI)
Parameters
ilCertificateGUI$certificateGUI
Returns
ilPropertyFormGUI
Exceptions

Implements ilCertificateFormRepository.

Definition at line 147 of file class.ilCertificateSettingsCourseFormRepository.php.

References $lpHelper, $objectHelper, getInvalidLPModes(), getLPTypes(), ilLPObjSettings\getMode(), language(), ilLPObjSettings\LP_MODE_DEACTIVATED, and ilFormPropertyGUI\setTitle().

148  {
149  $form = $this->settingsFromFactory->createForm($certificateGUI);
150 
151  $objectLearningProgressSettings = new ilLPObjSettings($this->object->getId());
152 
153  $mode = $objectLearningProgressSettings->getMode();
154  if (!$this->trackingHelper->enabledLearningProgress() || $mode == ilLPObjSettings::LP_MODE_DEACTIVATED) {
155  $subitems = new ilRepositorySelector2InputGUI($this->language->txt('objects'), 'subitems', true);
156 
157  $formSection = new \ilFormSectionHeaderGUI();
158  $formSection->setTitle($this->language->txt('cert_form_sec_add_features'));
159  $form->addItem($formSection);
160 
161  $exp = $subitems->getExplorerGUI();
162  $exp->setSkipRootNode(true);
163  $exp->setRootId($this->object->getRefId());
164  $exp->setTypeWhiteList($this->getLPTypes($this->object->getId()));
165 
168  $subitems->setTitleModifier(function ($id) use ($objectHelper, $lpHelper) {
169  if (null === $id) {
170  return '';
171  }
172  $obj_id = $objectHelper->lookupObjId((int) $id);
173  $olp = $lpHelper->getInstance($obj_id);
174 
175  $invalid_modes = $this->getInvalidLPModes();
176 
177  $mode = $olp->getModeText($olp->getCurrentMode());
178 
179  if (in_array($olp->getCurrentMode(), $invalid_modes)) {
180  $mode = '<strong>' . $mode . '</strong>';
181  }
182  return $objectHelper->lookupTitle($obj_id) . ' (' . $mode . ')';
183  });
184 
185  $subitems->setRequired(true);
186  $form->addItem($subitems);
187  }
188 
189  return $form;
190  }
setTitle($a_title)
Set Title.
language()
Definition: language.php:2
+ Here is the call graph for this function:

◆ fetchFormFieldData()

ilCertificateSettingsCourseFormRepository::fetchFormFieldData ( string  $content)
Parameters
string$content
Returns
array|mixed

Implements ilCertificateFormRepository.

Definition at line 226 of file class.ilCertificateSettingsCourseFormRepository.php.

227  {
228  $formFields = $this->settingsFromFactory->fetchFormFieldData($content);
229 
230  $formFields['subitems'] = json_decode($this->setting->get('cert_subitems_' . $this->object->getId(), json_encode(array())));
231  if ($formFields['subitems'] === 'null' || $formFields['subitems'] === null) {
232  $formFields['subitems'] = array();
233  }
234  return $formFields;
235  }

◆ getInvalidLPModes()

ilCertificateSettingsCourseFormRepository::getInvalidLPModes ( )
private
Returns
array

Definition at line 266 of file class.ilCertificateSettingsCourseFormRepository.php.

References ilLPObjSettings\LP_MODE_COLLECTION, ilLPObjSettings\LP_MODE_COLLECTION_MANUAL, ilLPObjSettings\LP_MODE_COLLECTION_MOBS, ilLPObjSettings\LP_MODE_COLLECTION_TLT, ilLPObjSettings\LP_MODE_DEACTIVATED, ilLPObjSettings\LP_MODE_MANUAL, ilLPObjSettings\LP_MODE_MANUAL_BY_TUTOR, ilLPObjSettings\LP_MODE_SCORM, ilLPObjSettings\LP_MODE_UNDEFINED, and ilLPObjSettings\LP_MODE_VISITS.

Referenced by createForm(), and save().

267  {
268  $invalid_modes = array(
271  );
272 
273  // without active LP the following modes cannot be supported
274  if (!$this->trackingHelper->enabledLearningProgress()) {
275  // status cannot be set without active LP
276  $invalid_modes[] = ilLPObjSettings::LP_MODE_MANUAL;
277  $invalid_modes[] = ilLPObjSettings::LP_MODE_MANUAL_BY_TUTOR;
279 
280  // mode cannot be configured without active LP
281  $invalid_modes[] = ilLPObjSettings::LP_MODE_COLLECTION;
282  $invalid_modes[] = ilLPObjSettings::LP_MODE_COLLECTION_MOBS;
283  $invalid_modes[] = ilLPObjSettings::LP_MODE_COLLECTION_TLT;
284  $invalid_modes[] = ilLPObjSettings::LP_MODE_SCORM;
285  $invalid_modes[] = ilLPObjSettings::LP_MODE_VISITS; // ?
286  }
287 
288  return $invalid_modes;
289  }
+ Here is the caller graph for this function:

◆ getLPTypes()

ilCertificateSettingsCourseFormRepository::getLPTypes ( int  $a_parent_ref_id)
private
Parameters
int$a_parent_ref_id
Returns
array

Definition at line 241 of file class.ilCertificateSettingsCourseFormRepository.php.

References $result.

Referenced by createForm().

241  : array
242  {
243  $result = array();
244 
245  $root = $this->tree->getNodeData($a_parent_ref_id);
246  $sub_items = $this->tree->getSubTree($root);
247  array_shift($sub_items); // remove root
248 
249  foreach ($sub_items as $node) {
250  if ($this->lpHelper->isSupportedObjectType($node['type'])) {
251  $class = $this->lpHelper->getTypeClass($node['type']);
252  $modes = $class::getDefaultModes($this->trackingHelper->enabledLearningProgress());
253 
254  if (sizeof($modes) > 1) {
255  $result[] = $node['type'];
256  }
257  }
258  }
259 
260  return $result;
261  }
$result
+ Here is the caller graph for this function:

◆ save()

ilCertificateSettingsCourseFormRepository::save ( array  $formFields)
Parameters
array$formFields

Implements ilCertificateFormRepository.

Definition at line 195 of file class.ilCertificateSettingsCourseFormRepository.php.

References $learningProgressObject, $message, $refId, getInvalidLPModes(), and language().

196  {
197  $invalidModes = $this->getInvalidLPModes();
198 
199  $titlesOfObjectsWithInvalidModes = array();
200  $refIds = array();
201  if (isset($formFields['subitems'])) {
202  $refIds = $formFields['subitems'];
203  }
204 
205  foreach ($refIds as $refId) {
206  $objectId = $this->objectHelper->lookupObjId((int) $refId);
207  $learningProgressObject = $this->lpHelper->getInstance($objectId);
208  $currentMode = $learningProgressObject->getCurrentMode();
209  if (in_array($currentMode, $invalidModes)) {
210  $titlesOfObjectsWithInvalidModes[] = $this->objectHelper->lookupTitle($objectId);
211  }
212  }
213 
214  if (sizeof($titlesOfObjectsWithInvalidModes)) {
215  $message = sprintf($this->language->txt('certificate_learning_progress_must_be_active'), implode(', ', $titlesOfObjectsWithInvalidModes));
216  throw new ilException($message);
217  }
218 
219  $this->setting->set('cert_subitems_' . $this->object->getId(), json_encode($formFields['subitems']));
220  }
$refId
Definition: xapitoken.php:40
$message
Definition: xapiexit.php:14
language()
Definition: language.php:2
+ Here is the call graph for this function:

Field Documentation

◆ $language

ilCertificateSettingsCourseFormRepository::$language
private

Definition at line 12 of file class.ilCertificateSettingsCourseFormRepository.php.

Referenced by __construct().

◆ $learningProgressObject

ilCertificateSettingsCourseFormRepository::$learningProgressObject
private

Definition at line 27 of file class.ilCertificateSettingsCourseFormRepository.php.

Referenced by __construct(), and save().

◆ $lpHelper

ilCertificateSettingsCourseFormRepository::$lpHelper
private

Definition at line 42 of file class.ilCertificateSettingsCourseFormRepository.php.

Referenced by __construct(), and createForm().

◆ $object

ilCertificateSettingsCourseFormRepository::$object
private

Definition at line 22 of file class.ilCertificateSettingsCourseFormRepository.php.

Referenced by __construct().

◆ $objectHelper

ilCertificateSettingsCourseFormRepository::$objectHelper
private

Definition at line 37 of file class.ilCertificateSettingsCourseFormRepository.php.

Referenced by __construct(), and createForm().

◆ $setting

ilCertificateSettingsCourseFormRepository::$setting
private

Definition at line 52 of file class.ilCertificateSettingsCourseFormRepository.php.

Referenced by __construct().

◆ $settingsFromFactory

ilCertificateSettingsCourseFormRepository::$settingsFromFactory
private

Definition at line 17 of file class.ilCertificateSettingsCourseFormRepository.php.

Referenced by __construct().

◆ $trackingHelper

ilCertificateSettingsCourseFormRepository::$trackingHelper
private

Definition at line 32 of file class.ilCertificateSettingsCourseFormRepository.php.

Referenced by __construct().

◆ $tree

ilCertificateSettingsCourseFormRepository::$tree
private

Definition at line 47 of file class.ilCertificateSettingsCourseFormRepository.php.

Referenced by __construct().


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