ILIAS  trunk Revision v12.0_alpha-16-g3e876e53c80
AutocompleteQuery.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
21namespace ILIAS\User\Search;
22
29{
30 private string $processed_search_term;
31 private ?string $lastname_search_term = null;
32 private ?string $firstname_search_term = null;
33
34 public function __construct(
35 private readonly int $required_search_term_length,
36 private readonly string $search_term,
37 ) {
38 $this->processed_search_term = str_replace(
39 ['%', '_'],
40 ['\%', '\_'],
41 trim($search_term)
42 );
43
44 $comma_separated = explode(',', $search_term);
45
46 if (count($comma_separated) !== 2) {
47 return;
48 }
49
50 $lastname_search_term = trim($comma_separated[0]);
51 $firstname_search_term = trim($comma_separated[1]);
52
54 return;
55 }
56
57 $this->lastname_search_term = $lastname_search_term === '' ? null : $lastname_search_term;
58 $this->firstname_search_term = $firstname_search_term === '' ? null : $firstname_search_term;
59 }
60
61 public function checkSearchTermLength(?string $search_term): bool
62 {
63 if ($search_term === null) {
64 return false;
65 }
66 return mb_strlen($search_term) >= $this->required_search_term_length;
67 }
68
73 public function getUnprocessedSearchTerm(): string
74 {
75 return $this->search_term;
76 }
77
83 public function getSearchTermQueryString(): ?string
84 {
85 if ($this->lastname_search_term !== null
86 || $this->firstname_search_term !== null) {
87 return null;
88 }
89
90 return $this->search_term;
91 }
92
93 public function getLastnameQueryString(): ?string
94 {
95 if ($this->lastname_search_term !== null) {
97 }
98
99 if ($this->firstname_search_term === null) {
100 return $this->search_term;
101 }
102
103 return null;
104 }
105
106 public function getFirstnameQueryString(): ?string
107 {
108 if ($this->firstname_search_term !== null) {
110 }
111
112 if ($this->lastname_search_term === null) {
113 return $this->search_term;
114 }
115
116 return null;
117 }
118}
This class provides some pre-processing for search terms provided by a user when searching for users.
__construct(private readonly int $required_search_term_length, private readonly string $search_term,)
getUnprocessedSearchTerm()
The returned search term might contain wild cards or any other input.
checkSearchTermLength(?string $search_term)