ILIAS  release_8 Revision v8.24
ilUserSearchFilter Class Reference
+ Collaboration diagram for ilUserSearchFilter:

Public Member Functions

 __construct (int $a_usr_id)
 ilUserSearchFilter constructor. More...
 
 enableField (string $key)
 
 disableField (string $key)
 
 enableMemberFilter (bool $a_status)
 
 setPossibleUsers (array $a_users)
 
 getLimit ()
 
 limitReached ()
 
 getUserId ()
 
 storeQueryStrings (array $a_strings)
 
 getQueryString (string $a_field)
 
 getUsers ()
 
 __searchObjects ()
 
 __parseQueryString (string $a_string)
 parse query string, using query parser instance More...
 
 __storeEntries (ilSearchResult $new_res)
 
 __toArray (array $entries)
 
 memberFilter (int $a_usr_id, array $entry_data)
 

Protected Attributes

ilDBInterface $db
 
ilSearchResult $result_obj
 
ilSetting $settings
 

Private Attributes

int $limit = 0
 
bool $limit_reached = false
 
bool $stored = false
 
array $search_fields
 
bool $enabled_member_filter = false
 
array $possible_users = array()
 
int $usr_id
 
ilGlobalTemplateInterface $main_tpl
 

Detailed Description

Definition at line 38 of file class.ilUserSearchFilter.php.

Constructor & Destructor Documentation

◆ __construct()

ilUserSearchFilter::__construct ( int  $a_usr_id)

ilUserSearchFilter constructor.

Definition at line 65 of file class.ilUserSearchFilter.php.

66 {
67 global $DIC;
68 $this->main_tpl = $DIC->ui()->mainTemplate();
69
70 $this->usr_id = $a_usr_id;
71 $this->db = $DIC->database();
72 $this->settings = $DIC->settings();
73
74 // Limit of filtered objects is search max hits
75
76 $this->limit = (int) $this->settings->get('search_mx_hits', '50');
77 $this->result_obj = new ilSearchResult();
78 }
global $DIC
Definition: feed.php:28

References $DIC, ILIAS\Repository\int(), and ILIAS\Repository\settings().

+ Here is the call graph for this function:

Member Function Documentation

◆ __parseQueryString()

ilUserSearchFilter::__parseQueryString ( string  $a_string)

parse query string, using query parser instance

Returns
ilQueryParser | string of query parser or error message if an error occured @access public

Definition at line 186 of file class.ilUserSearchFilter.php.

187 {
188 $query_parser = new ilQueryParser(ilUtil::stripSlashes($a_string));
189 $query_parser->setCombination(ilQueryParser::QP_COMBINATION_OR);
190 $query_parser->setMinWordLength(1);
191 $query_parser->parse();
192
193 if (!$query_parser->validate()) {
194 return $query_parser->getMessage();
195 }
196 return $query_parser;
197 }
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")

References ilQueryParser\QP_COMBINATION_OR, and ilUtil\stripSlashes().

Referenced by __searchObjects().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ __searchObjects()

ilUserSearchFilter::__searchObjects ( )

Definition at line 144 of file class.ilUserSearchFilter.php.

144 : array
145 {
146 foreach ($this->search_fields as $field => $enabled) {
147 // Disabled ?
148 if (!$enabled) {
149 continue;
150 }
151
152 $session_usr_filter = ilSession::get('search_usr_filter');
153 $query_string = (string) ($session_usr_filter[$field] ?? '');
154 if (!$query_string) {
155 continue;
156 }
157 if (!is_object($query_parser = $this->__parseQueryString($query_string))) {
158 $this->main_tpl->setOnScreenMessage('info', $query_parser);
159 return [];
160 }
161 $user_search = ilObjectSearchFactory::_getUserSearchInstance($query_parser);
162 $user_search->setFields(array($field));
163
164 // store entries
165 $result_obj = $user_search->performSearch();
167 }
168
169 // no filter entries
170 if (is_object($this->result_obj)) {
171 if ($this->enabled_member_filter) {
172 $this->result_obj->addObserver($this, 'memberFilter');
173 }
174 $this->result_obj->filter(ROOT_FOLDER_ID, true);
175
176 return $this->__toArray($this->result_obj->getResults());
177 }
178 return [];
179 }
static _getUserSearchInstance(ilQueryParser $query_parser)
static get(string $a_var)
__parseQueryString(string $a_string)
parse query string, using query parser instance
__storeEntries(ilSearchResult $new_res)
const ROOT_FOLDER_ID
Definition: constants.php:32
bool $enabled
Whether the system instance is enabled to accept connection requests.
Definition: System.php:123

References ILIAS\LTI\ToolProvider\$enabled, $result_obj, __parseQueryString(), __storeEntries(), __toArray(), ilObjectSearchFactory\_getUserSearchInstance(), ilSession\get(), and ROOT_FOLDER_ID.

+ Here is the call graph for this function:

◆ __storeEntries()

ilUserSearchFilter::__storeEntries ( ilSearchResult  $new_res)

Definition at line 200 of file class.ilUserSearchFilter.php.

200 : bool
201 {
202 if ($this->stored == false) {
203 $this->result_obj->mergeEntries($new_res);
204 $this->stored = true;
205 return true;
206 } else {
207 $this->result_obj->intersectEntries($new_res);
208 return true;
209 }
210 }

Referenced by __searchObjects().

+ Here is the caller graph for this function:

◆ __toArray()

ilUserSearchFilter::__toArray ( array  $entries)

Definition at line 212 of file class.ilUserSearchFilter.php.

212 : array
213 {
214 $users = [];
215 foreach ($entries as $entry) {
216 $users[] = $entry['obj_id'];
217 }
218 return $users ?: array();
219 }

Referenced by __searchObjects().

+ Here is the caller graph for this function:

◆ disableField()

ilUserSearchFilter::disableField ( string  $key)

Definition at line 84 of file class.ilUserSearchFilter.php.

84 : void
85 {
86 $this->search_fields[$key] = true;
87 }
string $key
Consumer key/client ID value.
Definition: System.php:193

References ILIAS\LTI\ToolProvider\$key.

◆ enableField()

ilUserSearchFilter::enableField ( string  $key)

Definition at line 80 of file class.ilUserSearchFilter.php.

80 : void
81 {
82 $this->search_fields[$key] = true;
83 }

References ILIAS\LTI\ToolProvider\$key.

◆ enableMemberFilter()

ilUserSearchFilter::enableMemberFilter ( bool  $a_status)

Definition at line 88 of file class.ilUserSearchFilter.php.

88 : void
89 {
90 $this->enabled_member_filter = $a_status;
91 }

◆ getLimit()

ilUserSearchFilter::getLimit ( )

Definition at line 99 of file class.ilUserSearchFilter.php.

99 : int
100 {
101 return $this->limit;
102 }

References $limit.

◆ getQueryString()

ilUserSearchFilter::getQueryString ( string  $a_field)

Definition at line 119 of file class.ilUserSearchFilter.php.

119 : string
120 {
121 $session_usr_filter = ilSession::get('search_usr_filter') ?? [];
122 return $session_usr_filter[$a_field] ?? '';
123 }

References ilSession\get().

+ Here is the call graph for this function:

◆ getUserId()

ilUserSearchFilter::getUserId ( )

Definition at line 109 of file class.ilUserSearchFilter.php.

109 : int
110 {
111 return $this->usr_id;
112 }

References $usr_id.

◆ getUsers()

ilUserSearchFilter::getUsers ( )

Definition at line 126 of file class.ilUserSearchFilter.php.

126 : array
127 {
128 // Check if a query string is given
129 foreach ($this->search_fields as $field => $enabled) {
130 if (!$enabled) {
131 continue;
132 }
133 $session_search_usr_filter = (array) (ilSession::get('search_usr_filter') ?? []);
134 $filter_field = (string) ($session_search_usr_filter[$field] ?? '');
135 if (strlen($filter_field)) {
136 $search = true;
137 break;
138 }
139 }
141 }

References ILIAS\LTI\ToolProvider\$enabled, $possible_users, and ilSession\get().

+ Here is the call graph for this function:

◆ limitReached()

ilUserSearchFilter::limitReached ( )

Definition at line 104 of file class.ilUserSearchFilter.php.

104 : bool
105 {
107 }

References $limit_reached.

◆ memberFilter()

ilUserSearchFilter::memberFilter ( int  $a_usr_id,
array  $entry_data 
)

Definition at line 222 of file class.ilUserSearchFilter.php.

222 : bool
223 {
224 return in_array($a_usr_id, $this->possible_users);
225 }

◆ setPossibleUsers()

ilUserSearchFilter::setPossibleUsers ( array  $a_users)

Definition at line 93 of file class.ilUserSearchFilter.php.

93 : void
94 {
95 $this->possible_users = $a_users ?: array();
96 }

◆ storeQueryStrings()

ilUserSearchFilter::storeQueryStrings ( array  $a_strings)

Definition at line 114 of file class.ilUserSearchFilter.php.

114 : void
115 {
116 ilSession::set('search_usr_filter', $a_strings);
117 }
static set(string $a_var, $a_val)
Set a value.

References ilSession\set().

+ Here is the call graph for this function:

Field Documentation

◆ $db

ilDBInterface ilUserSearchFilter::$db
protected

Definition at line 57 of file class.ilUserSearchFilter.php.

◆ $enabled_member_filter

bool ilUserSearchFilter::$enabled_member_filter = false
private

Definition at line 52 of file class.ilUserSearchFilter.php.

◆ $limit

int ilUserSearchFilter::$limit = 0
private

Definition at line 40 of file class.ilUserSearchFilter.php.

Referenced by getLimit().

◆ $limit_reached

bool ilUserSearchFilter::$limit_reached = false
private

Definition at line 41 of file class.ilUserSearchFilter.php.

Referenced by limitReached().

◆ $main_tpl

ilGlobalTemplateInterface ilUserSearchFilter::$main_tpl
private

Definition at line 60 of file class.ilUserSearchFilter.php.

◆ $possible_users

array ilUserSearchFilter::$possible_users = array()
private

Definition at line 53 of file class.ilUserSearchFilter.php.

Referenced by getUsers().

◆ $result_obj

ilSearchResult ilUserSearchFilter::$result_obj
protected

Definition at line 58 of file class.ilUserSearchFilter.php.

Referenced by __searchObjects().

◆ $search_fields

array ilUserSearchFilter::$search_fields
private
Initial value:
=
[
'login' => true,
'firstname' => true,
'lastname' => true
]
return true

Definition at line 45 of file class.ilUserSearchFilter.php.

◆ $settings

ilSetting ilUserSearchFilter::$settings
protected

Definition at line 59 of file class.ilUserSearchFilter.php.

◆ $stored

bool ilUserSearchFilter::$stored = false
private

Definition at line 42 of file class.ilUserSearchFilter.php.

◆ $usr_id

int ilUserSearchFilter::$usr_id
private

Definition at line 55 of file class.ilUserSearchFilter.php.

Referenced by getUserId().


The documentation for this class was generated from the following file: