3 declare(strict_types=1);
    45     public function __construct($a_parent_obj, $a_parent_cmd, $a_admin_mode = 
false, $a_type = self::TYPE_STANDARD)
    49         $this->
user = $DIC->user();
    50         $this->review = $DIC->rbac()->review();
    52         $this->admin_mode = (bool) $a_admin_mode;
    53         $this->type = $a_type;
    55         $this->
setId(
"rep_search_" . $this->
user->getId());
    65         if ($this->
getType() == self::TYPE_STANDARD) {
    66             $this->
setRowTemplate(
"tpl.rep_search_usr_result_row.html", 
"Services/Search");
    68             $this->
enable(
'select_all');
    73             $this->
setRowTemplate(
"tpl.global_search_usr_result_row.html", 
"Services/Search");
    79             $this->
addColumn($all_cols[$col][
'txt'], $col);
    82         if ($this->
getType() == self::TYPE_STANDARD) {
    84             $this->
addColumn($this->
lng->txt(
'lucene_relevance_short'), 
'relevance');
   100         if ($a_field == 
'relevance') {
   103         return parent::numericOrdering($a_field);
   113         $this->lucene_result = 
$res;
   123         $this->user_limitations = $a_limitations;
   136         if (!self::$all_selectable_cols) {
   139             if ($this->admin_mode) {
   141                 $columns[
'access_until'] = array(
'txt' => $this->
lng->txt(
'access_until'));
   142                 $columns[
'last_login'] = array(
'txt' => $this->
lng->txt(
'last_login'));
   145             self::$all_selectable_cols = $columns;
   147         return self::$all_selectable_cols;
   152         if (!count($a_commands)) {
   160     protected function fillRow(array $a_set): void
   162         $this->tpl->setVariable(
"VAL_ID", $a_set[
"usr_id"]);
   165         if ($this->
getType() == self::TYPE_GLOBAL_SEARCH) {
   168                 $this->tpl->setVariable(
'IMG_LINKED_TO_PROFILE', $link);
   169                 $this->tpl->setVariable(
   170                     'USR_IMG_SRC_LINKED',
   174                 $this->tpl->setVariable(
   185                     $a_set[
'gender'] = $a_set[
'gender'] ? $this->
lng->txt(
'gender_' . $a_set[
'gender']) : 
'';
   186                     $this->tpl->setCurrentBlock(
'custom_fields');
   187                     $this->tpl->setVariable(
'VAL_CUST', $a_set[$field]);
   188                     $this->tpl->parseCurrentBlock();
   193                     $this->tpl->setCurrentBlock(
'custom_fields');
   194                     $this->tpl->setVariable(
'VAL_CUST', $a_set[$field]);
   195                     $this->tpl->parseCurrentBlock();
   199                     $this->tpl->setCurrentBlock(
'custom_fields');
   200                     $this->tpl->setVariable(
'CUST_CLASS', 
' ' . $a_set[
'access_class']);
   201                     $this->tpl->setVariable(
'VAL_CUST', $a_set[$field]);
   202                     $this->tpl->parseCurrentBlock();
   207                     $this->tpl->setCurrentBlock(
'custom_fields');
   208                     $this->tpl->setVariable(
'VAL_CUST', $a_set[$field]);
   209                     $this->tpl->parseCurrentBlock();
   212                 case 'interests_general':
   213                 case 'interests_help_offered':
   214                 case 'interests_help_looking':
   215                     $this->tpl->setCurrentBlock(
'custom_fields');
   216                     $this->tpl->setVariable(
'VAL_CUST', implode(
', ', (array) $a_set[$field]));
   217                     $this->tpl->parseCurrentBlock();
   221                     $this->tpl->setCurrentBlock(
'custom_fields');
   222                     $this->tpl->setVariable(
   224                         ilOrgUnitPathStorage::getTextRepresentationOfUsersOrgUnits((
int) $a_set[
'usr_id'])
   226                     $this->tpl->parseCurrentBlock();
   231                     if ($this->admin_mode) {
   232                         $this->
ctrl->setParameterByClass(
"ilobjusergui", 
"ref_id", 
"7");
   233                         $this->
ctrl->setParameterByClass(
"ilobjusergui", 
"obj_id", $a_set[
"usr_id"]);
   234                         $this->
ctrl->setParameterByClass(
"ilobjusergui", 
"search", 
"1");
   235                         $link = $this->
ctrl->getLinkTargetByClass(array(
"iladministrationgui", 
"ilobjusergui"), 
"view");
   236                         $a_set[$field] = 
"<a href=\"" . $link . 
"\">" . $a_set[$field] . 
"</a>";
   237                     } elseif ($this->
getType() == self::TYPE_GLOBAL_SEARCH) {
   238                         $a_set[$field] = 
"<a href=\"" . $link . 
"\">" . $a_set[$field] . 
"</a>";
   244                     $this->tpl->setCurrentBlock(
'custom_fields');
   245                     $this->tpl->setVariable(
'VAL_CUST', (
string) ($a_set[$field] ?: 
''));
   246                     $this->tpl->parseCurrentBlock();
   251         if ($this->
getType() == self::TYPE_GLOBAL_SEARCH) {
   252             $this->tpl->setVariable(
'SEARCH_RELEVANCE', $this->
getRelevanceHTML($a_set[
'relevance']));
   254                 require_once 
'Services/Contact/BuddySystem/classes/class.ilBuddySystemLinkButton.php';
   257                 $this->tpl->setVariable(
'CONTACT_ACTIONS', 
'');
   271         $parse_access = 
false;
   272         if (isset($additional_fields[
'access_until'])) {
   273             $parse_access = 
true;
   274             unset($additional_fields[
'access_until']);
   277         $udf_ids = $usr_data_fields = $odf_ids = array();
   278         foreach ($additional_fields as $field) {
   279             if ($field == 
'org_units') {
   282             if (substr($field, 0, 3) == 
'udf') {
   283                 $udf_ids[] = substr($field, 4);
   286             $usr_data_fields[] = $field;
   290         $u_query->setOrderField(
'login');
   291         $u_query->setOrderDirection(
'ASC');
   292         $u_query->setLimit(999999);
   295             $u_query->setActionFilter(
"active");
   299             $u_query->setAccessFilter(
true);
   302         $u_query->setAdditionalFields($usr_data_fields);
   303         $u_query->setUserFilter($a_user_ids);
   305         $usr_data = $u_query->query();
   308         if ($this->admin_mode && $parse_access) {
   310             $current_time = time();
   311             foreach ($usr_data[
'set'] as $k => $user) {
   312                 if ($user[
'active']) {
   313                     if ($user[
"time_limit_unlimited"]) {
   314                         $txt_access = $this->
lng->txt(
"access_unlimited");
   315                         $usr_data[
"set"][$k][
"access_class"] = 
"smallgreen";
   316                     } elseif ($user[
"time_limit_until"] < $current_time) {
   317                         $txt_access = $this->
lng->txt(
"access_expired");
   318                         $usr_data[
"set"][$k][
"access_class"] = 
"smallred";
   321                         $usr_data[
"set"][$k][
"access_class"] = 
"small";
   324                     $txt_access = $this->
lng->txt(
"inactive");
   325                     $usr_data[
"set"][$k][
"access_class"] = 
"smallred";
   327                 $usr_data[
"set"][$k][
"access_until"] = $txt_access;
   337             foreach ($usr_data[
'set'] as $set) {
   338                 $users[$counter] = $set;
   339                 foreach ($udf_ids as $udf_field) {
   340                     $users[$counter][
'udf_' . $udf_field] = (
$data[(
int) ($set[
'usr_id'] ?? 0)][$udf_field] ?? 
'');
   345             $users = $usr_data[
'set'];
   348         if ($this->
getType() == self::TYPE_GLOBAL_SEARCH) {
   350                 foreach ($users as $counter => $ud) {
   351                     $users[$counter][
'relevance'] = $this->
getLuceneResult()->getRelevance((
int) ($ud[
'usr_id']) ?? 0);
   362         $tpl = 
new ilTemplate(
'tpl.lucene_relevance.html', 
true, 
true, 
'Services/Search');
   365         $pbar->setCurrent($a_rel);
   367         $tpl->setCurrentBlock(
'relevance');
   368         $tpl->setVariable(
'REL_PBAR', $pbar->render());
   369         $tpl->parseCurrentBlock();
 
static lookupData(array $a_user_ids, array $a_field_ids)
Lookup data. 
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
static array $all_selectable_cols
 
enable(string $a_module_name)
 
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
 
setFormAction(string $a_form_action, bool $a_multipart=false)
 
setEnableTitle(bool $a_enabletitle)
 
setSelectAllCheckbox(string $a_select_all_checkbox, bool $a_select_all_on_top=false)
 
static formatDate(ilDateTime $date, bool $a_skip_day=false, bool $a_include_wd=false, bool $include_seconds=false)
 
numericOrdering(string $a_field)
enable numeric ordering for relevance 
 
static getProfileLink(int $a_usr_id)
Get link to personal profile Return empty string in case of not public profile. 
 
__construct($a_parent_obj, $a_parent_cmd, $a_admin_mode=false, $a_type=self::TYPE_STANDARD)
 
addMultiItemSelectionButton(string $a_sel_var, array $a_options, string $a_cmd, string $a_text, string $a_default_selection='')
 
Search result implementing iterator interface. 
 
setShowRowsSelector(bool $a_value)
Toggle rows-per-page selector. 
 
setDefaultOrderField(string $a_defaultorderfield)
 
ilLuceneSearchResult $lucene_result
 
setUserLimitations(bool $a_limitations)
 
setRowTemplate(string $a_template, string $a_template_dir="")
Set row template. 
 
setDefaultOrderDirection(string $a_defaultorderdirection)
 
getRelevanceHTML(float $a_rel)
 
setTitle(string $a_title, string $a_icon="", string $a_icon_alt="")
 
initMultiCommands(array $a_commands)
 
static _getPersonalPicturePath(int $a_usr_id, string $a_size="small", bool $a_force_pic=false, bool $a_prevent_no_photo_image=false, bool $html_export=false)
 
setLuceneResult(ilLuceneSearchResult $res)
 
static getSelectableColumnInfo(bool $a_admin=false)
Get info of searchable fields for selectable columns in table gui. 
 
addColumn(string $a_text, string $a_sort_field="", string $a_width="", bool $a_is_checkbox_action_column=false, string $a_class="", string $a_tooltip="", bool $a_tooltip_with_html=false)
 
addMultiCommand(string $a_cmd, string $a_text)
 
parseUserIds(array $a_user_ids)