ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
class.ilCertificateGUIFactory.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
27 {
28  private readonly Container $dic;
29 
30  public function __construct(?Container $dic = null)
31  {
32  if (null === $dic) {
33  global $DIC;
34  $dic = $DIC;
35  }
36  $this->dic = $dic;
37  }
38 
42  public function create(ilObject $object): ilCertificateGUI
43  {
44  global $DIC;
45 
46  $type = $object->getType();
47  $objectId = $object->getId();
48 
49  $logger = $DIC->logger()->cert();
50 
51  $templateRepository = new ilCertificateTemplateDatabaseRepository($this->dic->database(), $logger);
52  $deleteAction = new ilCertificateTemplateDeleteAction($templateRepository);
53  $pathFactory = new ilCertificatePathFactory();
54 
55  $certificatePath = $pathFactory->create($object);
56 
57  switch ($type) {
58  case 'tst':
59  $placeholderDescriptionObject = new ilTestPlaceholderDescription();
60  $placeholderValuesObject = new ilTestPlaceholderValues();
61 
62  $formFactory = new ilCertificateSettingsTestFormRepository(
63  $objectId,
64  $certificatePath,
65  false,
66  $DIC->language(),
67  $DIC->ctrl(),
68  $DIC->access(),
69  $DIC->toolbar(),
70  $placeholderDescriptionObject
71  );
72 
73  $deleteAction = new ilCertificateTestTemplateDeleteAction(
74  $deleteAction
75  );
76 
77  break;
78  case 'crs':
79  $placeholderDescriptionObject = new ilCoursePlaceholderDescription($objectId);
80  $placeholderValuesObject = new ilCoursePlaceholderValues();
81 
83  $object,
84  $certificatePath,
85  false,
86  $DIC->language(),
87  $DIC->ctrl(),
88  $DIC->access(),
89  $DIC->toolbar(),
90  $placeholderDescriptionObject
91  );
92 
93  break;
94  case 'exc':
95  $placeholderDescriptionObject = new ilExercisePlaceholderDescription();
96  $placeholderValuesObject = new ilExercisePlaceholderValues();
97 
98  $formFactory = new ilCertificateSettingsExerciseRepository(
99  $object,
100  $certificatePath,
101  false,
102  $DIC->language(),
103  $DIC->ctrl(),
104  $DIC->access(),
105  $DIC->toolbar(),
106  $placeholderDescriptionObject
107  );
108 
109  break;
110  case 'sahs':
111  $placeholderDescriptionObject = new ilScormPlaceholderDescription($object);
112  $placeholderValuesObject = new ilScormPlaceholderValues();
113 
114  $formFactory = new ilCertificateSettingsScormFormRepository(
115  $object,
116  $certificatePath,
117  true,
118  $DIC->language(),
119  $DIC->ctrl(),
120  $DIC->access(),
121  $DIC->toolbar(),
122  $placeholderDescriptionObject
123  );
124  break;
125  case 'lti':
126  $placeholderDescriptionObject = new ilLTIConsumerPlaceholderDescription();
127  $placeholderValuesObject = new ilLTIConsumerPlaceholderValues();
128 
130  $object,
131  $certificatePath,
132  true,
133  $DIC->language(),
134  $DIC->ctrl(),
135  $DIC->access(),
136  $DIC->toolbar(),
137  $placeholderDescriptionObject
138  );
139  break;
140  case 'cmix':
141  $placeholderDescriptionObject = new ilCmiXapiPlaceholderDescription();
142  $placeholderValuesObject = new ilCmiXapiPlaceholderValues();
143 
145  $object,
146  $certificatePath,
147  true,
148  $DIC->language(),
149  $DIC->ctrl(),
150  $DIC->access(),
151  $DIC->toolbar(),
152  $placeholderDescriptionObject
153  );
154  break;
155  case 'prg':
156  $placeholderDescriptionObject = new ilStudyProgrammePlaceholderDescription();
157  $placeholderValuesObject = new ilStudyProgrammePlaceholderValues();
159  $object,
160  $certificatePath,
161  true,
162  $DIC->language(),
163  $DIC->ctrl(),
164  $DIC->access(),
165  $DIC->toolbar(),
166  $placeholderDescriptionObject
167  );
168  break;
169  default:
170  throw new ilException(sprintf('The type "%s" is currently not defined for certificates', $type));
171  }
172 
173  return new ilCertificateGUI(
174  $placeholderDescriptionObject,
175  $placeholderValuesObject,
176  $objectId,
177  $certificatePath,
178  $formFactory,
179  $deleteAction
180  );
181  }
182 }
Customizing of pimple-DIC for ILIAS.
Definition: Container.php:35
global $DIC
Definition: feed.php:28
GUI class to create PDF certificates.