From c43fbc9b2cf2fd2c5c572a153fee7fb51d72fd0c Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Sun, 21 Nov 2021 12:33:06 -0500 Subject: [PATCH] SearchKit - fix rendering default display embedded in an afform --- .../Search/AfformSearchMetadataInjector.php | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/ext/search_kit/Civi/Search/AfformSearchMetadataInjector.php b/ext/search_kit/Civi/Search/AfformSearchMetadataInjector.php index f99bfdc29a..98244fe9d7 100644 --- a/ext/search_kit/Civi/Search/AfformSearchMetadataInjector.php +++ b/ext/search_kit/Civi/Search/AfformSearchMetadataInjector.php @@ -32,10 +32,20 @@ class AfformSearchMetadataInjector { foreach (pq(implode(',', $displayTags), $doc) as $component) { $searchName = pq($component)->attr('search-name'); $displayName = pq($component)->attr('display-name'); - if ($searchName && $displayName) { - $display = \Civi\Api4\SearchDisplay::get(FALSE) - ->addWhere('name', '=', $displayName) - ->addWhere('saved_search_id.name', '=', $searchName) + if ($searchName) { + // Fetch search display if name is provided + if (is_string($displayName) && strlen($displayName)) { + $searchDisplayGet = \Civi\Api4\SearchDisplay::get(FALSE) + ->addWhere('name', '=', $displayName) + ->addWhere('saved_search_id.name', '=', $searchName); + } + // Fall-back to the default display + else { + $displayName = NULL; + $searchDisplayGet = \Civi\Api4\SearchDisplay::getDefault(FALSE) + ->setSavedSearch($searchName); + } + $display = $searchDisplayGet ->addSelect('settings', 'saved_search_id.api_entity', 'saved_search_id.api_params') ->execute()->first(); if ($display) { -- 2.25.1