diff --git a/lib/Alchemy/Phrasea/Controller/Admin/DataboxController.php b/lib/Alchemy/Phrasea/Controller/Admin/DataboxController.php index f1e8e5e6a0..e1c2b4ee21 100644 --- a/lib/Alchemy/Phrasea/Controller/Admin/DataboxController.php +++ b/lib/Alchemy/Phrasea/Controller/Admin/DataboxController.php @@ -15,6 +15,7 @@ use Alchemy\Phrasea\Authentication\ACLProvider; use Alchemy\Phrasea\Authentication\Authenticator; use Alchemy\Phrasea\Controller\Controller; use Alchemy\Phrasea\Model\Manipulator\TaskManipulator; +use Alchemy\Phrasea\Out\Module\PDFCgu; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; @@ -244,6 +245,10 @@ class DataboxController extends Controller foreach ($request->request->get('TOU', []) as $loc => $terms) { $databox->update_cgus($loc, $terms, !!$request->request->get('valid', false)); } + + // generate cgu for the databox + $pdfCgu = new PDFCgu($this->app, $databox_id); + $pdfCgu->save(); } catch (\Exception $e) { return $this->app->redirectPath('admin_database_display_cgus', [ 'databox_id' => $databox_id, diff --git a/lib/Alchemy/Phrasea/Out/Module/PDFCgu.php b/lib/Alchemy/Phrasea/Out/Module/PDFCgu.php new file mode 100644 index 0000000000..e2142d9e43 --- /dev/null +++ b/lib/Alchemy/Phrasea/Out/Module/PDFCgu.php @@ -0,0 +1,60 @@ +app = $app; + $this->databoxId = $databoxId; + + $this->printCgu(); + } + + public function save() + { + $this->pdf->Close(); + $pathName = self::getDataboxCguPath($this->app, $this->databoxId); + + $this->pdf->Output($pathName, 'F'); + } + + public static function getDataboxCguPath(Application $app, $databoxId) + { + + return \p4string::addEndSlash($app['tmp.download.path']). self::getDataboxCguPdfName($app, $databoxId); + } + + public static function getDataboxCguPdfName(Application $app, $databoxId) + { + $databox = $app->findDataboxById($databoxId); + + return 'cgu_' . $databoxId . '_'. $databox->get_dbname() . '.pdf'; + } + + private function printCgu() + { + $databox = $this->app->findDataboxById($this->databoxId); + $databox->get_dbname(); + + $CGUs = $databox->get_cgus(); + + $html = ''; + + foreach ($CGUs as $locale => $tou) { + $html .= '