ILIAS  trunk Revision v11.0_alpha-1851-ga8564da6fed
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ilPdfGenerator Class Reference
+ Collaboration diagram for ilPdfGenerator:

Public Member Functions

 __construct (private readonly ilUserCertificateRepository $certificateRepository, private ?IRSS $irss=null, private ?Filesystem $filesystem=null, ?ilCertificateRpcClientFactoryHelper $rpcHelper=null, ?ilCertificatePdfFileNameFactory $pdfFileNameFactory=null, ?ilLanguage $lng=null,)
 
 generate (int $userCertificateId)
 
 generateCurrentActiveCertificate (int $userId, int $objId)
 
 generateFileName (int $userId, int $objId)
 

Private Member Functions

 createPDFScalar (ilUserCertificate $certificate)
 

Private Attributes

readonly ilCertificateRpcClientFactoryHelper $rpcHelper
 
readonly ilCertificatePdfFileNameFactory $pdfFilenameFactory
 

Detailed Description

Author
Niels Theen nthee.nosp@m.n@da.nosp@m.tabay.nosp@m..de

Definition at line 28 of file class.ilPdfGenerator.php.

Constructor & Destructor Documentation

◆ __construct()

ilPdfGenerator::__construct ( private readonly ilUserCertificateRepository  $certificateRepository,
private ?IRSS  $irss = null,
private ?Filesystem  $filesystem = null,
?ilCertificateRpcClientFactoryHelper  $rpcHelper = null,
?ilCertificatePdfFileNameFactory  $pdfFileNameFactory = null,
?ilLanguage  $lng = null 
)

Definition at line 33 of file class.ilPdfGenerator.php.

References $DIC, $lng, $rpcHelper, ILIAS\Repository\filesystem(), and null.

40  {
41  global $DIC;
42 
43  if (null === $irss) {
44  $irss = $DIC->resourceStorage();
45  }
46  $this->irss = $irss;
47 
48  if (null === $this->filesystem) {
49  $filesystem = $DIC->filesystem()->web();
50  }
51  $this->filesystem = $filesystem;
52 
53  if (null === $rpcHelper) {
55  }
56  $this->rpcHelper = $rpcHelper;
57 
58  if (null === $lng) {
59  $lng = $DIC->language();
60  }
61 
62  if (null === $pdfFileNameFactory) {
63  $pdfFileNameFactory = new ilCertificatePdfFileNameFactory($lng);
64  }
65  $this->pdfFilenameFactory = $pdfFileNameFactory;
66  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
global $DIC
Definition: shib_login.php:22
readonly ilCertificateRpcClientFactoryHelper $rpcHelper
global $lng
Definition: privfeed.php:31
+ Here is the call graph for this function:

Member Function Documentation

◆ createPDFScalar()

ilPdfGenerator::createPDFScalar ( ilUserCertificate  $certificate)
private

Definition at line 105 of file class.ilPdfGenerator.php.

References CLIENT_WEB_DIR, ILIAS\Repository\filesystem(), ilUserCertificate\getCertificateContent(), and ilUserCertificate\getCurrentBackgroundImageUsed().

Referenced by generate(), and generateCurrentActiveCertificate().

105  : string
106  {
107  $certificateContent = $certificate->getCertificateContent();
108 
109  $background_rid = $this->irss->manage()->find($certificate->getCurrentBackgroundImageUsed());
110  $background_src = '';
111  if ($background_rid instanceof ResourceIdentification) {
112  $background_src = $this->irss->consume()->src($background_rid)->getSrc(true);
113 
114  $certificateContent = str_replace(
115  ['[BACKGROUND_IMAGE]'],
116  [$background_src],
117  $certificateContent
118  );
119  } elseif ($this->filesystem->has($certificate->getCurrentBackgroundImageUsed())) {
120  $certificateContent = str_replace(
121  ['[BACKGROUND_IMAGE]', '[CLIENT_WEB_DIR]'],
122  ['[CLIENT_WEB_DIR]' . $certificate->getCurrentBackgroundImageUsed(), 'file://' . CLIENT_WEB_DIR],
123  $certificateContent
124  );
125  }
126 
127  $pdf_base64 = $this->rpcHelper->ilFO2PDF('RPCTransformationHandler', $certificateContent);
128 
129  return $pdf_base64->scalar;
130  }
const CLIENT_WEB_DIR
Definition: constants.php:47
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate()

ilPdfGenerator::generate ( int  $userCertificateId)
Exceptions
ilException

Definition at line 71 of file class.ilPdfGenerator.php.

References createPDFScalar().

71  : string
72  {
73  $certificate = $this->certificateRepository->fetchCertificate($userCertificateId);
74 
75  return $this->createPDFScalar($certificate);
76  }
createPDFScalar(ilUserCertificate $certificate)
+ Here is the call graph for this function:

◆ generateCurrentActiveCertificate()

ilPdfGenerator::generateCurrentActiveCertificate ( int  $userId,
int  $objId 
)
Exceptions
ilException

Definition at line 81 of file class.ilPdfGenerator.php.

References createPDFScalar().

81  : string
82  {
83  $certificate = $this->certificateRepository->fetchActiveCertificate($userId, $objId);
84 
85  return $this->createPDFScalar($certificate);
86  }
$objId
Definition: xapitoken.php:57
createPDFScalar(ilUserCertificate $certificate)
+ Here is the call graph for this function:

◆ generateFileName()

ilPdfGenerator::generateFileName ( int  $userId,
int  $objId 
)
Exceptions
ilDatabaseException
ilException
ilObjectNotFoundException

Definition at line 93 of file class.ilPdfGenerator.php.

References ilObjectFactory\getInstanceByObjId().

93  : string
94  {
95  $certificate = $this->certificateRepository->fetchActiveCertificateForPresentation($userId, $objId);
96 
97  $user = ilObjectFactory::getInstanceByObjId($userId);
98  if (!$user instanceof ilObjUser) {
99  throw new ilException(sprintf('The usr_id "%s" does NOT reference a user', $userId));
100  }
101 
102  return $this->pdfFilenameFactory->create($certificate);
103  }
$objId
Definition: xapitoken.php:57
static getInstanceByObjId(?int $obj_id, bool $stop_on_error=true)
get an instance of an Ilias object by object id
+ Here is the call graph for this function:

Field Documentation

◆ $pdfFilenameFactory

readonly ilCertificatePdfFileNameFactory ilPdfGenerator::$pdfFilenameFactory
private

Definition at line 31 of file class.ilPdfGenerator.php.

◆ $rpcHelper

readonly ilCertificateRpcClientFactoryHelper ilPdfGenerator::$rpcHelper
private

Definition at line 30 of file class.ilPdfGenerator.php.

Referenced by __construct().


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