From dc0b7c8a140c5a7b8473ff09188ecc929f719cc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= Date: Fri, 4 Mar 2016 16:48:49 +0100 Subject: [PATCH 1/3] Add proper typehints in ToolsController --- lib/Alchemy/Phrasea/Controller/Prod/ToolsController.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/Alchemy/Phrasea/Controller/Prod/ToolsController.php b/lib/Alchemy/Phrasea/Controller/Prod/ToolsController.php index 90012df68e..4579c8a676 100644 --- a/lib/Alchemy/Phrasea/Controller/Prod/ToolsController.php +++ b/lib/Alchemy/Phrasea/Controller/Prod/ToolsController.php @@ -406,12 +406,12 @@ class ToolsController extends Controller } /** - * @param $record - * @param $subDefName - * @param $subDefDataUri + * @param \record_adapter $record + * @param string $subDefName + * @param string $subDefDataUri * @throws \DataURI\Exception\InvalidDataException */ - private function substituteMedia($record, $subDefName, $subDefDataUri) + private function substituteMedia(\record_adapter $record, $subDefName, $subDefDataUri) { $dataUri = Parser::parse($subDefDataUri); From 218507c6112be05bc73a312cf988262ff478ae25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= Date: Fri, 4 Mar 2016 16:49:10 +0100 Subject: [PATCH 2/3] fix rebuild of subdefs when a subdef is substituted. --- lib/Alchemy/Phrasea/Media/SubdefSubstituer.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/Alchemy/Phrasea/Media/SubdefSubstituer.php b/lib/Alchemy/Phrasea/Media/SubdefSubstituer.php index e16045f8f1..43154c86ac 100644 --- a/lib/Alchemy/Phrasea/Media/SubdefSubstituer.php +++ b/lib/Alchemy/Phrasea/Media/SubdefSubstituer.php @@ -121,8 +121,6 @@ class SubdefSubstituer $record->write_metas(); } - $record->rebuild_subdefs(); - $this->dispatcher->dispatch(RecordEvents::MEDIA_SUBSTITUTED, new MediaSubstitutedEvent($record)); } From 6bf390b47e6d1c0391f83a688d8dd6e1514de190 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Burnichon?= Date: Fri, 4 Mar 2016 17:19:55 +0100 Subject: [PATCH 3/3] fix ability to prevent subdef reconstruction on document substitution --- lib/Alchemy/Phrasea/Media/SubdefSubstituer.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/Alchemy/Phrasea/Media/SubdefSubstituer.php b/lib/Alchemy/Phrasea/Media/SubdefSubstituer.php index 43154c86ac..6333ba4fd1 100644 --- a/lib/Alchemy/Phrasea/Media/SubdefSubstituer.php +++ b/lib/Alchemy/Phrasea/Media/SubdefSubstituer.php @@ -46,7 +46,7 @@ class SubdefSubstituer public function substitute(\record_adapter $record, $name, MediaInterface $media, $adapt = true) { if ($name == 'document') { - $this->substituteDocument($record, $media); + $this->substituteDocument($record, $media, $adapt); return; } @@ -54,7 +54,12 @@ class SubdefSubstituer $this->substituteSubdef($record, $name, $media, $adapt); } - public function substituteDocument(\record_adapter $record, MediaInterface $media) + /** + * @param \record_adapter $record + * @param MediaInterface $media + * @param bool $shouldSubdefsBeRebuilt + */ + public function substituteDocument(\record_adapter $record, MediaInterface $media, $shouldSubdefsBeRebuilt = true) { /** @var \SplFileInfo $file */ $file = $media->getFile(); @@ -70,7 +75,9 @@ class SubdefSubstituer $record->write_metas(); - $record->rebuild_subdefs(); + if ($shouldSubdefsBeRebuilt) { + $record->rebuild_subdefs(); + } $this->dispatcher->dispatch(RecordEvents::MEDIA_SUBSTITUTED, new MediaSubstitutedEvent($record)); }