Loading src/Controller/SearchController.php +21 −3 Original line number Diff line number Diff line Loading @@ -56,6 +56,11 @@ class SearchController extends ControllerBase { $search = (string) $request->query->get('search'); $limit = (int) $request->query->get('per_page', 20); $langcode = (string) $request->query->get('langcode'); $type = (string) $request->query->get('type'); if ($type !== 'post') { return new JsonResponse([]); } $query = $this->entityTypeManager->getStorage('node')->getQuery(); $query->condition('title', $search, 'CONTAINS') Loading @@ -71,12 +76,25 @@ class SearchController extends ControllerBase { $node = $node->getTranslation($langcode); } // @todo Any other way to get node's internal path // with language prefix? // Also, probably this won't work with sub-domains $language_prefix = ''; $language = ''; if ($prefixes = \Drupal::config('language.negotiation')->get('url.prefixes')) { $language = $node->language()->getId(); $language_prefix = $prefixes[$language] !== '' ? $prefixes[$language] . '/' : ''; } $result[] = [ 'id' => $node->id(), 'title' => $node->getTitle(), 'type' => $node->getType(), 'url' => '/' . $node->toUrl('canonical', ['absolute' => FALSE]) ->getInternalPath(), 'type' => !empty($language) ? '[' . strtoupper($language) . '] ' . $node->getType() : $node->getType(), 'language_id' => $language, 'url' => '/' . $language_prefix . $node->toUrl('canonical', [ 'absolute' => FALSE, 'language' => $language, ])->getInternalPath(), ]; } Loading Loading
src/Controller/SearchController.php +21 −3 Original line number Diff line number Diff line Loading @@ -56,6 +56,11 @@ class SearchController extends ControllerBase { $search = (string) $request->query->get('search'); $limit = (int) $request->query->get('per_page', 20); $langcode = (string) $request->query->get('langcode'); $type = (string) $request->query->get('type'); if ($type !== 'post') { return new JsonResponse([]); } $query = $this->entityTypeManager->getStorage('node')->getQuery(); $query->condition('title', $search, 'CONTAINS') Loading @@ -71,12 +76,25 @@ class SearchController extends ControllerBase { $node = $node->getTranslation($langcode); } // @todo Any other way to get node's internal path // with language prefix? // Also, probably this won't work with sub-domains $language_prefix = ''; $language = ''; if ($prefixes = \Drupal::config('language.negotiation')->get('url.prefixes')) { $language = $node->language()->getId(); $language_prefix = $prefixes[$language] !== '' ? $prefixes[$language] . '/' : ''; } $result[] = [ 'id' => $node->id(), 'title' => $node->getTitle(), 'type' => $node->getType(), 'url' => '/' . $node->toUrl('canonical', ['absolute' => FALSE]) ->getInternalPath(), 'type' => !empty($language) ? '[' . strtoupper($language) . '] ' . $node->getType() : $node->getType(), 'language_id' => $language, 'url' => '/' . $language_prefix . $node->toUrl('canonical', [ 'absolute' => FALSE, 'language' => $language, ])->getInternalPath(), ]; } Loading