ILIAS  trunk Revision v11.0_alpha-2638-g80c1d007f79
class.ilUserCertificateApiGUI.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 
28 {
29  final public const CMD_DOWNLOAD = 'download';
30 
31  private readonly ilLogger $certificateLogger;
32  private readonly ServerRequestInterface $request;
33  private readonly ilLanguage $language;
34  private readonly ilCtrlInterface $ctrl;
35 
36  public function __construct(
37  ?ilLanguage $language = null,
38  ?ServerRequestInterface $request = null,
39  ?ilLogger $certificateLogger = null,
40  ?ilCtrlInterface $ctrl = null
41  ) {
42  global $DIC;
43 
44  if ($language === null) {
45  $language = $DIC->language();
46  }
47  $this->language = $language;
48 
49  if ($request === null) {
50  $request = $DIC->http()->request();
51  }
52  $this->request = $request;
53 
54  if ($certificateLogger === null) {
55  $certificateLogger = $DIC->logger()->cert();
56  }
57  $this->certificateLogger = $certificateLogger;
58 
59  if ($ctrl === null) {
60  $ctrl = $DIC->ctrl();
61  }
62  $this->ctrl = $ctrl;
63 
64  $this->language->loadLanguageModule('cert');
65  }
66 
67  public function executeCommand(): void
68  {
69  $cmd = $this->ctrl->getCmd();
70 
71  switch ($cmd) {
72  case self::CMD_DOWNLOAD:
73  $this->{$cmd}();
74  break;
75 
76  default:
77  break;
78  }
79  }
80 
81  public function download(): void
82  {
83  $userCertificateRepository = new ilUserCertificateRepository(null, $this->certificateLogger);
84  $pdfGenerator = new ilPdfGenerator($userCertificateRepository);
85 
86  $userCertificateId = (int) $this->request->getQueryParams()['certificate_id'];
87 
88  $userCertificate = $userCertificateRepository->fetchCertificate($userCertificateId);
89 
90  $pdfAction = new ilCertificatePdfAction(
91  $pdfGenerator,
93  $this->language->txt('error_creating_certificate_pdf')
94  );
95 
96  $pdfAction->downloadPdf($userCertificate->getUserId(), $userCertificate->getObjId());
97  }
98 }
readonly ServerRequestInterface $request
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
__construct(?ilLanguage $language=null, ?ServerRequestInterface $request=null, ?ilLogger $certificateLogger=null, ?ilCtrlInterface $ctrl=null)
global $DIC
Definition: shib_login.php:26
language()
description: > Example for rendring a language glyph.
Definition: language.php:41
downloadPdf(int $userId, int $objectId)