ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
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
 
array 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.

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

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
+ 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 public

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

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

Referenced by __searchObjects().

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="")
+ 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.

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

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();
166  $this->__storeEntries($result_obj);
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 get(string $a_var)
bool $enabled
Whether the system instance is enabled to accept connection requests.
Definition: System.php:123
const ROOT_FOLDER_ID
Definition: constants.php:32
__storeEntries(ilSearchResult $new_res)
__parseQueryString(string $a_string)
parse query string, using query parser instance
static _getUserSearchInstance(ilQueryParser $query_parser)
+ Here is the call graph for this function:

◆ __storeEntries()

ilUserSearchFilter::__storeEntries ( ilSearchResult  $new_res)

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

Referenced by __searchObjects().

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  }
+ Here is the caller graph for this function:

◆ __toArray()

ilUserSearchFilter::__toArray ( array  $entries)

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

Referenced by __searchObjects().

212  : array
213  {
214  $users = [];
215  foreach ($entries as $entry) {
216  $users[] = $entry['obj_id'];
217  }
218  return $users ?: array();
219  }
+ Here is the caller graph for this function:

◆ disableField()

ilUserSearchFilter::disableField ( string  $key)

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

References ILIAS\LTI\ToolProvider\$key.

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

◆ enableField()

ilUserSearchFilter::enableField ( string  $key)

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

References ILIAS\LTI\ToolProvider\$key.

80  : void
81  {
82  $this->search_fields[$key] = true;
83  }
string $key
Consumer key/client ID value.
Definition: System.php:193

◆ 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.

References $limit.

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

◆ getQueryString()

ilUserSearchFilter::getQueryString ( string  $a_field)

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

References ilSession\get().

119  : string
120  {
121  $session_usr_filter = ilSession::get('search_usr_filter') ?? [];
122  return $session_usr_filter[$a_field] ?? '';
123  }
static get(string $a_var)
+ Here is the call graph for this function:

◆ getUserId()

ilUserSearchFilter::getUserId ( )

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

References $usr_id.

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

◆ getUsers()

ilUserSearchFilter::getUsers ( )

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

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

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  }
140  return $this->possible_users;
141  }
static get(string $a_var)
bool $enabled
Whether the system instance is enabled to accept connection requests.
Definition: System.php:123
+ Here is the call graph for this function:

◆ limitReached()

ilUserSearchFilter::limitReached ( )

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

References $limit_reached.

104  : bool
105  {
106  return $this->limit_reached;
107  }

◆ 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.

References ilSession\set().

114  : void
115  {
116  ilSession::set('search_usr_filter', $a_strings);
117  }
static set(string $a_var, $a_val)
Set a value.
+ 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

array 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.

◆ $search_fields

array ilUserSearchFilter::$search_fields
private
Initial value:
=
[
'login' => 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: