35include_once 
'Services/Search/classes/class.ilSearchResult.php';
 
   36include_once 
'Services/Search/classes/class.ilSearchSettings.php';
 
   37include_once 
'./Services/User/classes/class.ilUserAccountSettings.php';
 
   38include_once 
'Services/Search/classes/class.ilQueryParser.php';
 
   65                $this->lng->loadLanguageModule(
'search');
 
   66                $this->lng->loadLanguageModule(
'crs');
 
   68                $this->
setTitle($this->lng->txt(
'add_members_header'));
 
   74                $this->result_obj->setMaxHits(1000000);
 
   85                $this->search_title = $a_title;
 
  103                $this->searchable_check = $a_status;
 
  135                        $toolbar = $ilToolbar;
 
  139                if(!isset($a_options[
'auto_complete_name']))
 
  141                        $a_options[
'auto_complete_name'] = 
$lng->txt(
'obj_user');
 
  143                if(!isset($a_options[
'auto_complete_size']))
 
  145                        $a_options[
'auto_complete_size'] = 15;
 
  147                if(!isset($a_options[
'submit_name']))
 
  149                        $a_options[
'submit_name'] = 
$lng->txt(
'btn_add');
 
  152                $ajax_url = 
$ilCtrl->getLinkTargetByClass(array(get_class($parent_object),
'ilRepositorySearchGUI'), 
 
  153                        'doUserAutoComplete', 
'', 
true,
false);
 
  155                include_once(
"./Services/Form/classes/class.ilTextInputGUI.php");
 
  156                $ul = 
new ilTextInputGUI($a_options[
'auto_complete_name'], 
'user_login');
 
  157                $ul->setDataSource($ajax_url);          
 
  158                $ul->setSize($a_options[
'auto_complete_size']);
 
  161                        $toolbar->addInputItem($ul, 
true);
 
  165                        $toolbar->addStickyItem($ul, 
true);
 
  168                if(count((array) $a_options[
'user_type']))
 
  170                        include_once 
'./Services/Form/classes/class.ilSelectInputGUI.php';
 
  172                        $si->setOptions($a_options[
'user_type']);
 
  175                                $toolbar->addInputItem(
$si);
 
  179                                $toolbar->addStickyItem(
$si);
 
  183                include_once 
"Services/UIComponent/Button/classes/class.ilSubmitButton.php";
 
  185                $button->setCaption($a_options[
'submit_name'], 
false);
 
  186                $button->setCommand(
'addUserFromAutoComplete');
 
  189                        $toolbar->addButtonInstance($button);
 
  193                        $toolbar->addStickyItem($button);
 
  196                if((
bool)$a_options[
'add_search'] || 
 
  197                        is_numeric($a_options[
'add_from_container']))
 
  199                        $lng->loadLanguageModule(
"search");
 
  201                        $toolbar->addSeparator();
 
  203                        if((
bool)$a_options[
'add_search'])
 
  205                                include_once 
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
 
  207                                $button->setCaption(
"search_users");
 
  208                                $button->setUrl(
$ilCtrl->getLinkTargetByClass(
'ilRepositorySearchGUI',
''));
 
  209                                $toolbar->addButtonInstance($button);                           
 
  212                        if(is_numeric($a_options[
'add_from_container']))
 
  214                                $parent_ref_id = (int)$a_options[
'add_from_container'];
 
  215                                $parent_container_ref_id = $tree->checkForParentType($parent_ref_id, 
"grp");
 
  216                                $parent_container_type = 
"grp";
 
  217                                if(!$parent_container_ref_id)
 
  219                                        $parent_container_ref_id = $tree->checkForParentType($parent_ref_id, 
"crs");    
 
  220                                        $parent_container_type = 
"crs";
 
  222                                if($parent_container_ref_id)
 
  224                                        if((
bool)$a_options[
'add_search'])
 
  226                                                $toolbar->addSpacer();
 
  231                                        include_once 
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
 
  233                                        $button->setCaption(
"search_add_members_from_container_".$parent_container_type);
 
  234                                        $button->setUrl(
$ilCtrl->getLinkTargetByClass(array(get_class($parent_object),
'ilRepositorySearchGUI'), 
'listUsers'));
 
  235                                        $toolbar->addButtonInstance($button);           
 
  240                $toolbar->setFormAction(
 
  243                                        get_class($parent_object),
 
  244                                        'ilRepositorySearchGUI')
 
  257                if(
$GLOBALS[
'ilUser']->getId() == ANONYMOUS_USER_ID)
 
  259                        include_once 
'./Services/JSON/classes/class.ilJsonUtil.php';
 
  265                if(!isset(
$_GET[
'autoCompleteField']))
 
  267                        $a_fields = array(
'login',
'firstname',
'lastname',
'email');
 
  268                        $result_field = 
'login';
 
  272                        $a_fields = array((
string) 
$_GET[
'autoCompleteField']);
 
  273                        $result_field = (string) 
$_GET[
'autoCompleteField'];
 
  276                include_once 
'./Services/User/classes/class.ilUserAutoComplete.php';
 
  284                $auto->setMoreLinkAvailable(
true);
 
  285                $auto->setSearchFields($a_fields);
 
  286                $auto->setResultField($result_field);
 
  287                $auto->enableFieldSearchableCheck(
true);
 
  301                $_SESSION[
'search'][
'string'] = $this->
string = $a_str;
 
  305                return $this->string;
 
  316                $next_class = $this->ctrl->getNextClass($this);
 
  317                $cmd = $this->ctrl->getCmd();
 
  319                $this->ctrl->setReturn($this,
'');
 
  345                $this->ctrl->returnToParent($this);
 
  360                $class = $this->callback[
'class'];
 
  361                $method = $this->callback[
'method'];
 
  365                $class->$method(
$_POST[
'user']);
 
  375                $class = $this->callback[
'class'];
 
  376                $method = $this->callback[
'method'];
 
  378                $users = explode(
',', 
$_POST[
'user_login']);
 
  380                foreach($users as $user)
 
  385                                $user_ids[] = $user_id;
 
  389                $user_type = isset(
$_POST[
'user_type']) ? 
$_POST[
'user_type'] : 0;
 
  391                if(!$class->$method($user_ids,$user_type))
 
  393                        $GLOBALS[
'ilCtrl']->returnToParent($this);
 
  402                $class = $this->callback[
'class'];
 
  403                $method = $this->callback[
'method'];
 
  406                if(!$class->$method((array) 
$_POST[
'user'],
$_POST[
'selectedCommand']))
 
  412        public function setCallback(&$class,$method,$a_add_options = array())
 
  414                $this->callback = array(
'class' => $class,
'method' => $method);
 
  415                $this->add_options = $a_add_options ? $a_add_options : array();
 
  421                $this->tpl->setContent($this->form->getHTML());
 
  429                $selected = (int) 
$_REQUEST[
'selected_id'];
 
  431                #include_once './Services/Object/classes/class.ilObjectFactory.php'; 
  432                #$factory = new ilObjectFactory(); 
  433                #$user = $factory->getInstanceByObjId($selected); 
  435                #$this->initFormSearch($user); 
  436                #$this->tpl->setContent($this->form->getHTML()); 
  438                $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.rep_search_result.html',
'Services/Search');
 
  447                include_once 
'./Services/Form/classes/class.ilPropertyFormGUI.php';
 
  450                $this->form->setFormAction($this->ctrl->getFormAction($this,
'search'));
 
  451                $this->form->setTitle($this->
getTitle());
 
  452                $this->form->addCommandButton(
'performSearch', $this->lng->txt(
'search'));
 
  453                $this->form->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
 
  457                $kind->setValue($this->search_type);
 
  458                $this->form->addItem($kind);
 
  461                $users = 
new ilRadioOption($this->lng->txt(
'search_for_users'),
'usr');
 
  464                include_once 
'Services/Search/classes/class.ilUserSearchOptions.php';
 
  467                        switch(
$info[
'type'])
 
  473                                        $sel->setOptions(
$info[
'values']);
 
  474                                        $users->addSubItem($sel);
 
  481                                        if(isset(
$info[
'autoComplete']) and 
$info[
'autoComplete'])
 
  483                                                $ilCtrl->setParameterByClass(get_class($this),
'autoCompleteField',
$info[
'db']);
 
  485                                                $ul->setDataSourceSubmitOnSelection(TRUE);
 
  486                                                $ul->setDataSourceSubmitUrl(
 
  487                                                                $this->ctrl->getLinkTarget(
 
  489                                                                                'showSearchSelected',
 
  495                                                $ul->setDataSource(
$ilCtrl->getLinkTarget($this,
 
  496                                                        "doUserAutoComplete", 
"", 
true));                                       
 
  498                                                $ul->setMaxLength(120);
 
  505                                                                        $ul->setValue($user->getFirstname());
 
  508                                                                        $ul->setValue($user->getLastname());
 
  511                                                                        $ul->setValue($user->getLogin());
 
  518                                                $users->addSubItem($ul);
 
  524                                                $txt->setMaxLength(120);
 
  525                                                $users->addSubItem(
$txt);
 
  530                $kind->addOption($users);
 
  535                $roles = 
new ilRadioOption($this->lng->txt(
'search_for_role_members'),
'role');
 
  536                $role = 
new ilTextInputGUI($this->lng->txt(
'search_role_title'),
'rep_query[role][title]');
 
  538                $role->setMaxLength(120);
 
  539                $roles->addSubItem($role);
 
  540                $kind->addOption($roles);
 
  543                $groups = 
new ilRadioOption($this->lng->txt(
'search_for_crs_members'),
'crs');
 
  544                $group = 
new ilTextInputGUI($this->lng->txt(
'search_crs_title'),
'rep_query[crs][title]');
 
  546                $group->setMaxLength(120);
 
  547                $groups->addSubItem($group);
 
  548                $kind->addOption($groups);
 
  551                $groups = 
new ilRadioOption($this->lng->txt(
'search_for_grp_members'),
'grp');
 
  552                $group = 
new ilTextInputGUI($this->lng->txt(
'search_grp_title'),
'rep_query[grp][title]');
 
  554                $group->setMaxLength(120);
 
  555                $groups->addSubItem($group);
 
  556                $kind->addOption($groups);
 
  577                $found_query = 
false;
 
  578                foreach((array) 
$_POST[
'rep_query'][
$_POST[
'search_for']] as $field => $value)
 
  594                if(
$_POST[
'cmd'][
'performSearch'])
 
  599                switch($this->search_type)
 
  620                $this->result_obj->setRequiredPermission(
'read');
 
  621                $this->result_obj->addObserver($this, 
'searchResultFilterListener');
 
  625                if($this->search_type == 
'usr')
 
  627                        include_once 
'./Services/User/classes/class.ilUserFilter.php';
 
  628                        $this->search_results = array_intersect(
 
  629                                $this->result_obj->getResultIds(),
 
  635                        $this->search_results = array();
 
  636                        foreach((array) $this->result_obj->getResults() as 
$res)
 
  638                                $this->search_results[] = 
$res[
'obj_id'];
 
  642                if(!count($this->search_results))
 
  649                if($this->result_obj->isLimitReached())
 
  651                        $message = sprintf($this->lng->txt(
'search_limit_reached'),$this->settings->getMaxHits());
 
  662                include_once 
'Services/Search/classes/class.ilUserSearchOptions.php';
 
  663                include_once 
'Services/Search/classes/class.ilObjectSearchFactory.php';
 
  668                        $query_string = 
$_SESSION[
'rep_query'][
'usr'][$name];
 
  681                        switch(
$info[
'type'])
 
  689                                        $udf_search->setFields(array($name));
 
  690                                        $result_obj = $udf_search->performSearch();
 
  702                                        $user_search->setFields(array($name));
 
  703                                        $result_obj = $user_search->performSearch();
 
  711                                        $multi_search->setFields(array($name));
 
  712                                        $result_obj = $multi_search->performSearch();
 
  725                include_once 
'Services/Search/classes/class.ilObjectSearchFactory.php';
 
  727                $query_string = 
$_SESSION[
'rep_query'][
'grp'][
'title'];
 
  734                include_once 
'Services/Search/classes/Like/class.ilLikeObjectSearch.php';
 
  736                $object_search->setFilter(array(
'grp'));
 
  748                include_once 
'Services/Search/classes/class.ilObjectSearchFactory.php';
 
  750                $query_string = 
$_SESSION[
'rep_query'][
'crs'][
'title'];
 
  757                include_once 
'Services/Search/classes/Like/class.ilLikeObjectSearch.php';
 
  759                $object_search->setFilter(array(
'crs'));
 
  771                include_once 
'Services/Search/classes/class.ilObjectSearchFactory.php';
 
  773                $query_string = 
$_SESSION[
'rep_query'][
'role'][
'title'];
 
  781                include_once 
'Services/Search/classes/Like/class.ilLikeObjectSearch.php';
 
  783                $object_search->setFilter(array(
'role'));
 
  798                $query_parser->setMinWordLength(1);
 
  801                if(!(
bool)$a_ignore_length)
 
  803                        $query_parser->setGlobalMinLength(3); 
 
  806                $query_parser->parse();
 
  808                if(!$query_parser->validate())
 
  810                        return $query_parser->getMessage();
 
  812                return $query_parser;
 
  818                if(is_array(
$_POST[
'rep_query']))
 
  839                $this->search_type = 
$_SESSION[
'rep_search_type'];
 
  840                #echo $this->search_type; 
  852                foreach($this->search_results as 
$result)
 
  856                if(!
$_SESSION[
'rep_search'][$this->search_type])
 
  872                        return $_SESSION[
'rep_search'][
'usr'] = $a_usr_ids;
 
  874                $_SESSION[
'rep_search'][
'usr'] = array();
 
  875                foreach($a_usr_ids as $usr_id)
 
  877                        $_SESSION[
'rep_search'][
'usr'][] = $usr_id;
 
  879                return $_SESSION[
'rep_search'][
'usr'] ? array_unique(
$_SESSION[
'rep_search'][
'usr']) : array();
 
  884                if($this->stored == 
false)
 
  886                        $this->result_obj->mergeEntries($new_res);
 
  887                        $this->stored = 
true;
 
  892                        $this->result_obj->intersectEntries($new_res);
 
  903                include_once 
'./Services/UIComponent/Toolbar/classes/class.ilToolbarGUI.php';
 
  906                        $this->lng->txt(
'search_new'), 
 
  907                        $this->ctrl->getLinkTarget($this,
'showSearch')
 
  909                $this->tpl->setVariable(
'ACTION_BUTTONS',$toolbar->getHTML());
 
  917                $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.rep_search_result.html',
'Services/Search');
 
  920                switch($this->search_type)
 
  947                $is_in_admin = (
$_REQUEST[
'baseClass'] == 
'ilAdministrationGUI');
 
  951                        $_SESSION[
"usr_search_link"] = $this->ctrl->getLinkTarget($this,
'show');
 
  954                include_once 
'./Services/Search/classes/class.ilRepositoryUserResultTableGUI.php';
 
  957                if(count($this->add_options))
 
  959                        $table->addMultiItemSelectionButton(
 
  962                                'handleMultiCommand',
 
  963                                $this->lng->txt(
'execute')
 
  968                        $table->addMultiCommand(
'addUser', $this->lng->txt(
'btn_add'));
 
  971                $table->parseUserIds($a_usr_ids);
 
  973                $this->tpl->setVariable(
'RES_TABLE',$table->getHTML());
 
  983                include_once 
'./Services/Search/classes/class.ilRepositoryObjectResultTableGUI.php';
 
  986                $table->parseObjectIds($a_obj_ids);
 
  988                $this->tpl->setVariable(
'RES_TABLE',$table->getHTML());
 
  998                include_once 
'./Services/Search/classes/class.ilRepositoryObjectResultTableGUI.php';
 
 1001                $table->parseObjectIds($a_obj_ids);
 
 1003                $this->tpl->setVariable(
'RES_TABLE',$table->getHTML());
 
 1013                include_once 
'./Services/Search/classes/class.ilRepositoryObjectResultTableGUI.php';
 
 1016                $table->parseObjectIds($a_obj_ids);
 
 1018                $this->tpl->setVariable(
'RES_TABLE',$table->getHTML());
 
 1029                if (
$_GET[
"list_obj"] != 
"" && !is_array(
$_POST[
'obj']))
 
 1044                foreach(
$_POST[
'obj'] as $obj_id)
 
 1052                                        include_once 
'./Services/Membership/classes/class.ilParticipants.php';
 
 1062                                        include_once 
'./Services/User/classes/class.ilUserFilter.php';
 
 1067                $members = array_unique((array) $members);
 
 1070                $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.rep_search_result.html',
'Services/Search');
 
 1098                if($a_data[
'type'] == 
'usr')
 
 1100                        if($a_data[
'obj_id'] == ANONYMOUS_USER_ID)
 
 1115                $this->object_selection = (bool)$a_value;
 
 1125                if (
$_GET[
"list_obj"] != 
"" && !is_array(
$_POST[
'obj']))
 
 1136                $this->ctrl->setParameter($this->callback[
"class"], 
"obj", implode(
";", 
$_POST[
"obj"]));
 
 1137                $this->ctrl->redirect($this->callback[
"class"], $this->callback[
"method"]);
 
 1147                $this->user_limitations = (bool) $a_limitations;
 
const FIELD_TYPE_UDF_SELECT
Class ilUserSearchOptions.
const FIELD_TYPE_UDF_TEXT
static encode($mixed, $suppress_native=false)
static _lookupId($a_user_str)
Lookup id by login.
static _getUserDefinedFieldSearchInstance($query_parser)
get reference of ilLikeUserDefinedFieldSearch
static getUserMultiFieldSearchInstance($query_parser)
static _getUserSearchInstance($query_parser)
get reference of ilLikeUserSearch
static _lookupObjId($a_id)
static _lookupType($a_id, $a_reference=false)
lookup object type
static hasParticipantListAccess($a_obj_id, $a_usr_id=null)
Check if (current) user has access to the participant list.
static getInstanceByObjId($a_obj_id)
Get instance by obj type.
This class represents an option in a radio group.
TableGUI class object (course,group and role) search results Used in member search.
selectObject()
Return selection of course/group/roles to calling script.
showSearchCourseTable($a_obj_ids)
performSearch()
Perform a search.
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array(), $a_sticky=false)
fill toolbar with
__performCourseSearch()
Search courses.
isSearchableCheckEnabled()
__storeEntries(&$new_res)
showSearchRoleTable($a_obj_ids)
Show usr table.
setTitle($a_title)
Set form title.
__appendToStoredResults($a_usr_ids)
enableSearchableCheck($a_status)
En/disable the validation of the searchable flag.
storedUserList()
Called from table sort.
showSearchGroupTable($a_obj_ids)
__performRoleSearch()
Search roles.
showSearchSelected()
submit from autocomplete
initFormSearch(ilObjUser $user=NULL)
doUserAutoComplete()
Do auto completion.
getTitle()
Get search form title.
setUserLimitations($a_limitations)
allow user limitations like inactive and access limitations
showSearchUserTable($a_usr_ids, $a_parent_cmd)
Show usr table.
searchResultFilterListener($a_ref_id, $a_data)
Listener called from ilSearchResult Id is obj_id for role, usr Id is ref_id for crs grp.
__performGroupSearch()
Search groups.
listUsers()
List users of course/group/roles.
ilRepositorySearchGUI()
Constructor @access public.
addNewSearchButton()
Add new search button.
getUserLimitations()
allow user limitations like inactive and access limitations
& executeCommand()
Control @access public.
setString($a_str)
Set/get search string @access public.
addUserFromAutoComplete()
Add user from auto complete input.
handleMultiCommand()
Handle multi command.
allowObjectSelection($a_value=false)
Toggle object selection status.
setCallback(&$class, $method, $a_add_options=array())
& __parseQueryString($a_string, $a_combination_or=true, $a_ignore_length=false)
parse query string, using query parser instance
TableGUI class user search results.
This class represents a text property in a property form.
Auto completion class for user lists.
static getInstance()
Singelton get instance.
static _getSearchableFieldsInfo($a_admin=false)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
$GLOBALS['PHPCAS_CLIENT']
This global variable is used by the interface class phpCAS.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']