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

Public Member Functions

 __construct (private readonly ilCertificateTemplateRepository $templateRepository, private readonly ilCertificatePlaceholderValues $placeholderValuesObject, private readonly IRSS $irss, private readonly string $rootDirectory=CLIENT_WEB_DIR, ?ilObjUser $user=null, ?ilCertificateUtilHelper $utilHelper=null, ?ilCertificateUserDefinedFieldsHelper $userDefinedFieldsHelper=null, ?ilCertificateRpcClientFactoryHelper $rpcClientFactoryHelper=null, ?ilCertificatePdfFileNameFactory $pdfFileNameFactory=null)
 
 createPreviewPdf (int $objectId)
 

Private Member Functions

 exchangeCertificateVariables (string $certificate_text, ilCertificateTemplate $template, int $objectId)
 Exchanges the variables in the certificate text with given values. More...
 
 getCustomCertificateFields ()
 

Private Attributes

readonly ilObjUser $user
 
readonly ilCertificateUtilHelper $utilHelper
 
readonly ilCertificateUserDefinedFieldsHelper $userDefinedFieldsHelper
 
readonly ilCertificateRpcClientFactoryHelper $rpcClientFactoryHelper
 
readonly ilCertificatePdfFileNameFactory $pdfFileNameFactory
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilCertificateTemplatePreviewAction::__construct ( private readonly ilCertificateTemplateRepository  $templateRepository,
private readonly ilCertificatePlaceholderValues  $placeholderValuesObject,
private readonly IRSS  $irss,
private readonly string  $rootDirectory = CLIENT_WEB_DIR,
?ilObjUser  $user = null,
?ilCertificateUtilHelper  $utilHelper = null,
?ilCertificateUserDefinedFieldsHelper  $userDefinedFieldsHelper = null,
?ilCertificateRpcClientFactoryHelper  $rpcClientFactoryHelper = null,
?ilCertificatePdfFileNameFactory  $pdfFileNameFactory = null 
)

Definition at line 35 of file ilCertificateTemplatePreviewAction.php.

References $DIC, $pdfFileNameFactory, $rpcClientFactoryHelper, $user, $userDefinedFieldsHelper, $utilHelper, null, and ILIAS\Repository\user().

45  {
46  global $DIC;
47  if (null === $user) {
48  $user = $DIC->user();
49  }
50  $this->user = $user;
51 
52  if (null === $utilHelper) {
54  }
55  $this->utilHelper = $utilHelper;
56 
59  }
60  $this->userDefinedFieldsHelper = $userDefinedFieldsHelper;
61 
62  if (null === $rpcClientFactoryHelper) {
64  }
65  $this->rpcClientFactoryHelper = $rpcClientFactoryHelper;
66 
67  if (null === $pdfFileNameFactory) {
69  }
70  $this->pdfFileNameFactory = $pdfFileNameFactory;
71  }
readonly ilCertificateRpcClientFactoryHelper $rpcClientFactoryHelper
readonly ilCertificateUserDefinedFieldsHelper $userDefinedFieldsHelper
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
readonly ilCertificatePdfFileNameFactory $pdfFileNameFactory
global $DIC
Definition: shib_login.php:22
+ Here is the call graph for this function:

Member Function Documentation

◆ createPreviewPdf()

ilCertificateTemplatePreviewAction::createPreviewPdf ( int  $objectId)
Exceptions
Exception

Definition at line 76 of file ilCertificateTemplatePreviewAction.php.

References exchangeCertificateVariables(), and null.

76  : void
77  {
78  $template = $this->templateRepository->fetchCurrentlyUsedCertificate($objectId);
79 
80  $xslfo = $template->getCertificateContent();
81 
82  $xslfo = $this->exchangeCertificateVariables($xslfo, $template, $objectId);
83 
84  $pdf_base64 = $this->rpcClientFactoryHelper
85  ->ilFO2PDF('RPCTransformationHandler', $xslfo)
86  ;
87 
88  $pdfPresentation = new ilUserCertificatePresentation(
89  $template->getObjId(),
90  $template->getObjType(),
91  null,
92  '',
93  ''
94  );
95 
96  $this->utilHelper->deliverData(
97  $pdf_base64->scalar,
98  $this->pdfFileNameFactory->create($pdfPresentation),
99  'application/pdf'
100  );
101  }
exchangeCertificateVariables(string $certificate_text, ilCertificateTemplate $template, int $objectId)
Exchanges the variables in the certificate text with given values.
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
+ Here is the call graph for this function:

◆ exchangeCertificateVariables()

ilCertificateTemplatePreviewAction::exchangeCertificateVariables ( string  $certificate_text,
ilCertificateTemplate  $template,
int  $objectId 
)
private

Exchanges the variables in the certificate text with given values.

Parameters
string$certificate_textThe XSL-FO certificate text
Returns
string XSL-FO code

Definition at line 108 of file ilCertificateTemplatePreviewAction.php.

References ilCertificateTemplate\getBackgroundImageIdentification(), getCustomCertificateFields(), and ILIAS\Repository\user().

Referenced by createPreviewPdf().

112  : string {
113  $insert_tags = $this->placeholderValuesObject->getPlaceholderValuesForPreview($this->user->getId(), $objectId);
114 
115  foreach ($this->getCustomCertificateFields() as $value) {
116  $insert_tags[$value['ph']] = $this->utilHelper->prepareFormOutput($value['name']);
117  }
118 
119  foreach ($insert_tags as $placeholderVariable => $value) {
120  $certificate_text = str_replace('[' . $placeholderVariable . ']', $value, $certificate_text);
121  }
122 
123  $certificate_text = str_replace(
124  '[CLIENT_WEB_DIR]',
125  'file://' . $this->rootDirectory,
126  $certificate_text
127  );
128 
129  $identification = $this->irss->manage()->find($template->getBackgroundImageIdentification());
130  if ($identification instanceof ResourceIdentification) {
131  $backgroundImagePath = $this->irss->consume()->src($identification)->getSrc(true);
132  }
133 
134  return str_replace(
135  '[BACKGROUND_IMAGE]',
136  $backgroundImagePath ?? '',
137  $certificate_text
138  );
139  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getCustomCertificateFields()

ilCertificateTemplatePreviewAction::getCustomCertificateFields ( )
private
Returns
array<int, array{name: string, ph: string}>

Definition at line 144 of file ilCertificateTemplatePreviewAction.php.

References Vendor\Package\$f.

Referenced by exchangeCertificateVariables().

144  : array
145  {
146  $user_field_definitions = $this->userDefinedFieldsHelper->createInstance();
147  $fds = $user_field_definitions->getDefinitions();
148 
149  $fields = [];
150  foreach ($fds as $f) {
151  if ($f['certificate']) {
152  $fields[$f['field_id']] = [
153  'name' => $f['field_name'],
154  'ph' => '[#' . str_replace(' ', '_', strtoupper($f['field_name'])) . ']'
155  ];
156  }
157  }
158 
159  return $fields;
160  }
+ Here is the caller graph for this function:

Field Documentation

◆ $pdfFileNameFactory

readonly ilCertificatePdfFileNameFactory ilCertificateTemplatePreviewAction::$pdfFileNameFactory
private

Definition at line 33 of file ilCertificateTemplatePreviewAction.php.

Referenced by __construct().

◆ $rpcClientFactoryHelper

readonly ilCertificateRpcClientFactoryHelper ilCertificateTemplatePreviewAction::$rpcClientFactoryHelper
private

Definition at line 32 of file ilCertificateTemplatePreviewAction.php.

Referenced by __construct().

◆ $user

readonly ilObjUser ilCertificateTemplatePreviewAction::$user
private

Definition at line 29 of file ilCertificateTemplatePreviewAction.php.

Referenced by __construct().

◆ $userDefinedFieldsHelper

readonly ilCertificateUserDefinedFieldsHelper ilCertificateTemplatePreviewAction::$userDefinedFieldsHelper
private

Definition at line 31 of file ilCertificateTemplatePreviewAction.php.

Referenced by __construct().

◆ $utilHelper

readonly ilCertificateUtilHelper ilCertificateTemplatePreviewAction::$utilHelper
private

Definition at line 30 of file ilCertificateTemplatePreviewAction.php.

Referenced by __construct().


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