{
global $rbacsystem,
$lng, $ilUser,
$ilCtrl, $rbacreview;
$this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.mail_search.html", "Services/Contact");
$this->tpl->setVariable("HEADER", $this->lng->txt("mail"));
$this->tpl->setVariable("ACTION", $this->ctrl->getFormAction($this));
include_once 'Services/Form/classes/class.ilPropertyFormGUI.php';
$form->setTitle($this->lng->txt('search_recipients'));
$form->setId('search_rcp');
$form->setFormAction($ilCtrl->getFormAction($this, 'search'));
if (strlen(trim(
$_SESSION[
"mail_search_search"])) > 0)
{
}
$form->addItem($inp);
$chb =
new ilCheckboxInputGUI($this->lng->txt(
"mail_search_addressbook"),
'type_addressbook');
if (
$_SESSION[
'mail_search_type_addressbook'])
$inp->addSubItem($chb);
$inp->addSubItem($chb);
$form->addCommandButton('search', $this->lng->txt("search"));
$form->addCommandButton('cancel', $this->lng->txt("cancel"));
$this->tpl->setVariable('SEARCHFORM', $form->getHtml());
if (strlen(trim(
$_SESSION[
"mail_search_search"])) > 0)
{
}
{
$this->tpl->setVariable('CHECKED_TYPE_SYSTEM', "checked=\"checked\"");
}
else
{
if (
$_SESSION[
'mail_search_type_addressbook']) $this->tpl->setVariable(
'CHECKED_TYPE_ADDRESSBOOK',
"checked=\"checked\"");
if (
$_SESSION[
'mail_search_type_system'])$this->tpl->setVariable(
'CHECKED_TYPE_SYSTEM',
"checked=\"checked\"");
}
if (
$_SESSION[
'mail_search_type_addressbook'] && strlen(trim(
$_SESSION[
"mail_search_search"])) >= 3)
{
if (count($entries))
{
$tbl_addr->setTitle($lng->txt('mail_addressbook'));
$tbl_addr->setRowTemplate('tpl.mail_search_addr_row.html', 'Services/Contact');
$result = array();
$counter = 0;
foreach ($entries as $entry)
{
$result[$counter][
'check'] =
ilUtil::formCheckbox(0,
'search_name_to_addr[]', ($entry[
'login'] ? $entry[
'login'] : $entry[
'email'])) .
ilUtil::formCheckbox(0,
'search_name_cc[]', ($entry[
'login'] ? $entry[
'login'] : $entry[
'email'])) .
ilUtil::formCheckbox(0,
'search_name_bcc[]', ($entry[
'login'] ? $entry[
'login'] : $entry[
'email']));
$result[$counter]['login'] = $entry['login'];
$result[$counter]['firstname'] = $entry['firstname'];
$result[$counter]['lastname'] = $entry['lastname'];
{
$has_mail_addr = true;
$result[$counter]['email'] = $entry['email'];
}
++$counter;
}
$tbl_addr->addColumn($this->lng->txt('mail_to') . '/' . $this->lng->txt('cc') . '/' . $this->lng->txt('bc'), 'check', '10%');
$tbl_addr->addColumn($this->lng->txt('login'), 'login', "15%");
$tbl_addr->addColumn($this->lng->txt('firstname'), 'firstname', "15%");
$tbl_addr->addColumn($this->lng->txt('lastname'), 'lastname', "15%");
if ($has_mail_addr)
{
foreach ($result as $key => $val)
{
if ($val['email'] == '') $result[$key]['email'] = ' ';
}
$tbl_addr->addColumn($this->lng->txt('email'), 'email', "15%");
}
$tbl_addr->setData($result);
$tbl_addr->setDefaultOrderField('login');
$tbl_addr->setPrefix('addr_');
$tbl_addr->enable('select_all');
$tbl_addr->setSelectAllCheckbox('search_name_to_addr');
$tbl_addr->setFormName('recipients');
$this->tpl->setVariable('TABLE_ADDR', $tbl_addr->getHTML());
}
}
if (
$_SESSION[
'mail_search_type_system'] && strlen(trim(
$_SESSION[
"mail_search_search"])) >= 3)
{
include_once 'Services/Search/classes/class.ilQueryParser.php';
include_once 'Services/Search/classes/class.ilObjectSearchFactory.php';
include_once 'Services/Search/classes/class.ilSearchResult.php';
$query_parser->setMinWordLength(3);
$query_parser->parse();
$user_search->enableActiveCheck(true);
$user_search->setFields(array('login'));
$result_obj = $user_search->performSearch();
$all_results->mergeEntries($result_obj);
$user_search->setFields(array('firstname'));
$result_obj = $user_search->performSearch();
$all_results->mergeEntries($result_obj);
$user_search->setFields(array('lastname'));
$result_obj = $user_search->performSearch();
$all_results->mergeEntries($result_obj);
$all_results->setMaxHits(100000);
$all_results->preventOverwritingMaxhits(true);
include_once './Services/User/classes/class.ilUserFilter.php';
if (count($users))
{
$tbl_users->setTitle($lng->txt('system').': '.$lng->txt('persons'));
$tbl_users->setRowTemplate('tpl.mail_search_users_row.html','Services/Contact');
$result = array();
$counter = 0;
foreach ($users as $user)
{
$result[$counter]['login'] = $login;
{
$result[$counter][
'firstname'] =
$name[
'firstname'];
$result[$counter][
'lastname'] =
$name[
'lastname'];
}
else
{
$result[$counter]['firstname'] = '';
$result[$counter]['lastname'] = '';
}
{
$has_mail_usr = true;
}
++$counter;
}
$tbl_users->addColumn($this->lng->txt('mail_to') . '/' . $this->lng->txt('cc') . '/' . $this->lng->txt('bc'), 'check', '10%');
$tbl_users->addColumn($this->lng->txt('login'), 'login', '15%');
$tbl_users->addColumn($this->lng->txt('firstname'), 'firstname', '15%');
$tbl_users->addColumn($this->lng->txt('lastname'), 'lastname', '15%');
if ($has_mail_usr == true)
{
foreach ($result as $key => $val)
{
if ($val['email'] == '') $result[$key]['email'] = ' ';
}
$tbl_users->addColumn($this->lng->txt('email'), 'email', '15%');
}
$tbl_users->setData($result);
$tbl_users->setDefaultOrderField('login');
$tbl_users->setPrefix('usr_');
$tbl_users->enable('select_all');
$tbl_users->setSelectAllCheckbox('search_name_to_usr');
$tbl_users->setFormName('recipients');
$this->tpl->setVariable('TABLE_USERS', $tbl_users->getHTML());
}
if (count($groups))
{
$tbl_grp->setTitle($lng->txt('system').': '.$lng->txt('groups'));
$tbl_grp->setRowTemplate('tpl.mail_search_groups_row.html','Services/Contact');
$result = array();
$counter = 0;
foreach ($groups as $grp)
{
$members = array();
$roles = $rbacreview->getAssignableChildRoles($grp['ref_id']);
foreach ($roles as $role)
{
if (substr($role['title'], 0, 14) == 'il_grp_member_' ||
substr($role['title'], 0, 13) == 'il_grp_admin_')
{
array_push($members, $role['title']);
}
}
$str_members = implode(',',$members);
$result[$counter]['title'] = $grp['title'];
$result[$counter]['description'] = $grp['description'];
++$counter;
}
$tbl_grp->setData($result);
$tbl_grp->addColumn($this->lng->txt('mail_to') . '/' . $this->lng->txt('cc') . '/' . $this->lng->txt('bc'), 'check', '10%');
$tbl_grp->addColumn($this->lng->txt('title'), 'title', '15%');
$tbl_grp->addColumn($this->lng->txt('description'), 'description', '15%');
$tbl_grp->setDefaultOrderField('title');
$tbl_grp->setPrefix('grp_');
$tbl_grp->enable('select_all');
$tbl_grp->setSelectAllCheckbox('search_name_to_grp');
$tbl_grp->setFormName('recipients');
$this->tpl->setVariable('TABLE_GRP', $tbl_grp->getHTML());
}
}
if (count($users) || count($groups) || count($entries))
{
$this->tpl->setVariable("ALT_ARROW", '');
$this->tpl->setVariable('BUTTON_ADOPT', $this->lng->txt('adopt'));
}
else if (strlen(trim(
$_SESSION[
"mail_search_search"])) >= 3)
{
$this->lng->loadLanguageModule('search');
}
$this->tpl->show();
}