- Documentation >
- Search >
- Sort Clause reference >
- Content Type Sort Clauses
Content Type Search Sort Clauses
Content Type Search Sort Clauses are the sorting options for content types.
They're only supported by Content Type Search (ContentTypeService::findContentTypes).
Sort Clauses are found in the Ibexa\Contracts\Core\Repository\Values\ContentType\Query\SortClause namespace:
| Name |
Description |
| Id |
Sort by content type's id |
| Identifier |
Sort by content type's identifier |
| Name |
Sort by content type's name |
The following example shows how to use them to sort the searched content types:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 | <?php declare(strict_types=1);
namespace App\Command;
use Ibexa\Contracts\Core\Repository\ContentTypeService;
use Ibexa\Contracts\Core\Repository\Values\ContentType\Query\ContentTypeQuery;
use Ibexa\Contracts\Core\Repository\Values\ContentType\Query\Criterion;
use Ibexa\Contracts\Core\Repository\Values\ContentType\Query\SortClause;
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
#[AsCommand(
name: 'doc:find_content_types',
description: 'Lists content types that match specific criteria.'
)]
class FindContentTypeCommand extends Command
{
public function __construct(private readonly ContentTypeService $contentTypeService)
{
parent::__construct();
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
// Find content types from the "Content" group that contains a specific field definition (in this case, a "Body" field).
$query = new ContentTypeQuery(
new Criterion\LogicalAnd([
new Criterion\ContentTypeGroupName(['Content']),
new Criterion\ContainsFieldDefinitionId([121]),
]),
[
new SortClause\Id(),
new SortClause\Identifier(),
new SortClause\Name(),
]
);
$searchResult = $this->contentTypeService->findContentTypes($query);
$output->writeln('Found ' . $searchResult->getTotalCount() . ' content type(s):');
foreach ($searchResult->getContentTypes() as $contentType) {
$output->writeln(sprintf(
'- [%d] %s (identifier: %s)',
$contentType->id,
$contentType->getName(),
$contentType->identifier
));
}
return Command::SUCCESS;
}
}
|
You can change the default sorting order by using the SORT_ASC and SORT_DESC constants from AbstractSortClause.