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';
 
   64                $this->lng->loadLanguageModule(
'search');
 
   65                $this->lng->loadLanguageModule(
'crs');
 
   67                $this->
setTitle($this->lng->txt(
'add_members_header'));
 
   73                $this->result_obj->setMaxHits(1000000);
 
   84                $this->search_title = $a_title;
 
  102                $this->searchable_check = $a_status;
 
  134                        $toolbar = $ilToolbar;
 
  138                if(!isset($a_options[
'auto_complete_name']))
 
  140                        $a_options[
'auto_complete_name'] = 
$lng->txt(
'obj_user');
 
  142                if(!isset($a_options[
'auto_complete_size']))
 
  144                        $a_options[
'auto_complete_size'] = 15;
 
  146                if(!isset($a_options[
'submit_name']))
 
  148                        $a_options[
'submit_name'] = 
$lng->txt(
'btn_add');
 
  151                $ajax_url = 
$ilCtrl->getLinkTargetByClass(array(get_class($parent_object),
'ilRepositorySearchGUI'), 
 
  152                        'doUserAutoComplete', 
'', 
true,
false);
 
  154                include_once(
"./Services/Form/classes/class.ilTextInputGUI.php");
 
  155                $ul = 
new ilTextInputGUI($a_options[
'auto_complete_name'], 
'user_login');
 
  156                $ul->setDataSource($ajax_url);          
 
  157                $ul->setSize($a_options[
'auto_complete_size']);
 
  158                $toolbar->addInputItem($ul, 
true);
 
  160                if(count((array) $a_options[
'user_type']))
 
  162                        include_once 
'./Services/Form/classes/class.ilSelectInputGUI.php';
 
  164                        $si->setOptions($a_options[
'user_type']);
 
  165                        $toolbar->addInputItem(
$si);
 
  168                include_once 
"Services/UIComponent/Button/classes/class.ilSubmitButton.php";
 
  170                $button->setCaption($a_options[
'submit_name'], 
false);
 
  171                $button->setCommand(
'addUserFromAutoComplete');
 
  172                $toolbar->addButtonInstance($button);
 
  174                if((
bool)$a_options[
'add_search'] || 
 
  175                        is_numeric($a_options[
'add_from_container']))
 
  177                        $lng->loadLanguageModule(
"search");
 
  179                        $toolbar->addSeparator();
 
  181                        if((
bool)$a_options[
'add_search'])
 
  183                                include_once 
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
 
  185                                $button->setCaption(
"search_users");
 
  186                                $button->setUrl(
$ilCtrl->getLinkTargetByClass(
'ilRepositorySearchGUI',
''));
 
  187                                $toolbar->addButtonInstance($button);                           
 
  190                        if(is_numeric($a_options[
'add_from_container']))
 
  192                                $parent_ref_id = (int)$a_options[
'add_from_container'];
 
  193                                $parent_container_ref_id = $tree->checkForParentType($parent_ref_id, 
"grp");
 
  194                                $parent_container_type = 
"grp";
 
  195                                if(!$parent_container_ref_id)
 
  197                                        $parent_container_ref_id = $tree->checkForParentType($parent_ref_id, 
"crs");    
 
  198                                        $parent_container_type = 
"crs";
 
  200                                if($parent_container_ref_id)
 
  202                                        if((
bool)$a_options[
'add_search'])
 
  204                                                $toolbar->addSpacer();
 
  209                                        include_once 
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
 
  211                                        $button->setCaption(
"search_add_members_from_container_".$parent_container_type);
 
  212                                        $button->setUrl(
$ilCtrl->getLinkTargetByClass(array(get_class($parent_object),
'ilRepositorySearchGUI'), 
'listUsers'));
 
  213                                        $toolbar->addButtonInstance($button);           
 
  218                $toolbar->setFormAction(
 
  221                                        get_class($parent_object),
 
  222                                        'ilRepositorySearchGUI')
 
  235                if(
$GLOBALS[
'ilUser']->getId() == ANONYMOUS_USER_ID)
 
  237                        include_once 
'./Services/JSON/classes/class.ilJsonUtil.php';
 
  243                if(!isset(
$_GET[
'autoCompleteField']))
 
  245                        $a_fields = array(
'login',
'firstname',
'lastname',
'email');
 
  246                        $result_field = 
'login';
 
  250                        $a_fields = array((
string) 
$_GET[
'autoCompleteField']);
 
  251                        $result_field = (string) 
$_GET[
'autoCompleteField'];
 
  254                include_once 
'./Services/User/classes/class.ilUserAutoComplete.php';
 
  262                $auto->setMoreLinkAvailable(
true);
 
  263                $auto->setSearchFields($a_fields);
 
  264                $auto->setResultField($result_field);
 
  265                $auto->enableFieldSearchableCheck(
true);
 
  277                $_SESSION[
'search'][
'string'] = $this->
string = $a_str;
 
  281                return $this->string;
 
  292                $next_class = $this->ctrl->getNextClass($this);
 
  293                $cmd = $this->ctrl->getCmd();
 
  295                $this->ctrl->setReturn($this,
'');
 
  321                $this->ctrl->returnToParent($this);
 
  336                $class = $this->callback[
'class'];
 
  337                $method = $this->callback[
'method'];
 
  341                $class->$method(
$_POST[
'user']);
 
  351                $class = $this->callback[
'class'];
 
  352                $method = $this->callback[
'method'];
 
  354                $users = explode(
',', 
$_POST[
'user_login']);
 
  356                foreach($users as $user)
 
  361                                $user_ids[] = $user_id;
 
  365                $user_type = isset(
$_POST[
'user_type']) ? 
$_POST[
'user_type'] : 0;
 
  367                if(!$class->$method($user_ids,$user_type))
 
  369                        $GLOBALS[
'ilCtrl']->returnToParent($this);
 
  378                $class = $this->callback[
'class'];
 
  379                $method = $this->callback[
'method'];
 
  382                if(!$class->$method((array) 
$_POST[
'user'],
$_POST[
'selectedCommand']))
 
  388        public function setCallback(&$class,$method,$a_add_options = array())
 
  390                $this->callback = array(
'class' => $class,
'method' => $method);
 
  391                $this->add_options = $a_add_options ? $a_add_options : array();
 
  397                $this->tpl->setContent($this->form->getHTML());
 
  405                $selected = (int) 
$_REQUEST[
'selected_id'];
 
  407                #include_once './Services/Object/classes/class.ilObjectFactory.php'; 
  408                #$factory = new ilObjectFactory(); 
  409                #$user = $factory->getInstanceByObjId($selected); 
  411                #$this->initFormSearch($user); 
  412                #$this->tpl->setContent($this->form->getHTML()); 
  414                $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.rep_search_result.html',
'Services/Search');
 
  423                include_once 
'./Services/Form/classes/class.ilPropertyFormGUI.php';
 
  426                $this->form->setFormAction($this->ctrl->getFormAction($this,
'search'));
 
  427                $this->form->setTitle($this->
getTitle());
 
  428                $this->form->addCommandButton(
'performSearch', $this->lng->txt(
'search'));
 
  429                $this->form->addCommandButton(
'cancel', $this->lng->txt(
'cancel'));
 
  433                $kind->setValue($this->search_type);
 
  434                $this->form->addItem($kind);
 
  437                $users = 
new ilRadioOption($this->lng->txt(
'search_for_users'),
'usr');
 
  440                include_once 
'Services/Search/classes/class.ilUserSearchOptions.php';
 
  443                        switch($info[
'type'])
 
  448                                        $sel = 
new ilSelectInputGUI($info[
'lang'],
"rep_query[usr][".$info[
'db'].
"]");
 
  449                                        $sel->setOptions($info[
'values']);
 
  450                                        $users->addSubItem($sel);
 
  457                                        if(isset($info[
'autoComplete']) and $info[
'autoComplete'])
 
  459                                                $ilCtrl->setParameterByClass(get_class($this),
'autoCompleteField',$info[
'db']);
 
  460                                                $ul = 
new ilTextInputGUI($info[
'lang'], 
"rep_query[usr][".$info[
'db'].
"]");
 
  461                                                $ul->setDataSourceSubmitOnSelection(TRUE);
 
  462                                                $ul->setDataSourceSubmitUrl(
 
  463                                                                $this->ctrl->getLinkTarget(
 
  465                                                                                'showSearchSelected',
 
  471                                                $ul->setDataSource(
$ilCtrl->getLinkTarget($this,
 
  472                                                        "doUserAutoComplete", 
"", 
true));                                       
 
  474                                                $ul->setMaxLength(120);
 
  481                                                                        $ul->setValue($user->getFirstname());
 
  484                                                                        $ul->setValue($user->getLastname());
 
  487                                                                        $ul->setValue($user->getLogin());
 
  494                                                $users->addSubItem($ul);
 
  500                                                $txt->setMaxLength(120);
 
  501                                                $users->addSubItem(
$txt);
 
  506                $kind->addOption($users);
 
  511                $roles = 
new ilRadioOption($this->lng->txt(
'search_for_role_members'),
'role');
 
  512                $role = 
new ilTextInputGUI($this->lng->txt(
'search_role_title'),
'rep_query[role][title]');
 
  514                $role->setMaxLength(120);
 
  515                $roles->addSubItem($role);
 
  516                $kind->addOption($roles);
 
  519                $groups = 
new ilRadioOption($this->lng->txt(
'search_for_crs_members'),
'crs');
 
  520                $group = 
new ilTextInputGUI($this->lng->txt(
'search_crs_title'),
'rep_query[crs][title]');
 
  522                $group->setMaxLength(120);
 
  523                $groups->addSubItem($group);
 
  524                $kind->addOption($groups);
 
  527                $groups = 
new ilRadioOption($this->lng->txt(
'search_for_grp_members'),
'grp');
 
  528                $group = 
new ilTextInputGUI($this->lng->txt(
'search_grp_title'),
'rep_query[grp][title]');
 
  530                $group->setMaxLength(120);
 
  531                $groups->addSubItem($group);
 
  532                $kind->addOption($groups);
 
  553                $found_query = 
false;
 
  554                foreach((array) 
$_POST[
'rep_query'][
$_POST[
'search_for']] as $field => $value)
 
  570                if(
$_POST[
'cmd'][
'performSearch'])
 
  575                switch($this->search_type)
 
  596                $this->result_obj->setRequiredPermission(
'read');
 
  597                $this->result_obj->addObserver($this, 
'searchResultFilterListener');
 
  601                if($this->search_type == 
'usr')
 
  603                        include_once 
'./Services/User/classes/class.ilUserFilter.php';
 
  604                        $this->search_results = array_intersect(
 
  605                                $this->result_obj->getResultIds(),
 
  611                        $this->search_results = array();
 
  612                        foreach((array) $this->result_obj->getResults() as 
$res)
 
  614                                $this->search_results[] = 
$res[
'obj_id'];
 
  618                if(!count($this->search_results))
 
  625                if($this->result_obj->isLimitReached())
 
  627                        $message = sprintf($this->lng->txt(
'search_limit_reached'),$this->settings->getMaxHits());
 
  638                include_once 
'Services/Search/classes/class.ilUserSearchOptions.php';
 
  639                include_once 
'Services/Search/classes/class.ilObjectSearchFactory.php';
 
  644                        $query_string = 
$_SESSION[
'rep_query'][
'usr'][$name];
 
  657                        switch($info[
'type'])
 
  665                                        $udf_search->setFields(array($name));
 
  666                                        $result_obj = $udf_search->performSearch();
 
  678                                        $user_search->setFields(array($name));
 
  679                                        $result_obj = $user_search->performSearch();
 
  687                                        $multi_search->setFields(array($name));
 
  688                                        $result_obj = $multi_search->performSearch();
 
  701                include_once 
'Services/Search/classes/class.ilObjectSearchFactory.php';
 
  703                $query_string = 
$_SESSION[
'rep_query'][
'grp'][
'title'];
 
  710                include_once 
'Services/Search/classes/Like/class.ilLikeObjectSearch.php';
 
  712                $object_search->setFilter(array(
'grp'));
 
  724                include_once 
'Services/Search/classes/class.ilObjectSearchFactory.php';
 
  726                $query_string = 
$_SESSION[
'rep_query'][
'crs'][
'title'];
 
  733                include_once 
'Services/Search/classes/Like/class.ilLikeObjectSearch.php';
 
  735                $object_search->setFilter(array(
'crs'));
 
  747                include_once 
'Services/Search/classes/class.ilObjectSearchFactory.php';
 
  749                $query_string = 
$_SESSION[
'rep_query'][
'role'][
'title'];
 
  757                include_once 
'Services/Search/classes/Like/class.ilLikeObjectSearch.php';
 
  759                $object_search->setFilter(array(
'role'));
 
  774                $query_parser->setMinWordLength(1);
 
  777                if(!(
bool)$a_ignore_length)
 
  779                        $query_parser->setGlobalMinLength(3); 
 
  782                $query_parser->parse();
 
  784                if(!$query_parser->validate())
 
  786                        return $query_parser->getMessage();
 
  788                return $query_parser;
 
  794                if(is_array(
$_POST[
'rep_query']))
 
  815                $this->search_type = 
$_SESSION[
'rep_search_type'];
 
  816                #echo $this->search_type; 
  828                foreach($this->search_results as 
$result)
 
  832                if(!
$_SESSION[
'rep_search'][$this->search_type])
 
  848                        return $_SESSION[
'rep_search'][
'usr'] = $a_usr_ids;
 
  850                $_SESSION[
'rep_search'][
'usr'] = array();
 
  851                foreach($a_usr_ids as $usr_id)
 
  853                        $_SESSION[
'rep_search'][
'usr'][] = $usr_id;
 
  855                return $_SESSION[
'rep_search'][
'usr'] ? array_unique(
$_SESSION[
'rep_search'][
'usr']) : array();
 
  860                if($this->stored == 
false)
 
  862                        $this->result_obj->mergeEntries($new_res);
 
  863                        $this->stored = 
true;
 
  868                        $this->result_obj->intersectEntries($new_res);
 
  879                include_once 
'./Services/UIComponent/Toolbar/classes/class.ilToolbarGUI.php';
 
  882                        $this->lng->txt(
'search_new'), 
 
  883                        $this->ctrl->getLinkTarget($this,
'showSearch')
 
  885                $this->tpl->setVariable(
'ACTION_BUTTONS',$toolbar->getHTML());
 
  893                $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.rep_search_result.html',
'Services/Search');
 
  896                switch($this->search_type)
 
  923                $is_in_admin = (
$_REQUEST[
'baseClass'] == 
'ilAdministrationGUI');
 
  927                        $_SESSION[
"usr_search_link"] = $this->ctrl->getLinkTarget($this,
'show');
 
  930                include_once 
'./Services/Search/classes/class.ilRepositoryUserResultTableGUI.php';
 
  933                if(count($this->add_options))
 
  935                        $table->addMultiItemSelectionButton(
 
  938                                'handleMultiCommand',
 
  939                                $this->lng->txt(
'execute')
 
  944                        $table->addMultiCommand(
'addUser', $this->lng->txt(
'btn_add'));
 
  946                $table->parseUserIds($a_usr_ids);
 
  948                $this->tpl->setVariable(
'RES_TABLE',$table->getHTML());
 
  958                include_once 
'./Services/Search/classes/class.ilRepositoryObjectResultTableGUI.php';
 
  961                $table->parseObjectIds($a_obj_ids);
 
  963                $this->tpl->setVariable(
'RES_TABLE',$table->getHTML());
 
  973                include_once 
'./Services/Search/classes/class.ilRepositoryObjectResultTableGUI.php';
 
  976                $table->parseObjectIds($a_obj_ids);
 
  978                $this->tpl->setVariable(
'RES_TABLE',$table->getHTML());
 
  988                include_once 
'./Services/Search/classes/class.ilRepositoryObjectResultTableGUI.php';
 
  991                $table->parseObjectIds($a_obj_ids);
 
  993                $this->tpl->setVariable(
'RES_TABLE',$table->getHTML());
 
 1004                if (
$_GET[
"list_obj"] != 
"" && !is_array(
$_POST[
'obj']))
 
 1019                foreach(
$_POST[
'obj'] as $obj_id)
 
 1027                                        include_once 
'./Services/Membership/classes/class.ilParticipants.php';
 
 1037                                        include_once 
'./Services/User/classes/class.ilUserFilter.php';
 
 1042                $members = array_unique((array) $members);
 
 1045                $this->tpl->addBlockFile(
'ADM_CONTENT',
'adm_content',
'tpl.rep_search_result.html',
'Services/Search');
 
 1073                if($a_data[
'type'] == 
'usr')
 
 1075                        if($a_data[
'obj_id'] == ANONYMOUS_USER_ID)
 
 1090                $this->object_selection = (bool)$a_value;
 
 1100                if (
$_GET[
"list_obj"] != 
"" && !is_array(
$_POST[
'obj']))
 
 1111                $this->ctrl->setParameter($this->callback[
"class"], 
"obj", implode(
";", 
$_POST[
"obj"]));
 
 1112                $this->ctrl->redirect($this->callback[
"class"], $this->callback[
"method"]);
 
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.
selectObject()
Return selection of course/group/roles to calling script.
showSearchCourseTable($a_obj_ids)
performSearch()
Perform a search.
__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.
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.
static fillAutoCompleteToolbar($parent_object, ilToolbarGUI $toolbar=null, $a_options=array())
fill toolbar with
listUsers()
List users of course/group/roles.
ilRepositorySearchGUI()
Constructor @access public.
addNewSearchButton()
Add new search button.
& 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.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']