ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
ilCertificateGUI Class Reference

GUI class to create PDF certificates. More...

+ Collaboration diagram for ilCertificateGUI:

Public Member Functions

 __construct (private readonly ilCertificatePlaceholderDescription $placeholderDescriptionObject, ilCertificatePlaceholderValues $placeholderValuesObject, private readonly int $objectId, string $certificatePath, ?ilCertificateFormRepository $settingsFormFactory=null, ?ilCertificateDeleteAction $deleteAction=null, ?ilCertificateTemplateRepository $templateRepository=null, ?ilPageFormats $pageFormats=null, ?ilXlsFoParser $xlsFoParser=null, ?ilCertificateTemplateExportAction $exportAction=null, ?ilCertificateBackgroundImageUpload $upload=null, ?ilCertificateTemplatePreviewAction $previewAction=null, ?FileUpload $fileUpload=null, private readonly ilSetting $settings=new ilSetting('certificate'), ?ilCertificateBackgroundImageDelete $backgroundImageDelete=null, ?Filesystem $fileSystem=null, ?ilCertificateBackgroundImageFileService $imageFileService=null, ?Filesystem $tmp_file_system=null)
 
 executeCommand ()
 
 getCommand ($cmd)
 
 certificateImport ()
 
 certificatePreview ()
 
 certificateExportFO ()
 Exports the certificate. More...
 
 certificateRemoveBackground ()
 
 certificateDelete ()
 
 certificateDeleteConfirm ()
 Deletes the certificate and all its data. More...
 
 certificateSave ()
 Saves the certificate. More...
 
 certificateUpload ()
 

Protected Attributes

ilCtrlInterface $ctrl
 
ilTree $tree
 
ILIAS $ilias
 
ilGlobalPageTemplate $tpl
 
ilLanguage $lng
 
int $ref_id
 
ilAccessHandler $access
 
ilToolbarGUI $toolbar
 

Private Member Functions

 getEditorForm ()
 
 createFormatArray (ilCertificateTemplate $certificateTemplate)
 

Private Attributes

readonly ilCertificateBackgroundImageDelete $backgroundImageDelete
 
readonly Filesystem $fileSystem
 
readonly WrapperFactory $httpWrapper
 
readonly Factory $refinery
 
readonly ilCertificateTemplateRepository $templateRepository
 
readonly ilCertificateFormRepository $settingsFormFactory
 
readonly ilXlsFoParser $xlsFoParser
 
readonly ilCertificateDeleteAction $deleteAction
 
readonly ilCertificateTemplateExportAction $exportAction
 
readonly ilCertificateBackgroundImageUpload $backgroundImageUpload
 
readonly ilCertificateTemplatePreviewAction $previewAction
 
readonly FileUpload $fileUpload
 
readonly string $certificatePath
 
readonly ilPageFormats $pageFormats
 
readonly Filesystem $tmp_file_system
 
readonly ilLogger $logger
 
readonly ilObjCertificateSettings $global_certificate_settings
 

Detailed Description

GUI class to create PDF certificates.

Author
Helmut Schottmüller helmu.nosp@m.t.sc.nosp@m.hottm.nosp@m.uell.nosp@m.er@ma.nosp@m.c.co.nosp@m.m
Version
$Id$

ilCertificateGUI: ilPropertyFormGUI

Definition at line 38 of file class.ilCertificateGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilCertificateGUI::__construct ( private readonly ilCertificatePlaceholderDescription  $placeholderDescriptionObject,
ilCertificatePlaceholderValues  $placeholderValuesObject,
private readonly int  $objectId,
string  $certificatePath,
?ilCertificateFormRepository  $settingsFormFactory = null,
?ilCertificateDeleteAction  $deleteAction = null,
?ilCertificateTemplateRepository  $templateRepository = null,
?ilPageFormats  $pageFormats = null,
?ilXlsFoParser  $xlsFoParser = null,
?ilCertificateTemplateExportAction  $exportAction = null,
?ilCertificateBackgroundImageUpload  $upload = null,
?ilCertificateTemplatePreviewAction  $previewAction = null,
?FileUpload  $fileUpload = null,
private readonly ilSetting  $settings = new ilSetting('certificate'),
?ilCertificateBackgroundImageDelete  $backgroundImageDelete = null,
?Filesystem  $fileSystem = null,
?ilCertificateBackgroundImageFileService  $imageFileService = null,
?Filesystem  $tmp_file_system = null 
)

Definition at line 66 of file class.ilCertificateGUI.php.

References $certificatePath, $DIC, $logger, $pageFormats, ILIAS\Repository\access(), ILIAS\Repository\ctrl(), ILIAS\Repository\int(), ILIAS\Repository\lng(), ILIAS\Repository\logger(), ILIAS\Repository\refinery(), and ILIAS\Repository\toolbar().

85  {
86  global $DIC;
87 
88  $this->httpWrapper = $DIC->http()->wrapper();
89  $this->refinery = $DIC->refinery();
90  $this->lng = $DIC['lng'];
91  $this->tpl = $DIC['tpl'];
92  $this->ctrl = $DIC['ilCtrl'];
93  $this->ilias = $DIC['ilias'];
94 
95  $this->tree = $DIC['tree'];
96  $this->access = $DIC['ilAccess'];
97  $this->toolbar = $DIC['ilToolbar'];
98 
99  $this->global_certificate_settings = new ilObjCertificateSettings();
100 
101  $this->lng->loadLanguageModule('cert');
102  $this->lng->loadLanguageModule("trac");
103 
104  $this->ref_id = (int) $DIC->http()->wrapper()->query()->retrieve("ref_id", $DIC->refinery()->kindlyTo()->int());
105 
106  $this->logger = $DIC->logger()->cert();
107 
108  $this->settingsFormFactory = $settingsFormFactory ?? new ilCertificateSettingsFormRepository(
109  $this->objectId,
111  $this->lng,
112  $this->tpl,
113  $this->ctrl,
114  $this->access,
115  $this->toolbar,
116  $placeholderDescriptionObject,
117  $DIC->ui()->factory(),
118  $DIC->ui()->renderer()
119  );
120  $this->templateRepository = $templateRepository ?? new ilCertificateTemplateDatabaseRepository(
121  $DIC->database(),
123  );
124  $this->deleteAction = $deleteAction ?? new ilCertificateTemplateDeleteAction($this->templateRepository);
125  $this->pageFormats = $pageFormats ?? new ilPageFormats($DIC->language());
126  $this->xlsFoParser = $xlsFoParser ?? new ilXlsFoParser($DIC->settings(), $this->pageFormats);
127  $this->backgroundImageUpload = $upload ?? new ilCertificateBackgroundImageUpload(
128  $DIC->upload(),
130  $DIC->language()
131  );
132  $this->exportAction = $exportAction ?? new ilCertificateTemplateExportAction(
133  $this->objectId,
135  $this->templateRepository,
136  $DIC->filesystem()->web()
137  );
138  $this->previewAction = $previewAction ?? new ilCertificateTemplatePreviewAction(
139  $this->templateRepository,
140  $placeholderValuesObject
141  );
142  $this->fileUpload = $fileUpload ?? $DIC->upload();
143  $this->certificatePath = $certificatePath;
144  $this->fileSystem = $fileSystem ?? $DIC->filesystem()->web();
145  $imageFileService ??= new ilCertificateBackgroundImageFileService(
146  $this->certificatePath,
147  $this->fileSystem
148  );
149  $this->backgroundImageDelete = $backgroundImageDelete ?? new ilCertificateBackgroundImageDelete(
150  $this->certificatePath,
151  $imageFileService
152  );
153  $this->tmp_file_system = $tmp_file_system ?? $DIC->filesystem()->temp();
154  ;
155  }
readonly ilPageFormats $pageFormats
readonly ilCertificateFormRepository $settingsFormFactory
readonly Filesystem $fileSystem
readonly ilCertificateBackgroundImageDelete $backgroundImageDelete
readonly ilCertificateTemplateExportAction $exportAction
global $DIC
Definition: feed.php:28
Class ilObjCertificateSettings.
readonly FileUpload $fileUpload
header include for all ilias files.
readonly string $certificatePath
readonly ilCertificateTemplatePreviewAction $previewAction
readonly Filesystem $tmp_file_system
readonly ilLogger $logger
readonly ilCertificateTemplateRepository $templateRepository
readonly ilXlsFoParser $xlsFoParser
readonly ilCertificateDeleteAction $deleteAction
+ Here is the call graph for this function:

Member Function Documentation

◆ certificateDelete()

ilCertificateGUI::certificateDelete ( )

Definition at line 234 of file class.ilCertificateGUI.php.

References ILIAS\Repository\ctrl(), and ILIAS\Repository\lng().

234  : void
235  {
236  // display confirmation message
237  $cgui = new ilConfirmationGUI();
238  $cgui->setFormAction($this->ctrl->getFormAction($this, "certificateEditor"));
239  $cgui->setHeaderText($this->lng->txt("certificate_confirm_deletion_text"));
240  $cgui->setCancel($this->lng->txt("no"), "certificateEditor");
241  $cgui->setConfirm($this->lng->txt("yes"), "certificateDeleteConfirm");
242 
243  $this->tpl->setContent($cgui->getHTML());
244  }
+ Here is the call graph for this function:

◆ certificateDeleteConfirm()

ilCertificateGUI::certificateDeleteConfirm ( )

Deletes the certificate and all its data.

Definition at line 249 of file class.ilCertificateGUI.php.

References ILIAS\Repository\ctrl().

249  : void
250  {
251  $template = $this->templateRepository->fetchCurrentlyUsedCertificate($this->objectId);
252  $templateId = $template->getId();
253 
254  $this->deleteAction->delete($templateId, $this->objectId);
255  $this->ctrl->redirect($this, "certificateEditor");
256  }
+ Here is the call graph for this function:

◆ certificateExportFO()

ilCertificateGUI::certificateExportFO ( )

Exports the certificate.

Exceptions
FileAlreadyExistsException
FileNotFoundException
IOException

Definition at line 214 of file class.ilCertificateGUI.php.

214  : void
215  {
216  $this->exportAction->export();
217  }

◆ certificateImport()

ilCertificateGUI::certificateImport ( )

Definition at line 193 of file class.ilCertificateGUI.php.

193  : void
194  {
195  $this->certificateEditor();
196  }

◆ certificatePreview()

ilCertificateGUI::certificatePreview ( )

Definition at line 198 of file class.ilCertificateGUI.php.

References ILIAS\Repository\lng().

198  : void
199  {
200  try {
201  $this->previewAction->createPreviewPdf($this->objectId);
202  } catch (Exception) {
203  $this->tpl->setOnScreenMessage('failure', $this->lng->txt('error_creating_certificate_pdf'));
204  $this->certificateEditor();
205  }
206  }
+ Here is the call graph for this function:

◆ certificateRemoveBackground()

ilCertificateGUI::certificateRemoveBackground ( )
Exceptions
FileAlreadyExistsException
FileNotFoundException
IOException
ilDatabaseException
ilException
ilObjectNotFoundException
ilWACException

Definition at line 228 of file class.ilCertificateGUI.php.

228  : void
229  {
230  $this->backgroundImageDelete->deleteBackgroundImage(null);
231  $this->certificateEditor();
232  }

◆ certificateSave()

ilCertificateGUI::certificateSave ( )

Saves the certificate.

Exceptions
FileAlreadyExistsException
FileNotFoundException
IOException
ilDatabaseException
ilException
ilWACException

Definition at line 267 of file class.ilCertificateGUI.php.

References $DIC.

267  : void
268  {
269  global $DIC;
270 
271  $form = $this->settingsFormFactory->createForm(
272  $this
273  );
274 
275  $form->setValuesByPost();
276 
277  $request = $DIC->http()->request();
278 
279  $formFields = $request->getParsedBody();
280 
281  $this->tpl->setVariable('ADM_CONTENT', $form->getHTML());
282 
283  $this->saveCertificate($form, $formFields, $this->objectId);
284  }
global $DIC
Definition: feed.php:28

◆ certificateUpload()

ilCertificateGUI::certificateUpload ( )
Exceptions
FileAlreadyExistsException
FileNotFoundException
IOException
ilDatabaseException
ilException
ilObjectNotFoundException
ilWACException

Definition at line 295 of file class.ilCertificateGUI.php.

295  : void
296  {
297  $this->certificateEditor();
298  }

◆ createFormatArray()

ilCertificateGUI::createFormatArray ( ilCertificateTemplate  $certificateTemplate)
private

Definition at line 523 of file class.ilCertificateGUI.php.

References ilPageFormats\DEFAULT_MARGIN_BODY_BOTTOM, ilPageFormats\DEFAULT_MARGIN_BODY_LEFT, ilPageFormats\DEFAULT_MARGIN_BODY_RIGHT, ilPageFormats\DEFAULT_MARGIN_BODY_TOP, ilCertificateTemplate\getCertificateContent(), ilCertificateTemplate\getCertificateHash(), and ILIAS\Repository\settings().

Referenced by getEditorForm().

523  : array
524  {
525  if ('' === $certificateTemplate->getCertificateHash()) {
526  $format = $this->settings->get('pageformat', '');
527  $formats = $this->pageFormats->fetchPageFormats();
528 
529  return [
530  'pageformat' => $format,
531  'pagewidth' => $formats['width'] ?? '',
532  'pageheight' => $formats['height'] ?? '',
533  'margin_body_top' => ilPageFormats::DEFAULT_MARGIN_BODY_TOP,
534  'margin_body_right' => ilPageFormats::DEFAULT_MARGIN_BODY_RIGHT,
535  'margin_body_bottom' => ilPageFormats::DEFAULT_MARGIN_BODY_BOTTOM,
536  'margin_body_left' => ilPageFormats::DEFAULT_MARGIN_BODY_LEFT,
537  'certificate_text' => $certificateTemplate->getCertificateContent()
538  ];
539  }
540  return $this->settingsFormFactory->fetchFormFieldData($certificateTemplate->getCertificateContent());
541  }
final const DEFAULT_MARGIN_BODY_TOP
final const DEFAULT_MARGIN_BODY_RIGHT
final const DEFAULT_MARGIN_BODY_LEFT
final const DEFAULT_MARGIN_BODY_BOTTOM
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ executeCommand()

ilCertificateGUI::executeCommand ( )
Returns
mixed|null
Exceptions
FileAlreadyExistsException
FileNotFoundException
IOException
ilCtrlException
ilDatabaseException
ilException
ilWACException

Definition at line 167 of file class.ilCertificateGUI.php.

References ILIAS\Repository\ctrl(), getCommand(), and getEditorForm().

168  {
169  $cmd = $this->ctrl->getCmd();
170  $next_class = $this->ctrl->getNextClass($this);
171 
172  $ret = null;
173 
174  $cmd = $this->getCommand($cmd);
175  switch ($next_class) {
176  case 'ilpropertyformgui':
177  $form = $this->getEditorForm();
178  $this->ctrl->forwardCommand($form);
179  break;
180 
181  default:
182  $ret = $this->$cmd();
183  break;
184  }
185  return $ret;
186  }
+ Here is the call graph for this function:

◆ getCommand()

ilCertificateGUI::getCommand (   $cmd)

Definition at line 188 of file class.ilCertificateGUI.php.

Referenced by executeCommand().

189  {
190  return $cmd;
191  }
+ Here is the caller graph for this function:

◆ getEditorForm()

ilCertificateGUI::getEditorForm ( )
private
Exceptions
FileAlreadyExistsException
FileNotFoundException
IOException
ilDatabaseException
ilException
ilWACException

Definition at line 308 of file class.ilCertificateGUI.php.

References $DIC, Vendor\Package\$e, $objId, ilObjUserTracking\_enabledLearningProgress(), ilObject\_lookupType(), ilPropertyFormGUI\checkInput(), createFormatArray(), ILIAS\Repository\ctrl(), ilPropertyFormGUI\getHTML(), ilPropertyFormGUI\getInput(), ilObjectFactory\getInstanceByObjId(), ilPropertyFormGUI\getItemByPostVar(), ILIAS_VERSION_NUMERIC, ILIAS\Repository\lng(), ILIAS\Repository\logger(), ilLPObjSettings\LP_MODE_DEACTIVATED, ILIAS\Repository\refinery(), and ilPropertyFormGUI\setValuesByPost().

Referenced by executeCommand().

309  {
310  $certificateTemplate = $this->templateRepository->fetchCurrentlyUsedCertificate($this->objectId);
311 
312  $form = $this->settingsFormFactory->createForm(
313  $this
314  );
315 
316  $formFields = $this->createFormatArray($certificateTemplate);
317 
318  $formFields['active'] = $certificateTemplate->isCurrentlyActive();
319 
320  $form->setValuesByArray($formFields);
321 
322  return $form;
323  }
createFormatArray(ilCertificateTemplate $certificateTemplate)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $access

ilAccessHandler ilCertificateGUI::$access
protected

Definition at line 50 of file class.ilCertificateGUI.php.

◆ $backgroundImageDelete

readonly ilCertificateBackgroundImageDelete ilCertificateGUI::$backgroundImageDelete
private

Definition at line 40 of file class.ilCertificateGUI.php.

◆ $backgroundImageUpload

readonly ilCertificateBackgroundImageUpload ilCertificateGUI::$backgroundImageUpload
private

Definition at line 57 of file class.ilCertificateGUI.php.

◆ $certificatePath

readonly string ilCertificateGUI::$certificatePath
private

Definition at line 60 of file class.ilCertificateGUI.php.

Referenced by __construct().

◆ $ctrl

ilCtrlInterface ilCertificateGUI::$ctrl
protected

Definition at line 44 of file class.ilCertificateGUI.php.

◆ $deleteAction

readonly ilCertificateDeleteAction ilCertificateGUI::$deleteAction
private

Definition at line 55 of file class.ilCertificateGUI.php.

◆ $exportAction

readonly ilCertificateTemplateExportAction ilCertificateGUI::$exportAction
private

Definition at line 56 of file class.ilCertificateGUI.php.

◆ $fileSystem

readonly Filesystem ilCertificateGUI::$fileSystem
private

Definition at line 41 of file class.ilCertificateGUI.php.

◆ $fileUpload

readonly FileUpload ilCertificateGUI::$fileUpload
private

Definition at line 59 of file class.ilCertificateGUI.php.

◆ $global_certificate_settings

readonly ilObjCertificateSettings ilCertificateGUI::$global_certificate_settings
private

Definition at line 64 of file class.ilCertificateGUI.php.

◆ $httpWrapper

readonly WrapperFactory ilCertificateGUI::$httpWrapper
private

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

◆ $ilias

ILIAS ilCertificateGUI::$ilias
protected

Definition at line 46 of file class.ilCertificateGUI.php.

◆ $lng

ilLanguage ilCertificateGUI::$lng
protected

Definition at line 48 of file class.ilCertificateGUI.php.

◆ $logger

readonly ilLogger ilCertificateGUI::$logger
private

Definition at line 63 of file class.ilCertificateGUI.php.

Referenced by __construct().

◆ $pageFormats

readonly ilPageFormats ilCertificateGUI::$pageFormats
private

Definition at line 61 of file class.ilCertificateGUI.php.

Referenced by __construct().

◆ $previewAction

readonly ilCertificateTemplatePreviewAction ilCertificateGUI::$previewAction
private

Definition at line 58 of file class.ilCertificateGUI.php.

◆ $ref_id

int ilCertificateGUI::$ref_id
protected

Definition at line 49 of file class.ilCertificateGUI.php.

◆ $refinery

readonly Factory ilCertificateGUI::$refinery
private

Definition at line 43 of file class.ilCertificateGUI.php.

◆ $settingsFormFactory

readonly ilCertificateFormRepository ilCertificateGUI::$settingsFormFactory
private

Definition at line 53 of file class.ilCertificateGUI.php.

◆ $templateRepository

readonly ilCertificateTemplateRepository ilCertificateGUI::$templateRepository
private

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

◆ $tmp_file_system

readonly Filesystem ilCertificateGUI::$tmp_file_system
private

Definition at line 62 of file class.ilCertificateGUI.php.

◆ $toolbar

ilToolbarGUI ilCertificateGUI::$toolbar
protected

Definition at line 51 of file class.ilCertificateGUI.php.

◆ $tpl

ilGlobalPageTemplate ilCertificateGUI::$tpl
protected

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

◆ $tree

ilTree ilCertificateGUI::$tree
protected

Definition at line 45 of file class.ilCertificateGUI.php.

◆ $xlsFoParser

readonly ilXlsFoParser ilCertificateGUI::$xlsFoParser
private

Definition at line 54 of file class.ilCertificateGUI.php.


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