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';
58 public function __construct($a_parent_obj, $a_current_folder_id, $a_parent_cmd =
'')
62 $this->lng = $DIC->language();
63 $this->ctrl = $DIC->ctrl();
64 $this->
user = $DIC->user();
66 $this->_currentFolderId = $a_current_folder_id;
67 $this->_parentObject = $a_parent_obj;
69 $this->
setId(
'mail_folder_tbl_' . $a_current_folder_id);
77 parent::__construct($a_parent_obj, $a_parent_cmd);
79 $this->
setFormAction($this->ctrl->getFormAction($this->_parentObject,
'showFolder'));
83 $this->
setRowTemplate(
'tpl.mail_folder_row.html',
'Services/Mail');
99 $this->
addColumn($this->lng->txt(
'personal_picture'),
'',
'10%');
101 $this->
addColumn($this->lng->txt(
'recipient'),
'rcp_to',
'25%');
103 $this->
addColumn($this->lng->txt(
'sender'),
'from',
'25%');
107 $this->
addColumn($this->lng->txt(
'search_content'),
'',
'40%');
109 $this->
addColumn($this->lng->txt(
'subject'),
'm_subject',
'40%');
111 $this->
addColumn($this->lng->txt(
'date'),
'send_time',
'20%');
116 $this->_folderNode = $mtree->getNodeData($this->_currentFolderId);
125 $this->
initMultiCommands($this->_parentObject->mbox->getActions($this->_currentFolderId));
139 if (null === $a_bool) {
143 $this->_isDraftsFolder = $a_bool;
157 if (null === $a_bool) {
161 $this->_isSentFolder = $a_bool;
175 if (null === $a_bool) {
179 $this->_isTrashFolder = $a_bool;
193 if ($this->_folderNode[
'm_type'] ==
'trash' && $this->
getNumerOfMails() > 0) {
194 $this->
addCommandButton(
'askForEmptyTrash', $this->lng->txt(
'mail_empty_trash'));
210 if (
$key ==
'moveMails') {
211 $folders = $this->_parentObject->mbox->getSubFolders();
212 foreach ($folders as $folder) {
213 if ($folder[
'type'] !=
'trash' ||
216 if ($folder[
'type'] !=
'user_folder') {
217 $label =
$action .
' ' . $this->lng->txt(
'mail_' . $folder[
'title']) .
218 ($folder[
'type'] ==
'trash' ?
' (' . $this->lng->txt(
'delete') .
')' :
'');
244 $this->_selectedItems = $a_selected_items;
265 include_once
'Services/Search/classes/class.ilSearchSettings.php';
277 if ($this->_folderNode[
'm_type'] ==
'user_folder') {
278 $txt_folder = $this->_folderNode[
'title'];
279 $img_folder =
'icon_user_folder.png';
281 $txt_folder = $this->lng->txt(
'mail_' . $this->_folderNode[
'title']);
282 $img_folder =
'icon' . substr($this->_folderNode[
'title'], 1) .
'.png';
287 include_once
'Services/Mail/classes/class.ilMailLuceneQueryParser.php';
289 $query_parser->setFields(
array(
290 'title' => (
bool) $this->filter[
'mail_filter_subject'],
291 'content' => (
bool) $this->filter[
'mail_filter_body'],
292 'mattachment' => (
bool) $this->filter[
'mail_filter_attach'],
293 'msender' => (
bool) $this->filter[
'mail_filter_sender'],
294 'mrcp' => (
bool) $this->filter[
'mail_filter_recipients']
296 $query_parser->parse();
298 require_once
'Services/Mail/classes/class.ilMailLuceneSearcher.php';
299 require_once
'Services/Mail/classes/class.ilMailSearchResult.php';
334 if (
'mail_search_empty_result' == $e->getMessage()) {
344 foreach (
$data[
'set'] as $mail) {
345 if ($mail[
'sender_id'] && $mail[
'sender_id'] != ANONYMOUS_USER_ID) {
346 $user_ids[$mail[
'sender_id']] = $mail[
'sender_id'];
354 foreach (
$data[
'set'] as
$key => $mail) {
358 $mail[
'checked'] =
' checked="checked" ';
363 $this->_parentObject->umail->formatNamesForOutput($mail[
'rcp_to']),
367 if ($mail[
'sender_id'] == ANONYMOUS_USER_ID) {
369 $mail[
'from'] = $mail[
'mail_login'] = $mail[
'alt_sender'] = htmlspecialchars(ilMail::_getIliasMailerName());
373 $mail[
'img_sender'] =
$user->getPersonalPicturePath(
'xxsmall');
374 $mail[
'from'] = $mail[
'mail_login'] = $mail[
'alt_sender'] = htmlspecialchars(
$user->getPublicName());
376 $mail[
'from'] = $mail[
'mail_login'] = $mail[
'import_name'] .
' (' . $this->lng->txt(
'user_deleted') .
')';
382 $this->ctrl->setParameterByClass(
'ilmailformgui',
'mail_id', $mail[
'mail_id']);
383 $this->ctrl->setParameterByClass(
'ilmailformgui',
'type',
'draft');
384 $link_mark_as_read = $this->ctrl->getLinkTargetByClass(
'ilmailformgui');
385 $this->ctrl->clearParametersByClass(
'ilmailformgui');
387 $this->ctrl->setParameter($this->_parentObject,
'mail_id', $mail[
'mail_id']);
388 $link_mark_as_read = $this->ctrl->getLinkTarget($this->_parentObject,
'showMail');
389 $this->ctrl->clearParameters($this->_parentObject);
391 $css_class = $mail[
'm_status'] ==
'read' ?
'mailread' :
'mailunread';
394 $search_result =
array();
395 foreach (
$result->getFields($mail[
'mail_id']) as $content) {
396 if (
'title' == $content[0]) {
397 $mail[
'msr_subject_link_read'] = $link_mark_as_read;
398 $mail[
'msr_subject_mailclass'] = $css_class;
399 $mail[
'msr_subject'] = $content[1];
401 $search_result[] = $content[1];
404 $mail[
'msr_data'] = implode(
'', array_map(
function ($value) {
405 return '<p>' . $value .
'</p>';
408 if (!$mail[
'msr_subject']) {
409 $mail[
'msr_subject_link_read'] = $link_mark_as_read;
410 $mail[
'msr_subject_mailclass'] = $css_class;
411 $mail[
'msr_subject'] = htmlspecialchars($mail[
'm_subject']);
414 $mail[
'mail_link_read'] = $link_mark_as_read;
415 $mail[
'mailclass'] = $css_class;
416 $mail[
'mail_subject'] = htmlspecialchars($mail[
'm_subject']);
443 protected function setTitleData($folderLabel, $mailCount, $unreadCount, $imgFolder)
445 $titleTemplate =
new ilTemplate(
'tpl.mail_folder_title.html',
true,
true,
'Services/Mail');
446 $titleTemplate->setVariable(
'TXT_FOLDER', $folderLabel);
447 $titleTemplate->setVariable(
'MAIL_COUNT', $mailCount);
448 $titleTemplate->setVariable(
'TXT_MAIL_S', $this->lng->txt(
'mail_s'));
449 $titleTemplate->setVariable(
'MAIL_COUNT_UNREAD', $unreadCount);
450 $titleTemplate->setVariable(
'TXT_UNREAD', $this->lng->txt(
'unread'));
452 parent::setTitle($titleTemplate->get(), $imgFolder);
466 $this->_number_of_mails = $a_number_of_mails;
490 foreach ($a_set as
$key => $value) {
491 $this->tpl->setVariable(strtoupper(
$key), $value);
497 $this->filter =
array();
499 include_once
'Services/Mail/classes/Form/class.ilMailQuickFilterInputGUI.php';
503 $ti->readFromSession();
504 $this->filter[
'mail_filter'] = $ti->getValue();
506 include_once
'Services/Form/classes/class.ilCheckboxInputGUI.php';
509 $this->sub_filter[] = $ci =
new ilCheckboxInputGUI($this->lng->txt(
'mail_filter_recipients'),
'mail_filter_recipients');
512 $ti->addSubItem($ci);
513 $ci->setParent($this);
514 $ci->readFromSession();
515 $this->filter[
'mail_filter_recipients'] = (int) $ci->getChecked();
517 $this->sub_filter[] = $ci =
new ilCheckboxInputGUI($this->lng->txt(
'mail_filter_sender'),
'mail_filter_sender');
520 $ti->addSubItem($ci);
521 $ci->setParent($this);
522 $ci->readFromSession();
523 $this->filter[
'mail_filter_sender'] = (int) $ci->getChecked();
526 $this->sub_filter[] = $ci =
new ilCheckboxInputGUI($this->lng->txt(
'mail_filter_subject'),
'mail_filter_subject');
529 $ti->addSubItem($ci);
530 $ci->setParent($this);
531 $ci->readFromSession();
532 $this->filter[
'mail_filter_subject'] = (int) $ci->getChecked();
534 $this->sub_filter[] = $ci =
new ilCheckboxInputGUI($this->lng->txt(
'mail_filter_body'),
'mail_filter_body');
537 $ti->addSubItem($ci);
538 $ci->setParent($this);
539 $ci->readFromSession();
540 $this->filter[
'mail_filter_body'] = (int) $ci->getChecked();
542 $this->sub_filter[] = $ci =
new ilCheckboxInputGUI($this->lng->txt(
'mail_filter_attach'),
'mail_filter_attach');
545 $ti->addSubItem($ci);
546 $ci->setParent($this);
547 $ci->readFromSession();
548 $this->filter[
'mail_filter_attach'] = (int) $ci->getChecked();
556 parent::writeFilterToSession();
558 foreach ($this->sub_filter as $item) {
559 if ($item->checkInput()) {
560 $item->setValueByArray(
$_POST);
561 $item->writeToSession();
571 parent::resetFilter();
573 foreach ($this->sub_filter as $item) {
574 if ($item->checkInput()) {
575 $item->setValueByArray(
$_POST);
576 $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.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
getNumerOfMails()
Returns the total number of mails of the current folder public.
setExternalSegmentation($a_val)
Set external segmentation.
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false)
Format a date public.
static _getMailBoxListData()
_getMailBoxListData
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.
__construct($a_parent_obj, $a_current_folder_id, $a_parent_cmd='')
Constructor public.
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 preloadUserObjects(array $usr_ids)
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.
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.
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.
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.