From 0c9afc89de068026c4151821d3c5fab1449b87f2 Mon Sep 17 00:00:00 2001
From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com>
Date: Mon, 25 Nov 2024 16:48:10 +0100
Subject: [PATCH 01/10] languagecode_criterion.md: Use regular Query w/
findContent
---
docs/search/criteria_reference/languagecode_criterion.md | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/docs/search/criteria_reference/languagecode_criterion.md b/docs/search/criteria_reference/languagecode_criterion.md
index 775502a21a..c3fce06c77 100644
--- a/docs/search/criteria_reference/languagecode_criterion.md
+++ b/docs/search/criteria_reference/languagecode_criterion.md
@@ -45,14 +45,13 @@ You can use the `LanguageCode` Criterion to search for articles that are lacking
into a specific language:
``` php hl_lines="5"
-$query = new LocationQuery;
+$query = new Query();
$query->query = new Criterion\LogicalAnd([
new Criterion\ContentTypeIdentifier('article'),
new Criterion\LogicalNot(
new Criterion\LanguageCode('ger-DE', false)
)
- ]
-);
+]);
$results = $this->searchService->findContent($query);
$articles = [];
From b880a2388a98ec6950936c0afd25d2169f62fb5c Mon Sep 17 00:00:00 2001
From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com>
Date: Mon, 25 Nov 2024 16:49:26 +0100
Subject: [PATCH 02/10] languagecode_criterion.md: Another use case
---
.../languagecode_criterion.md | 20 +++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/docs/search/criteria_reference/languagecode_criterion.md b/docs/search/criteria_reference/languagecode_criterion.md
index c3fce06c77..1ff3d90223 100644
--- a/docs/search/criteria_reference/languagecode_criterion.md
+++ b/docs/search/criteria_reference/languagecode_criterion.md
@@ -63,3 +63,23 @@ return $this->render('list/articles_to_translate.html.twig', [
'articles' => $articles,
]);
```
+
+You can use the `LanguageCode` Criterion to search in
+several languages while ensuring result have a translation in one language:
+
+```php
+$query = new Query(['query' =>
+ new Criterion\LogicalAnd([
+ new Criterion\FullText($text),
+ new Criterion\LanguageCode(['eng-GB'], false)
+ ])
+]);
+
+$results = $this->searchService->findContent($query, ['eng-GB', 'fre-FR', 'ger-DE']);
+
+foreach ($results->searchHits as $searchHit) {
+ /** @var $content \Ibexa\Core\Repository\Values\Content\Content */
+ $content = $searchHit->valueObject;
+ dump($content->getName('eng-GB'));
+}
+```
From 6a698b1104fc5cdbcc1a7e868e413670816f3497 Mon Sep 17 00:00:00 2001
From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com>
Date: Mon, 25 Nov 2024 17:49:22 +0100
Subject: [PATCH 03/10] languagecode_criterion.md: Move code to PHP files
---
.../language/config/append_to_routes.yaml | 4 ++
.../src/Command/SearchTestCommand.php | 52 +++++++++++++++++++
.../ArticlesToTranslateController.php | 41 +++++++++++++++
.../list/articles_to_translate.html.twig | 9 ++++
.../languagecode_criterion.md | 35 ++-----------
5 files changed, 109 insertions(+), 32 deletions(-)
create mode 100644 code_samples/search/language/config/append_to_routes.yaml
create mode 100644 code_samples/search/language/src/Command/SearchTestCommand.php
create mode 100644 code_samples/search/language/src/Controller/ArticlesToTranslateController.php
create mode 100644 code_samples/search/language/templates/themes/standard/list/articles_to_translate.html.twig
diff --git a/code_samples/search/language/config/append_to_routes.yaml b/code_samples/search/language/config/append_to_routes.yaml
new file mode 100644
index 0000000000..a8980d0364
--- /dev/null
+++ b/code_samples/search/language/config/append_to_routes.yaml
@@ -0,0 +1,4 @@
+list_articles_to_translate:
+ path: /list/articles_to_translate/{language}
+ defaults:
+ _controller: 'App\Controller\ArticlesToTranslateController::listView'
diff --git a/code_samples/search/language/src/Command/SearchTestCommand.php b/code_samples/search/language/src/Command/SearchTestCommand.php
new file mode 100644
index 0000000000..c5cc96a0e0
--- /dev/null
+++ b/code_samples/search/language/src/Command/SearchTestCommand.php
@@ -0,0 +1,52 @@
+searchService = $searchService;
+ }
+
+ protected function configure(): void
+ {
+ $this->setDescription('Search test.')
+ ->addArgument('text', InputArgument::REQUIRED | InputArgument::IS_ARRAY, 'Searched text.');
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $text = implode(' ', $input->getArgument('text'));
+
+ $query = new Query(['query' =>
+ new Criterion\LogicalAnd([
+ new Criterion\FullText($text),
+ new Criterion\LanguageCode(['eng-GB'], false)
+ ])
+ ]);
+
+ $results = $this->searchService->findContent($query, ['eng-GB', 'fre-FR', 'ger-DE']);
+ foreach ($results->searchHits as $searchHit) {
+ /** @var $content \Ibexa\Core\Repository\Values\Content\Content */
+ $content = $searchHit->valueObject;
+ dump($content->getName('eng-GB'));
+ }
+
+ return Command::SUCCESS;
+ }
+}
diff --git a/code_samples/search/language/src/Controller/ArticlesToTranslateController.php b/code_samples/search/language/src/Controller/ArticlesToTranslateController.php
new file mode 100644
index 0000000000..15200a096e
--- /dev/null
+++ b/code_samples/search/language/src/Controller/ArticlesToTranslateController.php
@@ -0,0 +1,41 @@
+searchService = $searchService;
+ }
+
+ public function listView(Request $request): Response {
+ $languageCode = $request->get('language');
+
+ $query = new Query();
+ $query->query = new Criterion\LogicalAnd([
+ new Criterion\ContentTypeIdentifier('article'),
+ new Criterion\LogicalNot(
+ new Criterion\LanguageCode($languageCode, false)
+ )
+ ]);
+
+ $results = $this->searchService->findContent($query);
+ $articles = [];
+ foreach ($results->searchHits as $searchHit) {
+ $articles[] = $searchHit->valueObject;
+ }
+
+ return $this->render('@ibexadesign/list/articles_to_translate.html.twig', [
+ 'articles' => $articles,
+ ]);
+ }
+}
diff --git a/code_samples/search/language/templates/themes/standard/list/articles_to_translate.html.twig b/code_samples/search/language/templates/themes/standard/list/articles_to_translate.html.twig
new file mode 100644
index 0000000000..6fa995e9e6
--- /dev/null
+++ b/code_samples/search/language/templates/themes/standard/list/articles_to_translate.html.twig
@@ -0,0 +1,9 @@
+{% extends '@ibexadesign/pagelayout.html.twig' %}
+
+{% block content %}
+
+{% endblock %}
diff --git a/docs/search/criteria_reference/languagecode_criterion.md b/docs/search/criteria_reference/languagecode_criterion.md
index 1ff3d90223..f80e477ec0 100644
--- a/docs/search/criteria_reference/languagecode_criterion.md
+++ b/docs/search/criteria_reference/languagecode_criterion.md
@@ -45,41 +45,12 @@ You can use the `LanguageCode` Criterion to search for articles that are lacking
into a specific language:
``` php hl_lines="5"
-$query = new Query();
-$query->query = new Criterion\LogicalAnd([
- new Criterion\ContentTypeIdentifier('article'),
- new Criterion\LogicalNot(
- new Criterion\LanguageCode('ger-DE', false)
- )
-]);
-
-$results = $this->searchService->findContent($query);
-$articles = [];
-foreach ($results->searchHits as $searchHit) {
- $articles[] = $searchHit;
-}
-
-return $this->render('list/articles_to_translate.html.twig', [
- 'articles' => $articles,
-]);
+[[= include_file('code_samples/search/language/src/Controller/ArticlesToTranslateController.php', 22, 39) =]]
```
You can use the `LanguageCode` Criterion to search in
several languages while ensuring result have a translation in one language:
-```php
-$query = new Query(['query' =>
- new Criterion\LogicalAnd([
- new Criterion\FullText($text),
- new Criterion\LanguageCode(['eng-GB'], false)
- ])
-]);
-
-$results = $this->searchService->findContent($query, ['eng-GB', 'fre-FR', 'ger-DE']);
-
-foreach ($results->searchHits as $searchHit) {
- /** @var $content \Ibexa\Core\Repository\Values\Content\Content */
- $content = $searchHit->valueObject;
- dump($content->getName('eng-GB'));
-}
+``` php
+[[= include_file('code_samples/search/language/src/Command/SearchTestCommand.php', 35, 48) =]]
```
From fccf2e2e392b3956851d7f6db26818955d5cf7a7 Mon Sep 17 00:00:00 2001
From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com>
Date: Mon, 25 Nov 2024 17:56:10 +0100
Subject: [PATCH 04/10] languagecode_criterion.md: Fix @var
---
code_samples/search/language/src/Command/SearchTestCommand.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code_samples/search/language/src/Command/SearchTestCommand.php b/code_samples/search/language/src/Command/SearchTestCommand.php
index c5cc96a0e0..e626aaa80a 100644
--- a/code_samples/search/language/src/Command/SearchTestCommand.php
+++ b/code_samples/search/language/src/Command/SearchTestCommand.php
@@ -42,7 +42,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
$results = $this->searchService->findContent($query, ['eng-GB', 'fre-FR', 'ger-DE']);
foreach ($results->searchHits as $searchHit) {
- /** @var $content \Ibexa\Core\Repository\Values\Content\Content */
+ /** @var \Ibexa\Core\Repository\Values\Content\Content $content */
$content = $searchHit->valueObject;
dump($content->getName('eng-GB'));
}
From fc060b2ce03340e59fcb664ef21b2f7edfb98444 Mon Sep 17 00:00:00 2001
From: adriendupuis
Date: Mon, 25 Nov 2024 17:05:22 +0000
Subject: [PATCH 05/10] PHP CS Fixes
---
.../language/src/Command/SearchTestCommand.php | 13 ++++++-------
.../Controller/ArticlesToTranslateController.php | 10 ++++++----
2 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/code_samples/search/language/src/Command/SearchTestCommand.php b/code_samples/search/language/src/Command/SearchTestCommand.php
index e626aaa80a..5ffcf917b1 100644
--- a/code_samples/search/language/src/Command/SearchTestCommand.php
+++ b/code_samples/search/language/src/Command/SearchTestCommand.php
@@ -1,4 +1,4 @@
-searchService = $searchService;
}
@@ -33,11 +33,10 @@ protected function execute(InputInterface $input, OutputInterface $output)
{
$text = implode(' ', $input->getArgument('text'));
- $query = new Query(['query' =>
- new Criterion\LogicalAnd([
+ $query = new Query(['query' => new Criterion\LogicalAnd([
new Criterion\FullText($text),
- new Criterion\LanguageCode(['eng-GB'], false)
- ])
+ new Criterion\LanguageCode(['eng-GB'], false),
+ ]),
]);
$results = $this->searchService->findContent($query, ['eng-GB', 'fre-FR', 'ger-DE']);
diff --git a/code_samples/search/language/src/Controller/ArticlesToTranslateController.php b/code_samples/search/language/src/Controller/ArticlesToTranslateController.php
index 15200a096e..47b117518a 100644
--- a/code_samples/search/language/src/Controller/ArticlesToTranslateController.php
+++ b/code_samples/search/language/src/Controller/ArticlesToTranslateController.php
@@ -1,4 +1,4 @@
-searchService = $searchService;
}
- public function listView(Request $request): Response {
+ public function listView(Request $request): Response
+ {
$languageCode = $request->get('language');
$query = new Query();
@@ -25,7 +27,7 @@ public function listView(Request $request): Response {
new Criterion\ContentTypeIdentifier('article'),
new Criterion\LogicalNot(
new Criterion\LanguageCode($languageCode, false)
- )
+ ),
]);
$results = $this->searchService->findContent($query);
From e2726b539e80fae0a0793690557e7618f85d4d6a Mon Sep 17 00:00:00 2001
From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com>
Date: Mon, 25 Nov 2024 18:32:48 +0100
Subject: [PATCH 06/10] languagecode_criterion.md: Fix include_file offset
after PHP CS Fixes
---
docs/search/criteria_reference/languagecode_criterion.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/search/criteria_reference/languagecode_criterion.md b/docs/search/criteria_reference/languagecode_criterion.md
index f80e477ec0..8db547b2c5 100644
--- a/docs/search/criteria_reference/languagecode_criterion.md
+++ b/docs/search/criteria_reference/languagecode_criterion.md
@@ -45,7 +45,7 @@ You can use the `LanguageCode` Criterion to search for articles that are lacking
into a specific language:
``` php hl_lines="5"
-[[= include_file('code_samples/search/language/src/Controller/ArticlesToTranslateController.php', 22, 39) =]]
+[[= include_file('code_samples/search/language/src/Controller/ArticlesToTranslateController.php', 24, 41) =]]
```
You can use the `LanguageCode` Criterion to search in
From 3764e59c5ff8873d3bd51c4d122600adbd9eab18 Mon Sep 17 00:00:00 2001
From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com>
Date: Tue, 26 Nov 2024 11:08:23 +0100
Subject: [PATCH 07/10] languagecode_criterion.md: Plural for 2 use cases
---
docs/search/criteria_reference/languagecode_criterion.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/search/criteria_reference/languagecode_criterion.md b/docs/search/criteria_reference/languagecode_criterion.md
index 8db547b2c5..6d39700354 100644
--- a/docs/search/criteria_reference/languagecode_criterion.md
+++ b/docs/search/criteria_reference/languagecode_criterion.md
@@ -39,7 +39,7 @@ $query->query = new Criterion\LanguageCode('ger-DE', false);
}
```
-## Use case
+## Use cases
You can use the `LanguageCode` Criterion to search for articles that are lacking a translation
into a specific language:
From 689751ce66202feca1cf151af3b2e54ac3b08ea2 Mon Sep 17 00:00:00 2001
From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com>
Date: Wed, 27 Nov 2024 11:10:46 +0100
Subject: [PATCH 08/10] languagecode_criterion.md: highlighted lines, grammar
---
docs/search/criteria_reference/languagecode_criterion.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/search/criteria_reference/languagecode_criterion.md b/docs/search/criteria_reference/languagecode_criterion.md
index 6d39700354..54dd67bcf0 100644
--- a/docs/search/criteria_reference/languagecode_criterion.md
+++ b/docs/search/criteria_reference/languagecode_criterion.md
@@ -49,8 +49,8 @@ into a specific language:
```
You can use the `LanguageCode` Criterion to search in
-several languages while ensuring result have a translation in one language:
+several languages while ensuring results have a translation in one specific language:
-``` php
+``` php hl_lines="3 7"
[[= include_file('code_samples/search/language/src/Command/SearchTestCommand.php', 35, 48) =]]
```
From f3d88f3c97f78cad89566d085ebacb1f0bbeb3ae Mon Sep 17 00:00:00 2001
From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com>
Date: Wed, 27 Nov 2024 11:15:31 +0100
Subject: [PATCH 09/10] languagecode_criterion.md: Format code
---
.../search/language/src/Command/SearchTestCommand.php | 7 +++----
docs/search/criteria_reference/languagecode_criterion.md | 4 ++--
2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/code_samples/search/language/src/Command/SearchTestCommand.php b/code_samples/search/language/src/Command/SearchTestCommand.php
index 5ffcf917b1..07ba6fa8ef 100644
--- a/code_samples/search/language/src/Command/SearchTestCommand.php
+++ b/code_samples/search/language/src/Command/SearchTestCommand.php
@@ -34,10 +34,9 @@ protected function execute(InputInterface $input, OutputInterface $output)
$text = implode(' ', $input->getArgument('text'));
$query = new Query(['query' => new Criterion\LogicalAnd([
- new Criterion\FullText($text),
- new Criterion\LanguageCode(['eng-GB'], false),
- ]),
- ]);
+ new Criterion\FullText($text),
+ new Criterion\LanguageCode(['eng-GB'], false),
+ ])]);
$results = $this->searchService->findContent($query, ['eng-GB', 'fre-FR', 'ger-DE']);
foreach ($results->searchHits as $searchHit) {
diff --git a/docs/search/criteria_reference/languagecode_criterion.md b/docs/search/criteria_reference/languagecode_criterion.md
index 54dd67bcf0..c45bc1eef1 100644
--- a/docs/search/criteria_reference/languagecode_criterion.md
+++ b/docs/search/criteria_reference/languagecode_criterion.md
@@ -51,6 +51,6 @@ into a specific language:
You can use the `LanguageCode` Criterion to search in
several languages while ensuring results have a translation in one specific language:
-``` php hl_lines="3 7"
-[[= include_file('code_samples/search/language/src/Command/SearchTestCommand.php', 35, 48) =]]
+``` php hl_lines="3 6"
+[[= include_file('code_samples/search/language/src/Command/SearchTestCommand.php', 35, 47) =]]
```
From 1ef5fa46fef06a891235e7c0db3792828ea8168f Mon Sep 17 00:00:00 2001
From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com>
Date: Wed, 27 Nov 2024 11:48:35 +0100
Subject: [PATCH 10/10] languagecode_criterion.md: Fix $languageFilter usage
---
code_samples/search/language/src/Command/SearchTestCommand.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code_samples/search/language/src/Command/SearchTestCommand.php b/code_samples/search/language/src/Command/SearchTestCommand.php
index 07ba6fa8ef..716ef32ff1 100644
--- a/code_samples/search/language/src/Command/SearchTestCommand.php
+++ b/code_samples/search/language/src/Command/SearchTestCommand.php
@@ -38,7 +38,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
new Criterion\LanguageCode(['eng-GB'], false),
])]);
- $results = $this->searchService->findContent($query, ['eng-GB', 'fre-FR', 'ger-DE']);
+ $results = $this->searchService->findContent($query, ['languages' => ['eng-GB', 'fre-FR', 'ger-DE']]);
foreach ($results->searchHits as $searchHit) {
/** @var \Ibexa\Core\Repository\Values\Content\Content $content */
$content = $searchHit->valueObject;