4 require_once
'Services/Table/classes/class.ilTable2GUI.php';
5 require_once
'Services/Mail/classes/class.ilMailUserCache.php';
6 require_once
'Services/Mail/classes/class.ilMailBoxQuery.php';
46 public function __construct($a_parent_obj, $a_current_folder_id, $a_parent_cmd =
'')
57 $this->_currentFolderId = $a_current_folder_id;
58 $this->_parentObject = $a_parent_obj;
60 $this->
setId(
'mail_folder_tbl_'.$a_current_folder_id);
68 parent::__construct($a_parent_obj, $a_parent_cmd);
70 $this->
setFormAction($this->ctrl->getFormAction($this->_parentObject,
'showFolder'));
74 $this->
setRowTemplate(
'tpl.mail_folder_row.html',
'Services/Mail');
92 $this->
addColumn($this->lng->txt(
'personal_picture'),
'',
'10%');
94 $this->
addColumn($this->lng->txt(
'recipient'),
'rcp_to',
'25%');
96 $this->
addColumn($this->lng->txt(
'sender'),
'from',
'25%');
100 $this->
addColumn($this->lng->txt(
'search_content'),
'',
'40%');
104 $this->
addColumn($this->lng->txt(
'subject'),
'm_subject',
'40%');
106 $this->
addColumn($this->lng->txt(
'date'),
'send_time',
'20%');
109 $mtree =
new ilTree($ilUser->getId());
111 $this->_folderNode = $mtree->getNodeData($this->_currentFolderId);
114 $this->fetchTableData();
120 $this->
initMultiCommands($this->_parentObject->mbox->getActions($this->_currentFolderId));
139 $this->_isDraftsFolder = $a_bool;
158 $this->_isSentFolder = $a_bool;
177 $this->_isTrashFolder = $a_bool;
191 if($this->_folderNode[
'm_type'] ==
'trash' && $this->
getNumerOfMails() > 0)
193 $this->
addCommandButton(
'askForEmptyTrash', $this->lng->txt(
'mail_empty_trash'));
208 foreach($actions as $key => $action)
210 if($key ==
'moveMails')
212 $folders = $this->_parentObject->mbox->getSubFolders();
213 foreach($folders as $folder)
215 if($folder[
'type'] !=
'trash' ||
219 if($folder[
'type'] !=
'user_folder')
221 $label = $action .
' ' . $this->lng->txt(
'mail_' . $folder[
'title']) .
222 ($folder[
'type'] ==
'trash' ?
' (' . $this->lng->txt(
'delete') .
')' :
'');
226 $this->
addMultiCommand($folder[
'obj_id'], $action .
' ' . $folder[
'title']);
249 $this->_selectedItems = $a_selected_items;
270 include_once
'Services/Search/classes/class.ilSearchSettings.php';
283 protected function fetchTableData()
291 if($this->_folderNode[
'm_type'] ==
'user_folder')
293 $txt_folder = $this->_folderNode[
'title'];
294 $img_folder =
'icon_user_folder.png';
298 $txt_folder = $this->lng->txt(
'mail_' . $this->_folderNode[
'title']);
299 $img_folder =
'icon' . substr($this->_folderNode[
'title'], 1) .
'.png';
306 include_once
'Services/Mail/classes/class.ilMailLuceneQueryParser.php';
308 $query_parser->setFields(
array(
309 'title' => (
bool)$this->filter[
'mail_filter_subject'],
310 'content' => (
bool)$this->filter[
'mail_filter_body'],
311 'mattachment' => (
bool)$this->filter[
'mail_filter_attach'],
312 'msender' => (
bool)$this->filter[
'mail_filter_sender'],
313 'mrcp' => (
bool)$this->filter[
'mail_filter_recipients']
315 $query_parser->parse();
317 require_once
'Services/Mail/classes/class.ilMailLuceneSearcher.php';
318 require_once
'Services/Mail/classes/class.ilMailSearchResult.php';
344 $data = ilMailBoxQuery::_getMailBoxListData();
352 $data = ilMailBoxQuery::_getMailBoxListData();
359 if(
'mail_search_empty_result' == $e->getMessage())
373 foreach(
$data[
'set'] as $mail)
375 if($mail[
'sender_id'] && $mail[
'sender_id'] != ANONYMOUS_USER_ID)
377 $user_ids[$mail[
'sender_id']] = $mail[
'sender_id'];
381 ilMailUserCache::preloadUserObjects($user_ids);
385 foreach(
$data[
'set'] as $key => $mail)
391 $mail[
'checked'] =
' checked="checked" ';
397 $this->_parentObject->umail->formatNamesForOutput($mail[
'rcp_to']), false
402 if($mail[
'sender_id'] == ANONYMOUS_USER_ID)
405 $mail[
'from'] = $mail[
'mail_login'] = $mail[
'alt_sender'] = htmlspecialchars(ilMail::_getIliasMailerName());
412 $mail[
'img_sender'] = $user->getPersonalPicturePath(
'xxsmall');
413 $mail[
'from'] = $mail[
'mail_login'] = $mail[
'alt_sender'] = htmlspecialchars($user->getPublicName());
417 $mail[
'from'] = $mail[
'mail_login'] = $mail[
'import_name'] .
' (' . $this->lng->txt(
'user_deleted') .
')';
424 $this->ctrl->setParameterByClass(
'ilmailformgui',
'mail_id', $mail[
'mail_id']);
425 $this->ctrl->setParameterByClass(
'ilmailformgui',
'type',
'draft');
426 $link_mark_as_read = $this->ctrl->getLinkTargetByClass(
'ilmailformgui');
427 $this->ctrl->clearParametersByClass(
'ilmailformgui');
431 $this->ctrl->setParameter($this->_parentObject,
'mail_id', $mail[
'mail_id']);
432 $link_mark_as_read = $this->ctrl->getLinkTarget($this->_parentObject,
'showMail');
433 $this->ctrl->clearParameters($this->_parentObject);
435 $css_class = $mail[
'm_status'] ==
'read' ?
'mailread' :
'mailunread';
439 $search_result =
array();
440 foreach(
$result->getFields($mail[
'mail_id']) as $content)
442 if(
'title' == $content[0])
444 $mail[
'msr_subject_link_read'] = $link_mark_as_read;
445 $mail[
'msr_subject_mailclass'] = $css_class;
446 $mail[
'msr_subject'] = $content[1];
450 $search_result[] = $content[1];
453 $mail[
'msr_data'] = implode(
'', array_map(
function($value) {
454 return '<p>'.$value.
'</p>';
457 if(!$mail[
'msr_subject'])
459 $mail[
'msr_subject_link_read'] = $link_mark_as_read;
460 $mail[
'msr_subject_mailclass'] = $css_class;
461 $mail[
'msr_subject'] = htmlspecialchars($mail[
'm_subject']);
466 $mail[
'mail_link_read'] = $link_mark_as_read;
467 $mail[
'mailclass'] = $css_class;
468 $mail[
'mail_subject'] = htmlspecialchars($mail[
'm_subject']);
473 $data[
'set'][$key] = $mail;
495 protected function setTitleData($folderLabel, $mailCount, $unreadCount, $imgFolder)
497 $titleTemplate =
new ilTemplate(
'tpl.mail_folder_title.html',
true,
true,
'Services/Mail');
498 $titleTemplate->setVariable(
'TXT_FOLDER', $folderLabel);
499 $titleTemplate->setVariable(
'MAIL_COUNT', $mailCount);
500 $titleTemplate->setVariable(
'TXT_MAIL_S', $this->lng->txt(
'mail_s'));
501 $titleTemplate->setVariable(
'MAIL_COUNT_UNREAD', $unreadCount);
502 $titleTemplate->setVariable(
'TXT_UNREAD', $this->lng->txt(
'unread'));
504 parent::setTitle($titleTemplate->get(), $imgFolder);
518 $this->_number_of_mails = $a_number_of_mails;
542 foreach($a_set as $key => $value)
544 $this->tpl->setVariable(strtoupper($key), $value);
550 $this->filter =
array();
552 include_once
'Services/Mail/classes/Form/class.ilMailQuickFilterInputGUI.php';
556 $ti->readFromSession();
557 $this->filter[
'mail_filter'] = $ti->getValue();
559 include_once
'Services/Form/classes/class.ilCheckboxInputGUI.php';
563 $this->sub_filter[] = $ci =
new ilCheckboxInputGUI($this->lng->txt(
'mail_filter_recipients'),
'mail_filter_recipients');
566 $ti->addSubItem($ci);
567 $ci->setParent($this);
568 $ci->readFromSession();
569 $this->filter[
'mail_filter_recipients'] = (int)$ci->getChecked();
573 $this->sub_filter[] = $ci =
new ilCheckboxInputGUI($this->lng->txt(
'mail_filter_sender'),
'mail_filter_sender');
576 $ti->addSubItem($ci);
577 $ci->setParent($this);
578 $ci->readFromSession();
579 $this->filter[
'mail_filter_sender'] = (int)$ci->getChecked();
582 $this->sub_filter[] = $ci =
new ilCheckboxInputGUI($this->lng->txt(
'mail_filter_subject'),
'mail_filter_subject');
585 $ti->addSubItem($ci);
586 $ci->setParent($this);
587 $ci->readFromSession();
588 $this->filter[
'mail_filter_subject'] = (int)$ci->getChecked();
590 $this->sub_filter[] = $ci =
new ilCheckboxInputGUI($this->lng->txt(
'mail_filter_body'),
'mail_filter_body');
593 $ti->addSubItem($ci);
594 $ci->setParent($this);
595 $ci->readFromSession();
596 $this->filter[
'mail_filter_body'] = (int)$ci->getChecked();
598 $this->sub_filter[] = $ci =
new ilCheckboxInputGUI($this->lng->txt(
'mail_filter_attach'),
'mail_filter_attach');
601 $ti->addSubItem($ci);
602 $ci->setParent($this);
603 $ci->readFromSession();
604 $this->filter[
'mail_filter_attach'] = (int)$ci->getChecked();
612 parent::writeFilterToSession();
614 foreach($this->sub_filter as $item)
616 if($item->checkInput())
618 $item->setValueByArray(
$_POST);
619 $item->writeToSession();
629 parent::resetFilter();
631 foreach($this->sub_filter as $item)
633 if($item->checkInput())
635 $item->setValueByArray(
$_POST);
636 $item->clearFromSession();
setSubmitFormOnEnter($a_val)
Set submit form on enter.
addCommandButton($a_cmd, $a_text, $a_onclick='', $a_id="", $a_class=null)
Add Command button.
getSelectedItems()
Get all selected items public.
setExternalSorting($a_val)
Set external sorting.
__construct($a_parent_obj, $a_parent_cmd="", $a_template_context="")
Constructor.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
Base class for ILIAS Exception handling.
getNumerOfMails()
Returns the total number of mails of the current folder public.
setExternalSegmentation($a_val)
Set external segmentation.
resetOffset($a_in_determination=false)
Reset offset.
setTitleData($folderLabel, $mailCount, $unreadCount, $imgFolder)
Function to set the table title protected.
addFilterItem($a_input_item, $a_optional=false)
Add filter item.
getOrderDirection()
Get order direction.
resetFilter()
Reset filter.
setNumerOfMails($a_number_of_mails)
Set the total number of mails of the current folder public.
isDraftFolder($a_bool=null)
Setter/Getter for folder status public.
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
setSelectedItems($a_selected_items)
Set the selected items public.
setResetCommand($a_val, $a_caption=null)
Set reset filter command.
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
special template class to simplify handling of ITX/PEAR
addMultiCommand($a_cmd, $a_text)
Add Command button.
static formatDate(ilDateTime $date)
Format a date public.
static getUserObjectById($usr_id)
setTableNames($a_table_tree, $a_table_obj_data, $a_table_obj_reference="")
set table names The primary key of the table containing your object_data must be 'obj_id' You may use...
prepareHTML()
Call this before using getHTML() public.
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
setRowTemplate($a_template, $a_template_dir="")
Set row template.
Create styles array
The data for the language used.
isTrashFolder($a_bool=null)
Setter/Getter for folder status public.
determineOffsetAndOrder($a_omit_offset=false)
Determine offset and order.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
isSentFolder($a_bool=null)
Setter/Getter for folder status public.
writeFilterToSession()
Write filter values to session.
static htmlencodePlainString($a_str, $a_make_links_clickable, $a_detect_goto_links=false)
Encodes a plain text string into HTML for display in a browser.
setSelectAllCheckbox($a_select_all_checkbox)
Set the name of the checkbox that should be toggled with a select all button.
setMaxCount($a_max_count)
set max.
setEnableTitle($a_enabletitle)
Set Enable Title.
addColumn($a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="", $a_tooltip_with_html=false)
Add a column to the header.
initCommandButtons()
Performs special actions for folders such as user folders, trash and local folders private...
fillRow($a_set)
Fill row public.
initMultiCommands($actions)
initMultiCommands private
setFilterCommand($a_val, $a_caption=null)
Set filter command.