From b94dec36705e8dcd0d29a7e4245dafd32b6e84ac Mon Sep 17 00:00:00 2001 From: Brandon Date: Mon, 12 Aug 2024 05:14:02 -0500 Subject: [PATCH 1/2] =?UTF-8?q?=F0=9F=A7=91=E2=80=8D=F0=9F=92=BB=20Add=20s?= =?UTF-8?q?upport=20for=20passing=20partials=20to=20`->addLayout`=20(Fixes?= =?UTF-8?q?=20#257)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Builder/FlexibleContentBuilder.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Builder/FlexibleContentBuilder.php b/src/Builder/FlexibleContentBuilder.php index e0bae906..0c18f2ac 100644 --- a/src/Builder/FlexibleContentBuilder.php +++ b/src/Builder/FlexibleContentBuilder.php @@ -3,6 +3,8 @@ namespace Log1x\AcfComposer\Builder; use Log1x\AcfComposer\Builder; +use Log1x\AcfComposer\Partial; +use ReflectionClass; use StoutLogic\AcfBuilder\FieldsBuilder; use StoutLogic\AcfBuilder\FlexibleContentBuilder as FieldBuilder; @@ -64,6 +66,14 @@ class FlexibleContentBuilder extends FieldBuilder */ public function addLayout($layout, $args = []) { + if ( + is_string($layout) && + is_subclass_of($layout, Partial::class) && + ! (new ReflectionClass($layout))->isAbstract() + ) { + $layout = $layout::make($this->composer())->compose(); + } + $layout = is_a($layout, FieldsBuilder::class) ? clone $layout : Builder::make($layout, $args); From a5eb943bdd11019158b38ea5fc549ce4a03710e7 Mon Sep 17 00:00:00 2001 From: Brandon Date: Mon, 12 Aug 2024 05:16:52 -0500 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=A7=91=E2=80=8D=F0=9F=92=BB=20Add=20r?= =?UTF-8?q?eplacement=20for=20`addLayout`=20to=20the=20`acf:upgrade`=20com?= =?UTF-8?q?mand?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Console/UpgradeCommand.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Console/UpgradeCommand.php b/src/Console/UpgradeCommand.php index c24a74ed..e1038dcd 100644 --- a/src/Console/UpgradeCommand.php +++ b/src/Console/UpgradeCommand.php @@ -47,6 +47,7 @@ public function handle() 'public function enqueue($block = [])' => 'public function assets(array $block): void', 'public function enqueue()' => 'public function assets(array $block): void', '/->addFields\(\$this->get\((.*?)\)\)/' => fn ($match) => "->addPartial({$match[1]})", + '/->addLayout\(\$this->get\((.*?)\)\)/' => fn ($match) => "->addLayout({$match[1]})", ]; $this->components->info('Checking for outdated ACF Composer classes...');