ILIAS  trunk Revision v11.0_alpha-1744-gb0451eebef4
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator 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 31 of file class.ilUserSearchFilter.php.

Constructor & Destructor Documentation

◆ __construct()

ilUserSearchFilter::__construct ( int  $a_usr_id)

ilUserSearchFilter constructor.

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

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

59  {
60  global $DIC;
61  $this->main_tpl = $DIC->ui()->mainTemplate();
62 
63  $this->usr_id = $a_usr_id;
64  $this->db = $DIC->database();
65  $this->settings = $DIC->settings();
66 
67  // Limit of filtered objects is search max hits
68 
69  $this->limit = (int) $this->settings->get('search_mx_hits', '50');
70  $this->result_obj = new ilSearchResult();
71  }
global $DIC
Definition: shib_login.php:22
+ 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 179 of file class.ilUserSearchFilter.php.

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

Referenced by __searchObjects().

180  {
181  $query_parser = new ilQueryParser(ilUtil::stripSlashes($a_string));
182  $query_parser->setCombination(ilQueryParser::QP_COMBINATION_OR);
183  $query_parser->setMinWordLength(1);
184  $query_parser->parse();
185 
186  if (!$query_parser->validate()) {
187  return $query_parser->getMessage();
188  }
189  return $query_parser;
190  }
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 137 of file class.ilUserSearchFilter.php.

References __parseQueryString(), __storeEntries(), __toArray(), ilObjectSearchFactory\_getUserSearchInstance(), ilSession\get(), and ROOT_FOLDER_ID.

137  : array
138  {
139  foreach ($this->search_fields as $field => $enabled) {
140  // Disabled ?
141  if (!$enabled) {
142  continue;
143  }
144 
145  $session_usr_filter = ilSession::get('search_usr_filter');
146  $query_string = (string) ($session_usr_filter[$field] ?? '');
147  if (!$query_string) {
148  continue;
149  }
150  if (!is_object($query_parser = $this->__parseQueryString($query_string))) {
151  $this->main_tpl->setOnScreenMessage('info', $query_parser);
152  return [];
153  }
154  $user_search = ilObjectSearchFactory::_getUserSearchInstance($query_parser);
155  $user_search->setFields(array($field));
156 
157  // store entries
158  $result_obj = $user_search->performSearch();
159  $this->__storeEntries($result_obj);
160  }
161 
162  // no filter entries
163  if (is_object($this->result_obj)) {
164  if ($this->enabled_member_filter) {
165  $this->result_obj->addObserver($this, 'memberFilter');
166  }
167  $this->result_obj->filter(ROOT_FOLDER_ID, true);
168 
169  return $this->__toArray($this->result_obj->getResults());
170  }
171  return [];
172  }
static get(string $a_var)
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 193 of file class.ilUserSearchFilter.php.

Referenced by __searchObjects().

193  : bool
194  {
195  if ($this->stored == false) {
196  $this->result_obj->mergeEntries($new_res);
197  $this->stored = true;
198  return true;
199  } else {
200  $this->result_obj->intersectEntries($new_res);
201  return true;
202  }
203  }
+ Here is the caller graph for this function:

◆ __toArray()

ilUserSearchFilter::__toArray ( array  $entries)

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

Referenced by __searchObjects().

205  : array
206  {
207  $users = [];
208  foreach ($entries as $entry) {
209  $users[] = $entry['obj_id'];
210  }
211  return $users ?: array();
212  }
+ Here is the caller graph for this function:

◆ disableField()

ilUserSearchFilter::disableField ( string  $key)

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

77  : void
78  {
79  $this->search_fields[$key] = true;
80  }

◆ enableField()

ilUserSearchFilter::enableField ( string  $key)

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

73  : void
74  {
75  $this->search_fields[$key] = true;
76  }

◆ enableMemberFilter()

ilUserSearchFilter::enableMemberFilter ( bool  $a_status)

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

81  : void
82  {
83  $this->enabled_member_filter = $a_status;
84  }

◆ getLimit()

ilUserSearchFilter::getLimit ( )

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

References $limit.

92  : int
93  {
94  return $this->limit;
95  }

◆ getQueryString()

ilUserSearchFilter::getQueryString ( string  $a_field)

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

References ilSession\get().

112  : string
113  {
114  $session_usr_filter = ilSession::get('search_usr_filter') ?? [];
115  return $session_usr_filter[$a_field] ?? '';
116  }
static get(string $a_var)
+ Here is the call graph for this function:

◆ getUserId()

ilUserSearchFilter::getUserId ( )

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

References $usr_id.

102  : int
103  {
104  return $this->usr_id;
105  }

◆ getUsers()

ilUserSearchFilter::getUsers ( )

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

References $possible_users, and ilSession\get().

119  : array
120  {
121  // Check if a query string is given
122  foreach ($this->search_fields as $field => $enabled) {
123  if (!$enabled) {
124  continue;
125  }
126  $session_search_usr_filter = (array) (ilSession::get('search_usr_filter') ?? []);
127  $filter_field = (string) ($session_search_usr_filter[$field] ?? '');
128  if (strlen($filter_field)) {
129  $search = true;
130  break;
131  }
132  }
133  return $this->possible_users;
134  }
static get(string $a_var)
+ Here is the call graph for this function:

◆ limitReached()

ilUserSearchFilter::limitReached ( )

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

References $limit_reached.

97  : bool
98  {
99  return $this->limit_reached;
100  }

◆ memberFilter()

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

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

215  : bool
216  {
217  return in_array($a_usr_id, $this->possible_users);
218  }

◆ setPossibleUsers()

ilUserSearchFilter::setPossibleUsers ( array  $a_users)

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

86  : void
87  {
88  $this->possible_users = $a_users ?: array();
89  }

◆ storeQueryStrings()

ilUserSearchFilter::storeQueryStrings ( array  $a_strings)

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

References ilSession\set().

107  : void
108  {
109  ilSession::set('search_usr_filter', $a_strings);
110  }
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 50 of file class.ilUserSearchFilter.php.

◆ $enabled_member_filter

array bool ilUserSearchFilter::$enabled_member_filter = false
private

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

◆ $limit

int ilUserSearchFilter::$limit = 0
private

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

Referenced by getLimit().

◆ $limit_reached

bool ilUserSearchFilter::$limit_reached = false
private

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

Referenced by limitReached().

◆ $main_tpl

ilGlobalTemplateInterface ilUserSearchFilter::$main_tpl
private

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

◆ $possible_users

array ilUserSearchFilter::$possible_users = array()
private

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

Referenced by getUsers().

◆ $result_obj

ilSearchResult ilUserSearchFilter::$result_obj
protected

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

◆ $search_fields

array ilUserSearchFilter::$search_fields
private
Initial value:
=
[
'login' => true

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

◆ $settings

ilSetting ilUserSearchFilter::$settings
protected

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

◆ $stored

bool ilUserSearchFilter::$stored = false
private

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

◆ $usr_id

int ilUserSearchFilter::$usr_id
private

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

Referenced by getUserId().


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