diff --git a/application/Espo/Core/Htmlizer/Factory.php b/application/Espo/Core/Htmlizer/Factory.php new file mode 100644 index 0000000000..5429661edd --- /dev/null +++ b/application/Espo/Core/Htmlizer/Factory.php @@ -0,0 +1,57 @@ +container = $container; + } + + public function create(bool $skipAcl = false) + { + return new Htmlizer( + $this->container->get('fileManager'), + $this->container->get('dateTime'), + $this->container->get('number'), + !$skipAcl ? $this->container->get('acl') : null, + $this->container->get('entityManager'), + $this->container->get('metadata'), + $this->container->get('defaultLanguage'), + $this->container->get('config'), + $this->container->get('serviceFactory') + ); + } +} diff --git a/application/Espo/Core/Htmlizer/Htmlizer.php b/application/Espo/Core/Htmlizer/Htmlizer.php index f4a3b4d934..c6dc4bd817 100644 --- a/application/Espo/Core/Htmlizer/Htmlizer.php +++ b/application/Espo/Core/Htmlizer/Htmlizer.php @@ -39,7 +39,7 @@ use Espo\Core\Utils\Config; use Espo\Core\Utils\Language; use Espo\Core\Utils\Metadata; use Espo\ORM\EntityManager; -use Espo\Core\serviceFactory; +use Espo\Core\ServiceFactory; use LightnCandy\LightnCandy as LightnCandy; diff --git a/application/Espo/Core/Loaders/HtmlizerFactory.php b/application/Espo/Core/Loaders/HtmlizerFactory.php new file mode 100644 index 0000000000..3e80d03e98 --- /dev/null +++ b/application/Espo/Core/Loaders/HtmlizerFactory.php @@ -0,0 +1,40 @@ +getContainer() + ); + } +} diff --git a/application/Espo/Services/Pdf.php b/application/Espo/Services/Pdf.php index ec07f550f2..ffb1c7cb76 100644 --- a/application/Espo/Services/Pdf.php +++ b/application/Espo/Services/Pdf.php @@ -47,14 +47,13 @@ class Pdf extends \Espo\Core\Services\Base protected function init() { - $this->addDependency('fileManager'); $this->addDependency('acl'); $this->addDependency('metadata'); $this->addDependency('serviceFactory'); - $this->addDependency('dateTime'); - $this->addDependency('number'); $this->addDependency('entityManager'); $this->addDependency('defaultLanguage'); + + $this->addDependency('htmlizerFactory'); } protected function getAcl() @@ -72,11 +71,6 @@ class Pdf extends \Espo\Core\Services\Base return $this->getInjection('serviceFactory'); } - protected function getFileManager() - { - return $this->getInjection('fileManager'); - } - protected function printEntity(Entity $entity, Entity $template, Htmlizer $htmlizer, \Espo\Core\Pdf\Tcpdf $pdf, ?array $additionalData = null) { @@ -308,16 +302,6 @@ class Pdf extends \Espo\Core\Services\Base protected function createHtmlizer() { - return new Htmlizer( - $this->getFileManager(), - $this->getInjection('dateTime'), - $this->getInjection('number'), - $this->getAcl(), - $this->getInjection('entityManager'), - $this->getInjection('metadata'), - $this->getInjection('defaultLanguage'), - $this->getInjection('config'), - $this->getInjection('serviceFactory') - ); + return $this->getInjection('htmlizerFactory')->create(); } }