Loading module/UnicaenDocument/config/merged/contenu.config.php +3 −0 Changes for module/UnicaenDocument/config/merged/contenu.config.php: 3 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -9,6 +9,8 @@ use UnicaenDocument\Form\Contenu\ContenuHydratorFactory; use UnicaenDocument\Provider\Privilege\DocumentcontentPrivileges; use UnicaenDocument\Service\Contenu\ContenuService; use UnicaenDocument\Service\Contenu\ContenuServiceFactory; use UnicaenDocument\Service\Exporter\ExporterService; use UnicaenDocument\Service\Exporter\ExporterServiceFactory; use UnicaenPrivilege\Guard\PrivilegeController; use Zend\Router\Http\Literal; use Zend\Router\Http\Segment; Loading Loading @@ -176,6 +178,7 @@ return [ 'service_manager' => [ 'factories' => [ ContenuService::class => ContenuServiceFactory::class, ExporterService::class => ExporterServiceFactory::class, ], ], 'form_elements' => [ Loading module/UnicaenDocument/src/UnicaenDocument/Service/Contenu/ContenuService.php +10 −0 Changes for module/UnicaenDocument/src/UnicaenDocument/Service/Contenu/ContenuService.php: 10 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -187,4 +187,14 @@ class ContenuService { return $this->replaceMacros($contenu->getContent(), $variables); } /** * @param Content $contenu * @param array $variables * @return string */ public function generateTitre($contenu, $variables) { return $this->replaceMacros($contenu->getComplement(), $variables); } } No newline at end of file module/UnicaenDocument/src/UnicaenDocument/Service/Exporter/ExporterService.php 0 → 100644 +60 −0 Changes for module/UnicaenDocument/src/UnicaenDocument/Service/Exporter/ExporterService.php: 60 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace UnicaenDocument\Service\Exporter; use UnicaenApp\Exception\RuntimeException; use UnicaenApp\Exporter\Pdf as PdfExporter; use UnicaenDocument\Service\Contenu\ContenuServiceAwareTrait; use Zend\View\Renderer\PhpRenderer; use Zend\View\Resolver\TemplatePathStack; class ExporterService extends PdfExporter { use ContenuServiceAwareTrait; private $vars; public function setVars(array $vars) { $this->vars = $vars; $this->vars['exporter'] = $this; return $this; } public function __construct(PhpRenderer $renderer = null, $format = 'A4', $orientationPaysage = false, $defaultFontSize = 10) { parent::__construct($renderer, $format, $orientationPaysage, $defaultFontSize); $resolver = $renderer->resolver(); $resolver->attach(new TemplatePathStack(['script_paths' => [__DIR__]])); } /** * @param null $filename * @param string $destination * @param null $memoryLimit * @return string * @throws \Mpdf\MpdfException */ public function export($filename = null, $destination = self::DESTINATION_BROWSER, $memoryLimit = null) { if (!isset($this->vars['type'])) { throw new RuntimeException("Aucun type de document de spécifié dans les variables de l'exportation"); } $contenu = $this->getContenuService()->getContenuByCode($this->vars['type']); if ($contenu === null) { throw new RuntimeException("Aucun contenu de récupéré pour le type [".$this->vars['type']."]"); } $complement = $this->getContenuService()->generateComplement($contenu,$this->vars); $content = $this->getContenuService()->generateContenu($contenu,$this->vars); $titre = $this->getContenuService()->generateTitre($contenu,$this->vars); $this->vars['script'] = $content; $this->addBodyScript('generated.phtml', false, $this->vars); $this->getMpdf()->SetTopMargin(25); $this->getMpdf()->SetTitle($titre); return PdfExporter::export($complement, $destination, $memoryLimit); } } No newline at end of file module/UnicaenDocument/src/UnicaenDocument/Service/Exporter/ExporterServiceAwareTrait.php 0 → 100644 +29 −0 Changes for module/UnicaenDocument/src/UnicaenDocument/Service/Exporter/ExporterServiceAwareTrait.php: 29 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace UnicaenDocument\Service\Exporter; trait ExporterServiceAwareTrait { /** @var ExporterService */ private $exporterService; /** * @return ExporterService */ public function getExporterService(): ExporterService { return $this->exporterService; } /** * @param ExporterService $exporterService * @return ExporterService */ public function setExporterService(ExporterService $exporterService): ExporterService { $this->exporterService = $exporterService; return $this->exporterService; } } No newline at end of file module/UnicaenDocument/src/UnicaenDocument/Service/Exporter/ExporterServiceFactory.php 0 → 100644 +25 −0 Changes for module/UnicaenDocument/src/UnicaenDocument/Service/Exporter/ExporterServiceFactory.php: 25 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace UnicaenDocument\Service\Exporter; use Interop\Container\ContainerInterface; use UnicaenDocument\Service\Contenu\ContenuService; class ExporterServiceFactory { public function __invoke(ContainerInterface $container) { /** * @var ContenuService $contenuService */ $contenuService = $container->get(ContenuService::class); /** * @var ExporterService $service */ $service = new ExporterService(); $service->setContenuService($contenuService); return $service; } } No newline at end of file Loading
module/UnicaenDocument/config/merged/contenu.config.php +3 −0 Changes for module/UnicaenDocument/config/merged/contenu.config.php: 3 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -9,6 +9,8 @@ use UnicaenDocument\Form\Contenu\ContenuHydratorFactory; use UnicaenDocument\Provider\Privilege\DocumentcontentPrivileges; use UnicaenDocument\Service\Contenu\ContenuService; use UnicaenDocument\Service\Contenu\ContenuServiceFactory; use UnicaenDocument\Service\Exporter\ExporterService; use UnicaenDocument\Service\Exporter\ExporterServiceFactory; use UnicaenPrivilege\Guard\PrivilegeController; use Zend\Router\Http\Literal; use Zend\Router\Http\Segment; Loading Loading @@ -176,6 +178,7 @@ return [ 'service_manager' => [ 'factories' => [ ContenuService::class => ContenuServiceFactory::class, ExporterService::class => ExporterServiceFactory::class, ], ], 'form_elements' => [ Loading
module/UnicaenDocument/src/UnicaenDocument/Service/Contenu/ContenuService.php +10 −0 Changes for module/UnicaenDocument/src/UnicaenDocument/Service/Contenu/ContenuService.php: 10 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -187,4 +187,14 @@ class ContenuService { return $this->replaceMacros($contenu->getContent(), $variables); } /** * @param Content $contenu * @param array $variables * @return string */ public function generateTitre($contenu, $variables) { return $this->replaceMacros($contenu->getComplement(), $variables); } } No newline at end of file
module/UnicaenDocument/src/UnicaenDocument/Service/Exporter/ExporterService.php 0 → 100644 +60 −0 Changes for module/UnicaenDocument/src/UnicaenDocument/Service/Exporter/ExporterService.php: 60 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace UnicaenDocument\Service\Exporter; use UnicaenApp\Exception\RuntimeException; use UnicaenApp\Exporter\Pdf as PdfExporter; use UnicaenDocument\Service\Contenu\ContenuServiceAwareTrait; use Zend\View\Renderer\PhpRenderer; use Zend\View\Resolver\TemplatePathStack; class ExporterService extends PdfExporter { use ContenuServiceAwareTrait; private $vars; public function setVars(array $vars) { $this->vars = $vars; $this->vars['exporter'] = $this; return $this; } public function __construct(PhpRenderer $renderer = null, $format = 'A4', $orientationPaysage = false, $defaultFontSize = 10) { parent::__construct($renderer, $format, $orientationPaysage, $defaultFontSize); $resolver = $renderer->resolver(); $resolver->attach(new TemplatePathStack(['script_paths' => [__DIR__]])); } /** * @param null $filename * @param string $destination * @param null $memoryLimit * @return string * @throws \Mpdf\MpdfException */ public function export($filename = null, $destination = self::DESTINATION_BROWSER, $memoryLimit = null) { if (!isset($this->vars['type'])) { throw new RuntimeException("Aucun type de document de spécifié dans les variables de l'exportation"); } $contenu = $this->getContenuService()->getContenuByCode($this->vars['type']); if ($contenu === null) { throw new RuntimeException("Aucun contenu de récupéré pour le type [".$this->vars['type']."]"); } $complement = $this->getContenuService()->generateComplement($contenu,$this->vars); $content = $this->getContenuService()->generateContenu($contenu,$this->vars); $titre = $this->getContenuService()->generateTitre($contenu,$this->vars); $this->vars['script'] = $content; $this->addBodyScript('generated.phtml', false, $this->vars); $this->getMpdf()->SetTopMargin(25); $this->getMpdf()->SetTitle($titre); return PdfExporter::export($complement, $destination, $memoryLimit); } } No newline at end of file
module/UnicaenDocument/src/UnicaenDocument/Service/Exporter/ExporterServiceAwareTrait.php 0 → 100644 +29 −0 Changes for module/UnicaenDocument/src/UnicaenDocument/Service/Exporter/ExporterServiceAwareTrait.php: 29 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace UnicaenDocument\Service\Exporter; trait ExporterServiceAwareTrait { /** @var ExporterService */ private $exporterService; /** * @return ExporterService */ public function getExporterService(): ExporterService { return $this->exporterService; } /** * @param ExporterService $exporterService * @return ExporterService */ public function setExporterService(ExporterService $exporterService): ExporterService { $this->exporterService = $exporterService; return $this->exporterService; } } No newline at end of file
module/UnicaenDocument/src/UnicaenDocument/Service/Exporter/ExporterServiceFactory.php 0 → 100644 +25 −0 Changes for module/UnicaenDocument/src/UnicaenDocument/Service/Exporter/ExporterServiceFactory.php: 25 added lines, 0 removed lines. Original line number Diff line number Diff line <?php namespace UnicaenDocument\Service\Exporter; use Interop\Container\ContainerInterface; use UnicaenDocument\Service\Contenu\ContenuService; class ExporterServiceFactory { public function __invoke(ContainerInterface $container) { /** * @var ContenuService $contenuService */ $contenuService = $container->get(ContenuService::class); /** * @var ExporterService $service */ $service = new ExporterService(); $service->setContenuService($contenuService); return $service; } } No newline at end of file