24 require_once
'./Services/User/classes/class.ilObjUser.php';
25 require_once
'Services/Mail/classes/class.ilMailbox.php';
26 require_once
'Services/Mail/classes/class.ilFormatMail.php';
27 include_once
'Services/Table/classes/class.ilTable2GUI.php';
28 include_once
'Services/Search/classes/class.ilQueryParser.php';
29 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
30 include_once
'Services/Search/classes/class.ilSearchResult.php';
48 public function __construct($wsp_access_handler = null, $wsp_node_id = null)
57 $this->wsp_access_handler = $wsp_access_handler;
58 $this->wsp_node_id = $wsp_node_id;
60 $this->ctrl->saveParameter($this,
"mobj_id");
61 $this->ctrl->saveParameter($this,
"ref");
68 $forward_class = $this->ctrl->getNextClass($this);
69 switch($forward_class)
72 if (!(
$cmd = $this->ctrl->getCmd()))
86 $recipients = array();
87 $recipients = array_merge($recipients, (array)
$_POST[
'search_name_to_addr']);
88 $recipients = array_merge($recipients, (array)$_POST[
'search_name_to_usr']);
89 $recipients = array_merge($recipients, (array)$_POST[
'search_name_to_grp']);
91 $recipients = array_unique($recipients);
93 $_SESSION[
"mail_search_results_to"] = $recipients;
94 $_SESSION[
"mail_search_results_cc"] = $_POST[
"search_name_cc"];
95 $_SESSION[
"mail_search_results_bcc"] = $_POST[
"search_name_bcc"];
97 if(
$_GET[
"ref"] !=
"wsp")
106 $this->ctrl->returnToParent($this);
111 $mail_data = $this->umail->getSavedData();
113 $this->umail->savePostData(
114 $mail_data[
"user_id"],
115 $mail_data[
"attachments"],
116 $mail_data[
"rcp_to"],
117 $mail_data[
"rcp_cc"],
118 $mail_data[
"rcp_bcc"],
119 $mail_data[
"m_type"],
120 $mail_data[
"m_email"],
121 $mail_data[
"m_subject"],
122 $mail_data[
"m_message"],
123 $mail_data[
"use_placeholders"],
124 $mail_data[
'tpl_ctx_id'],
125 $mail_data[
'tpl_ctx_params']
131 $this->ctrl->returnToParent($this);
138 if (strlen(trim(
$_SESSION[
"mail_search_search"])) == 0)
142 else if(strlen(trim(
$_SESSION[
"mail_search_search"])) < 3)
144 $this->lng->loadLanguageModule(
'search');
157 if(
$_GET[
"ref"] !=
"wsp")
160 $title = $this->lng->txt(
'search_recipients');
164 $this->lng->loadLanguageModule(
"wsp");
165 $title = $this->lng->txt(
"wsp_share_search_users");
169 include_once
'Services/Form/classes/class.ilPropertyFormGUI.php';
171 $form->setTitle($title);
172 $form->setId(
'search_rcp');
173 $form->setFormAction($ilCtrl->getFormAction($this,
'search'));
175 $inp =
new ilTextInputGUI($this->lng->txt(
"search_for"),
'search');
177 $dsDataLink = $ilCtrl->getLinkTarget($this,
'lookupRecipientAsync',
'',
true,
false);
178 $inp->setDataSource($dsDataLink);
180 if (strlen(trim(
$_SESSION[
"mail_search_search"])) > 0)
184 $form->addItem($inp);
186 $form->addCommandButton(
'search', $this->lng->txt(
"search"));
187 $form->addCommandButton(
'cancel', $this->lng->txt(
"cancel"));
194 include_once
'Services/JSON/classes/class.ilJsonUtil.php';
195 include_once
'Services/Mail/classes/class.ilMailForm.php';
207 $quoted = str_replace(
'%',
'\%', $quoted);
208 $quoted = str_replace(
'_',
'\_', $quoted);
210 $search_recipients = (
$_GET[
"ref"] !=
"wsp");
222 global
$lng,
$ilUser, $rbacreview, $ilObjDataCache;
226 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.mail_search.html",
"Services/Contact");
227 $this->tpl->setVariable(
"ACTION", $this->ctrl->getFormAction($this));
228 $this->tpl->setTitle($this->lng->txt(
"mail"));
229 $this->tpl->setVariable(
'SEARCHFORM', $form->getHtml());
232 if(strlen(
$_SESSION[
'mail_search_search']) < 3)
234 if(
$_GET[
"ref"] !=
"wsp")
241 require_once
'Services/Contact/BuddySystem/classes/class.ilBuddyList.php';
242 $relations = ilBuddyList::getInstanceByGlobalUser()->getLinkedRelations();
243 if(count($relations))
249 $query_parser->setMinWordLength(3);
250 $query_parser->parse();
253 $user_search->enableActiveCheck(
true);
254 $user_search->setFields(array(
'login'));
255 $result_obj = $user_search->performSearch();
256 $contacts_search_result->mergeEntries($result_obj);
258 $user_search->setFields(array(
'firstname'));
259 $result_obj = $user_search->performSearch();
260 $contacts_search_result->mergeEntries($result_obj);
262 $user_search->setFields(array(
'lastname'));
263 $result_obj = $user_search->performSearch();
264 $contacts_search_result->mergeEntries($result_obj);
266 $contacts_search_result->setMaxHits(100000);
267 $contacts_search_result->preventOverwritingMaxhits(
true);
268 $contacts_search_result->filter(ROOT_FOLDER_ID,
true);
271 include_once
'Services/User/classes/class.ilUserFilter.php';
273 $users = array_intersect($users, $relations->getKeys());
276 $tbl_contacts->setTitle($lng->txt(
'mail_addressbook'));
277 $tbl_contacts->setRowTemplate(
'tpl.mail_search_addr_row.html',
'Services/Contact');
279 $has_mail_addr =
false;
282 foreach($users as $user)
286 if(
$_GET[
'ref'] ==
'wsp')
298 $result[$counter][
'login'] = $login;
301 $has_mail_addr =
true;
308 $result[$counter][
'firstname'] = $name[
'firstname'];
309 $result[$counter][
'lastname'] = $name[
'lastname'];
313 $result[$counter][
'firstname'] =
'';
314 $result[$counter][
'lastname'] =
'';
320 if(
$_GET[
'ref'] ==
'wsp')
322 $tbl_contacts->addColumn(
"",
"",
"1%",
true);
326 $tbl_contacts->addColumn($this->lng->txt(
'mail_to') .
'/' . $this->lng->txt(
'cc') .
'/' . $this->lng->txt(
'bc'),
'check',
'10%');
328 $tbl_contacts->addColumn($this->lng->txt(
'login'),
'login',
'15%');
329 $tbl_contacts->addColumn($this->lng->txt(
'firstname'),
'firstname',
'15%');
330 $tbl_contacts->addColumn($this->lng->txt(
'lastname'),
'lastname',
'15%');
333 foreach(
$result as $key => $val)
335 if($val[
'email'] ==
'')
$result[$key][
'email'] =
' ';
338 $tbl_contacts->addColumn($this->lng->txt(
'email'),
'email',
"15%");
340 $tbl_contacts->setData(
$result);
342 $tbl_contacts->setDefaultOrderField(
'login');
343 $tbl_contacts->setPrefix(
'addr_');
344 $tbl_contacts->enable(
'select_all');
345 $tbl_contacts->setSelectAllCheckbox(
'search_name_to_addr');
346 $tbl_contacts->setFormName(
'recipients');
348 $this->tpl->setVariable(
'TABLE_ADDR', $tbl_contacts->getHTML());
355 $query_parser->setMinWordLength(3);
356 $query_parser->parse();
359 $user_search->enableActiveCheck(
true);
360 $user_search->setFields(array(
'login'));
361 $result_obj = $user_search->performSearch();
362 $all_results->mergeEntries($result_obj);
364 $user_search->setFields(array(
'firstname'));
365 $result_obj = $user_search->performSearch();
366 $all_results->mergeEntries($result_obj);
368 $user_search->setFields(array(
'lastname'));
369 $result_obj = $user_search->performSearch();
370 $all_results->mergeEntries($result_obj);
372 $all_results->setMaxHits(100000);
373 $all_results->preventOverwritingMaxhits(
true);
374 $all_results->filter(ROOT_FOLDER_ID,
true);
377 include_once
'Services/User/classes/class.ilUserFilter.php';
382 $tbl_users->setTitle($lng->txt(
'system') .
': ' . $lng->txt(
'persons'));
383 $tbl_users->setRowTemplate(
'tpl.mail_search_users_row.html',
'Services/Contact');
387 foreach($users as $user)
391 if(
$_GET[
"ref"] !=
"wsp")
401 $result[$counter][
'login'] = $login;
406 $result[$counter][
'firstname'] = $name[
'firstname'];
407 $result[$counter][
'lastname'] = $name[
'lastname'];
411 $result[$counter][
'firstname'] =
'';
412 $result[$counter][
'lastname'] =
'';
417 $has_mail_usr =
true;
424 if(
$_GET[
"ref"] !=
"wsp")
426 $tbl_users->addColumn($this->lng->txt(
'mail_to') .
'/' . $this->lng->txt(
'cc') .
'/' . $this->lng->txt(
'bc'),
'check',
'10%');
430 $tbl_users->addColumn(
"",
"",
"1%");
432 $tbl_users->addColumn($this->lng->txt(
'login'),
'login',
'15%');
433 $tbl_users->addColumn($this->lng->txt(
'firstname'),
'firstname',
'15%');
434 $tbl_users->addColumn($this->lng->txt(
'lastname'),
'lastname',
'15%');
435 if($has_mail_usr ==
true)
437 foreach(
$result as $key => $val)
439 if($val[
'email'] ==
'')
$result[$key][
'email'] =
' ';
442 $tbl_users->addColumn($this->lng->txt(
'email'),
'email',
'15%');
446 $tbl_users->setDefaultOrderField(
'login');
447 $tbl_users->setPrefix(
'usr_');
448 $tbl_users->enable(
'select_all');
449 $tbl_users->setSelectAllCheckbox(
'search_name_to_usr');
450 $tbl_users->setFormName(
'recipients');
452 $this->tpl->setVariable(
'TABLE_USERS', $tbl_users->getHTML());
455 include_once
'Services/Search/classes/class.ilQueryParser.php';
456 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
457 include_once
'Services/Search/classes/class.ilSearchResult.php';
458 include_once
'Services/Membership/classes/class.ilParticipants.php';
464 $query_parser->setMinWordLength(3);
465 $query_parser->parse();
468 $search->setFilter(array(
'grp'));
469 $result = $search->performSearch();
470 $group_results->mergeEntries(
$result);
471 $group_results->setMaxHits(PHP_INT_MAX);
472 $group_results->preventOverwritingMaxhits(
true);
473 $group_results->setRequiredPermission(
'read');
474 $group_results->filter(ROOT_FOLDER_ID,
true);
476 $visible_groups = array();
477 if($group_results->getResults())
480 $tbl_grp->setTitle($lng->txt(
'system') .
': ' . $lng->txt(
'groups'));
481 $tbl_grp->setRowTemplate(
'tpl.mail_search_groups_row.html',
'Services/Contact');
486 $ilObjDataCache->preloadReferenceCache(array_keys($group_results->getResults()));
488 $groups = $group_results->getResults();
489 foreach($groups as $grp)
496 if(
$_GET[
"ref"] !=
"wsp")
499 $roles = $rbacreview->getAssignableChildRoles($grp[
'ref_id']);
500 foreach($roles as $role)
502 if(substr($role[
'title'], 0, 14) ==
'il_grp_member_' ||
503 substr($role[
'title'], 0, 13) ==
'il_grp_admin_' 509 array_push($members,
'#' . $role[
'title']);
512 $str_members = implode(
',', $members);
523 $result[$counter][
'title'] = $ilObjDataCache->lookupTitle($grp[
'obj_id']);
524 $result[$counter][
'description'] = $ilObjDataCache->lookupDescription($grp[
'obj_id']);
527 $visible_groups[] = $grp;
534 if(
$_GET[
"ref"] !=
"wsp")
536 $tbl_grp->addColumn($this->lng->txt(
'mail_to') .
'/' . $this->lng->txt(
'cc') .
'/' . $this->lng->txt(
'bc'),
'check',
'10%');
540 $tbl_grp->addColumn(
"",
"",
"1%");
542 $tbl_grp->addColumn($this->lng->txt(
'title'),
'title',
'15%');
543 $tbl_grp->addColumn($this->lng->txt(
'description'),
'description',
'15%');
545 $tbl_grp->setDefaultOrderField(
'title');
546 $tbl_grp->setPrefix(
'grp_');
547 $tbl_grp->enable(
'select_all');
548 $tbl_grp->setSelectAllCheckbox(
'search_name_to_grp');
549 $tbl_grp->setFormName(
'recipients');
551 $this->tpl->setVariable(
'TABLE_GRP', $tbl_grp->getHTML());
555 if(count($users) || count($visible_groups) || count($relations))
558 $this->tpl->setVariable(
"ALT_ARROW",
'');
560 if(
$_GET[
"ref"] !=
"wsp")
562 $this->tpl->setVariable(
'BUTTON_ADOPT', $this->lng->txt(
'adopt'));
566 $this->tpl->setVariable(
'BUTTON_ADOPT', $this->lng->txt(
'wsp_share_with_users'));
571 $this->lng->loadLanguageModule(
'search');
575 if(
$_GET[
"ref"] !=
"wsp")
583 if(!is_array($a_obj_ids))
585 $a_obj_ids = array($a_obj_ids);
588 $existing = $this->wsp_access_handler->getPermissions($this->wsp_node_id);
590 foreach($a_obj_ids as $object_id)
592 if(!in_array($object_id, $existing))
594 $added = $this->wsp_access_handler->addPermission($this->wsp_node_id, $object_id);
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static _lookupLogin($a_user_id)
lookup login
static _lookupName($a_user_id)
lookup user name
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
__construct($wsp_access_handler=null, $wsp_node_id=null)
_lookupPref($a_usr_id, $a_keyword)
static getInstance()
Singelton get instance.
static hasParticipantListAccess($a_obj_id, $a_usr_id=null)
Check if (current) user has access to the participant list.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static _getUserSearchInstance($query_parser)
get reference of ilLikeUserSearch
static encode($mixed, $suppress_native=false)
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
setSize($a_size)
Set Size.
This class represents a text property in a property form.
_lookupEmail($a_user_id)
Lookup email.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
addPermission($a_obj_ids)
static _getObjectSearchInstance($query_parser)
get reference of ilFulltext/LikeObjectSearch.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
static formCheckbox($checked, $varname, $value, $disabled=false)
??? public