ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
class.ilPdfGenerator.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2018 ILIAS open source, Extended GPL, see docs/LICENSE */
3
8{
13
17 private $logger;
18
22 private $rpcHelper;
23
28
36 public function __construct(
37 ilUserCertificateRepository $userCertificateRepository,
40 ilCertificatePdfFileNameFactory $pdfFileNameFactory = null,
41 ilLanguage $lng = null
42 ) {
43 global $DIC;
44
45 $this->certificateRepository = $userCertificateRepository;
46 $this->logger = $logger;
47
48 if (null === $rpcHelper) {
50 }
51 $this->rpcHelper = $rpcHelper;
52
53 if (null === $lng) {
54 $lng = $DIC->language();
55 }
56
57 if (null === $pdfFileNameFactory) {
58 $pdfFileNameFactory = new ilCertificatePdfFileNameFactory($lng);
59 }
60 $this->pdfFilenameFactory = $pdfFileNameFactory;
61 }
62
68 public function generate(int $userCertificateId)
69 {
70 $certificate = $this->certificateRepository->fetchCertificate($userCertificateId);
71
72 return $this->createPDFScalar($certificate);
73 }
74
81 public function generateCurrentActiveCertificate(int $userId, int $objId) : string
82 {
83 $certificate = $this->certificateRepository->fetchActiveCertificate($userId, $objId);
84
85 return $this->createPDFScalar($certificate);
86 }
87
88 public function generateFileName(int $userId, int $objId) : string
89 {
90 $certificate = $this->certificateRepository->fetchActiveCertificateForPresentation($userId, $objId);
91
93 if (!$user instanceof ilObjUser) {
94 throw new ilException(sprintf('The user_id "%s" does NOT reference a user', $userId));
95 }
96
97 $pdfFileName = $this->pdfFilenameFactory->create($certificate);
98
99 return $pdfFileName;
100 }
101
106 private function createPDFScalar(ilUserCertificate $certificate) : string
107 {
108 $certificateContent = $certificate->getCertificateContent();
109
110 $certificateContent = str_replace(
111 '[BACKGROUND_IMAGE]',
112 '[CLIENT_WEB_DIR]' . $certificate->getBackgroundImagePath(),
113 $certificateContent
114 );
115 $certificateContent = str_replace(
116 '[CLIENT_WEB_DIR]',
117 CLIENT_WEB_DIR,
118 $certificateContent
119 );
120
121 $pdf_base64 = $this->rpcHelper->ilFO2PDF('RPCTransformationHandler', $certificateContent);
122
123 return $pdf_base64->scalar;
124 }
125}
An exception for terminatinating execution or to throw for unit testing.
Base class for ILIAS Exception handling.
language handling
Component logger with individual log levels by component id.
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
createPDFScalar(ilUserCertificate $certificate)
generate(int $userCertificateId)
__construct(ilUserCertificateRepository $userCertificateRepository, ilLogger $logger, ilCertificateRpcClientFactoryHelper $rpcHelper=null, ilCertificatePdfFileNameFactory $pdfFileNameFactory=null, ilLanguage $lng=null)
generateCurrentActiveCertificate(int $userId, int $objId)
generateFileName(int $userId, int $objId)
Class ilPdfGeneratorConstantsTest.
$lng
$DIC
Definition: xapitoken.php:46
$objId
Definition: xapitoken.php:41