ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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 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.

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 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
global $DIC
Definition: shib_login.php:26

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 179 of file class.ilUserSearchFilter.php.

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

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 137 of file class.ilUserSearchFilter.php.

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();
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 _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

References $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 193 of file class.ilUserSearchFilter.php.

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 }

Referenced by __searchObjects().

+ Here is the caller graph for this function:

◆ __toArray()

ilUserSearchFilter::__toArray ( array  $entries)

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

205 : array
206 {
207 $users = [];
208 foreach ($entries as $entry) {
209 $users[] = $entry['obj_id'];
210 }
211 return $users ?: array();
212 }

Referenced by __searchObjects().

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

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

References $limit.

◆ getQueryString()

ilUserSearchFilter::getQueryString ( string  $a_field)

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

112 : string
113 {
114 $session_usr_filter = ilSession::get('search_usr_filter') ?? [];
115 return $session_usr_filter[$a_field] ?? '';
116 }

References ilSession\get().

+ Here is the call graph for this function:

◆ getUserId()

ilUserSearchFilter::getUserId ( )

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

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

References $usr_id.

◆ getUsers()

ilUserSearchFilter::getUsers ( )

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

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 }
134 }

References $possible_users, and ilSession\get().

+ Here is the call graph for this function:

◆ limitReached()

ilUserSearchFilter::limitReached ( )

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

97 : bool
98 {
100 }

References $limit_reached.

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

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

◆ $enabled_member_filter

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.

Referenced by __searchObjects().

◆ $search_fields

array ilUserSearchFilter::$search_fields
private
Initial value:
=
[
'login' => true,
'firstname' => true,
'lastname' => true
]
return 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: