ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
All Data Structures Namespaces Files Functions Variables Modules Pages
ilMailFormGUI Class Reference
+ Collaboration diagram for ilMailFormGUI:

Public Member Functions

 __construct ()
 
 executeCommand ()
 
 sendMessage ()
 
 saveDraft ()
 
 searchUsers ($save=true)
 
 searchCoursesTo ()
 
 searchGroupsTo ()
 
 search ()
 
 cancelSearch ()
 
 editAttachments ()
 
 returnFromAttachments ()
 
 searchResults ()
 
 mailUser ()
 
 mailRole ()
 
 replyMail ()
 
 mailAttachment ()
 
 showForm ()
 
 lookupRecipientAsync ()
 
 cancelMail ()
 
 searchMailingListsTo ()
 

Protected Member Functions

 decodeAttachmentFiles (array $files)
 

Private Attributes

 $tpl = null
 
 $ctrl = null
 
 $lng = null
 
 $umail = null
 
 $mbox = null
 
 $mfile = null
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilMailFormGUI::__construct ( )

Definition at line 27 of file class.ilMailFormGUI.php.

References $_GET, $_POST, $ilCtrl, $ilUser, $lng, and $tpl.

28  {
29  global $tpl, $ilCtrl, $lng, $ilUser;
30 
31  $this->tpl = $tpl;
32  $this->ctrl = $ilCtrl;
33  $this->lng = $lng;
34 
35  $this->umail = new ilFormatMail($ilUser->getId());
36  $this->mfile = new ilFileDataMail($ilUser->getId());
37  $this->mbox = new ilMailBox($ilUser->getId());
38 
39  if(isset($_POST['mobj_id']) && (int)$_POST['mobj_id'])
40  {
41  $_GET['mobj_id'] = $_POST['mobj_id'];
42  }
43  // IF THERE IS NO OBJ_ID GIVEN GET THE ID OF MAIL ROOT NODE
44  if(!(int)$_GET['mobj_id'])
45  {
46  $_GET['mobj_id'] = $this->mbox->getInboxFolder();
47  }
48  $_GET['mobj_id'] = (int)$_GET['mobj_id'];
49  $this->ctrl->saveParameter($this, 'mobj_id');
50  }
$_POST['username']
Definition: cron.php:12
$_GET["client_id"]
This class handles all operations on files (attachments) in directory ilias_data/mail.
global $ilCtrl
Definition: ilias.php:18
Class UserMail this class handles user mails.
global $ilUser
Definition: imgupload.php:15

Member Function Documentation

◆ cancelMail()

ilMailFormGUI::cancelMail ( )

Definition at line 754 of file class.ilMailFormGUI.php.

References $_POST, $ilUser, ilMailFormCall\getRefererRedirectUrl(), ilMailFormCall\isRefererStored(), ilUtil\redirect(), ilUtil\securePlainString(), and showForm().

755  {
758  else
759  return $this->showForm();
760  }
static redirect($a_script)
http redirect to other script
+ Here is the call graph for this function:

◆ cancelSearch()

ilMailFormGUI::cancelSearch ( )

Definition at line 368 of file class.ilMailFormGUI.php.

References $_SESSION, and searchResults().

369  {
370  unset($_SESSION["mail_search"]);
371  $this->searchResults();
372  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
+ Here is the call graph for this function:

◆ decodeAttachmentFiles()

ilMailFormGUI::decodeAttachmentFiles ( array  $files)
protected
Parameters
array$files
Returns
array

Definition at line 114 of file class.ilMailFormGUI.php.

References $GLOBALS.

Referenced by saveDraft(), and sendMessage().

115  {
116  $decodedFiles = array();
117 
118  foreach($files as $value)
119  {
120  if(is_file($this->mfile->getMailPath() . '/' . $GLOBALS['ilUser']->getId() . '_' . urldecode($value)))
121  {
122  $decodedFiles[] = urldecode($value);
123  }
124  }
125 
126  return $decodedFiles;
127  }
$GLOBALS['ct_recipient']
+ Here is the caller graph for this function:

◆ editAttachments()

ilMailFormGUI::editAttachments ( )

Definition at line 374 of file class.ilMailFormGUI.php.

References $_POST, $_SESSION, and ilUtil\securePlainString().

375  {
376  // decode post values
377  $files = array();
378  if(is_array($_POST['attachments']))
379  {
380  foreach($_POST['attachments'] as $value)
381  {
382  $files[] = urldecode($value);
383  }
384  }
385 
386  // Note: For security reasons, ILIAS only allows Plain text messages.
387  $this->umail->savePostData($_SESSION["AccountId"],
388  $files,
391  ilUtil::securePlainString($_POST["rcp_bcc"]),
392  $_POST["m_type"],
393  ilUtil::securePlainString($_POST["m_email"]),
394  ilUtil::securePlainString($_POST["m_subject"]),
395  ilUtil::securePlainString($_POST["m_message"]),
396  ilUtil::securePlainString($_POST['use_placeholders'])
397  );
398 
399  $this->ctrl->redirectByClass("ilmailattachmentgui");
400  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
$_POST['username']
Definition: cron.php:12
static securePlainString($a_str)
Remove unsecure characters from a plain text string.
+ Here is the call graph for this function:

◆ executeCommand()

ilMailFormGUI::executeCommand ( )

Definition at line 52 of file class.ilMailFormGUI.php.

References $cmd.

53  {
54  $forward_class = $this->ctrl->getNextClass($this);
55  switch($forward_class)
56  {
57  case 'ilmailfoldergui':
58  include_once 'Services/Mail/classes/class.ilMailFolderGUI.php';
59 
60  $this->ctrl->forwardCommand(new ilMailFolderGUI());
61  break;
62 
63  case 'ilmailattachmentgui':
64  include_once 'Services/Mail/classes/class.ilMailAttachmentGUI.php';
65 
66  $this->ctrl->setReturn($this, "returnFromAttachments");
67  $this->ctrl->forwardCommand(new ilMailAttachmentGUI());
68  break;
69 
70  case 'ilmailsearchgui':
71  include_once 'Services/Contact/classes/class.ilMailSearchGUI.php';
72 
73  $this->ctrl->setReturn($this, "searchResults");
74  $this->ctrl->forwardCommand(new ilMailSearchGUI());
75  break;
76 
77  case 'ilmailsearchcoursesgui':
78  include_once 'Services/Contact/classes/class.ilMailSearchCoursesGUI.php';
79 
80  $this->ctrl->setReturn($this, "searchResults");
81  $this->ctrl->forwardCommand(new ilMailSearchCoursesGUI());
82  break;
83 
84  case 'ilmailinglistsgui':
85  include_once 'Services/Contact/classes/class.ilMailingListsGUI.php';
86 
87  $this->ctrl->setReturn($this, 'searchResults');
88  $this->ctrl->forwardCommand(new ilMailingListsGUI());
89  break;
90 
91  case 'ilmailsearchgroupsgui':
92  include_once 'Services/Contact/classes/class.ilMailSearchGroupsGUI.php';
93 
94  $this->ctrl->setReturn($this, "searchResults");
95  $this->ctrl->forwardCommand(new ilMailSearchGroupsGUI());
96  break;
97 
98  default:
99  if (!($cmd = $this->ctrl->getCmd()))
100  {
101  $cmd = "showForm";
102  }
103 
104  $this->$cmd();
105  break;
106  }
107  return true;
108  }
$cmd
Definition: sahs_server.php:35

◆ lookupRecipientAsync()

ilMailFormGUI::lookupRecipientAsync ( )

Definition at line 729 of file class.ilMailFormGUI.php.

References $_REQUEST, $result, ilJsonUtil\encode(), exit, and ilUtil\stripSlashes().

730  {
731  include_once 'Services/JSON/classes/class.ilJsonUtil.php';
732  include_once 'Services/Mail/classes/class.ilMailForm.php';
733 
734  $search = $_REQUEST["term"];
735  $result = array();
736  if (!$search)
737  {
739  exit;
740  }
741 
742  // #14768
743  $quoted = ilUtil::stripSlashes($search);
744  $quoted = str_replace('%', '\%', $quoted);
745  $quoted = str_replace('_', '\_', $quoted);
746 
747  $mailFormObj = new ilMailForm;
748  $result = $mailFormObj->getRecipientAsync("%" . $quoted . "%", ilUtil::stripSlashes($search));
749 
751  exit;
752  }
exit
Definition: login.php:54
$result
static encode($mixed, $suppress_native=false)
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7
+ Here is the call graph for this function:

◆ mailAttachment()

ilMailFormGUI::mailAttachment ( )

Definition at line 432 of file class.ilMailFormGUI.php.

References $_GET, and showForm().

433  {
434  $_GET["type"] = "attach";
435  $this->showForm();
436  }
$_GET["client_id"]
+ Here is the call graph for this function:

◆ mailRole()

ilMailFormGUI::mailRole ( )

Definition at line 420 of file class.ilMailFormGUI.php.

References $_GET, and showForm().

421  {
422  $_GET["type"] = "role";
423  $this->showForm();
424  }
$_GET["client_id"]
+ Here is the call graph for this function:

◆ mailUser()

ilMailFormGUI::mailUser ( )

Definition at line 414 of file class.ilMailFormGUI.php.

References $_GET, and showForm().

415  {
416  $_GET["type"] = "new";
417  $this->showForm();
418  }
$_GET["client_id"]
+ Here is the call graph for this function:

◆ replyMail()

ilMailFormGUI::replyMail ( )

Definition at line 426 of file class.ilMailFormGUI.php.

References $_GET, and showForm().

427  {
428  $_GET["type"] = "reply";
429  $this->showForm();
430  }
$_GET["client_id"]
+ Here is the call graph for this function:

◆ returnFromAttachments()

ilMailFormGUI::returnFromAttachments ( )

Definition at line 402 of file class.ilMailFormGUI.php.

References $_GET, and showForm().

403  {
404  $_GET["type"] = "attach";
405  $this->showForm();
406  }
$_GET["client_id"]
+ Here is the call graph for this function:

◆ saveDraft()

ilMailFormGUI::saveDraft ( )

Definition at line 179 of file class.ilMailFormGUI.php.

References $_POST, $_SESSION, decodeAttachmentFiles(), ilMailFormCall\getRefererRedirectUrl(), ilMailFormCall\isRefererStored(), ilUtil\redirect(), ilUtil\securePlainString(), ilUtil\sendInfo(), and showForm().

180  {
181  if(!$_POST['m_subject'])
182  {
183  $_POST['m_subject'] = 'No title';
184  }
185 
186  $draftsId = $this->mbox->getDraftsFolder();
187 
188  $files = $this->decodeAttachmentFiles(isset($_POST['attachments']) ? (array)$_POST['attachments'] : array());
189 
190  if($errorMessage = $this->umail->validateRecipients(
194  ))
195  {
196  $_POST['attachments'] = $files;
197  ilUtil::sendInfo($errorMessage);
198  $this->showForm();
199  return;
200  }
201 
202  if(isset($_SESSION["draft"]))
203  {
204  // Note: For security reasons, ILIAS only allows Plain text strings in E-Mails.
205  $this->umail->updateDraft($draftsId, $files,
208  ilUtil::securePlainString($_POST["rcp_bcc"]),
209  $_POST["m_type"],
210  ilUtil::securePlainString($_POST["m_email"]),
211  ilUtil::securePlainString($_POST["m_subject"]),
212  ilUtil::securePlainString($_POST["m_message"]),
213  (int)$_SESSION["draft"],
214  (int)ilUtil::securePlainString($_POST['use_placeholders'])
215  );
216  #session_unregister("draft");
217  #ilUtil::sendInfo($this->lng->txt("mail_saved"),true);
218  #ilUtil::redirect("ilias.php?baseClass=ilMailGUI&mobj_id=".$mbox->getInboxFolder());
219 
220  unset($_SESSION["draft"]);
221  ilUtil::sendInfo($this->lng->txt("mail_saved"), true);
222 
225  else
226  $this->ctrl->redirectByClass("ilmailfoldergui");
227  }
228  else
229  {
230  if ($this->umail->sendInternalMail($draftsId,$_SESSION["AccountId"],$files,
231  // Note: For security reasons, ILIAS only allows Plain text strings in E-Mails.
234  ilUtil::securePlainString($_POST["rcp_bcc"]),
235  'read',
236  $_POST["m_type"],
237  ilUtil::securePlainString($_POST["m_email"]),
238  ilUtil::securePlainString($_POST["m_subject"]),
239  ilUtil::securePlainString($_POST["m_message"]),
240  $_SESSION["AccountId"],
241  ilUtil::securePlainString($_POST['use_placeholders'])
242  )
243  )
244  {
245  ilUtil::sendInfo($this->lng->txt("mail_saved"),true);
246  #$this->ctrl->setParameterByClass("ilmailfoldergui", "mobj_id", $this->mbox->getDraftsFolder());
247 
250  else
251  $this->ctrl->redirectByClass("ilmailfoldergui");
252  }
253  else
254  {
255  ilUtil::sendInfo($this->lng->txt("mail_send_error"));
256  }
257  }
258 
259  $this->showForm();
260  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
decodeAttachmentFiles(array $files)
$_POST['username']
Definition: cron.php:12
static securePlainString($a_str)
Remove unsecure characters from a plain text string.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static redirect($a_script)
http redirect to other script
+ Here is the call graph for this function:

◆ search()

ilMailFormGUI::search ( )

Definition at line 344 of file class.ilMailFormGUI.php.

References $_POST, $_SESSION, searchUsers(), and ilUtil\sendInfo().

345  {
346  $_SESSION["mail_search_search"] = $_POST["search"];
347  if(strlen(trim($_SESSION["mail_search_search"])) == 0)
348  {
349  ilUtil::sendInfo($this->lng->txt("mail_insert_query"));
350  $this->searchUsers(false);
351  }
352  else
353  {
354  if(strlen(trim($_SESSION["mail_search_search"])) < 3)
355  {
356  $this->lng->loadLanguageModule('search');
357  ilUtil::sendInfo($this->lng->txt('search_minimum_three'));
358  $this->searchUsers(false);
359  }
360  else
361  {
362  $this->ctrl->setParameterByClass("ilmailsearchgui", "search", urlencode($_SESSION["mail_search_search"]));
363  $this->ctrl->redirectByClass("ilmailsearchgui");
364  }
365  }
366  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
$_POST['username']
Definition: cron.php:12
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
searchUsers($save=true)
+ Here is the call graph for this function:

◆ searchCoursesTo()

ilMailFormGUI::searchCoursesTo ( )

Definition at line 320 of file class.ilMailFormGUI.php.

References $_SESSION.

321  {
322  $this->saveMailBeforeSearch();
323 
324  if($_SESSION['search_crs'])
325  {
326  $this->ctrl->setParameterByClass('ilmailsearchcoursesgui', 'cmd', 'showMembers');
327  }
328 
329  $this->ctrl->setParameterByClass('ilmailsearchcoursesgui', 'ref', 'mail');
330  $this->ctrl->redirectByClass('ilmailsearchcoursesgui');
331  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']

◆ searchGroupsTo()

ilMailFormGUI::searchGroupsTo ( )

Definition at line 336 of file class.ilMailFormGUI.php.

337  {
338  $this->saveMailBeforeSearch();
339 
340  $this->ctrl->setParameterByClass('ilmailsearchgroupsgui', 'ref', 'mail');
341  $this->ctrl->redirectByClass('ilmailsearchgroupsgui');
342  }

◆ searchMailingListsTo()

ilMailFormGUI::searchMailingListsTo ( )

Definition at line 798 of file class.ilMailFormGUI.php.

799  {
800  $this->saveMailBeforeSearch();
801 
802  $this->ctrl->setParameterByClass('ilmailinglistsgui', 'ref', 'mail');
803  $this->ctrl->redirectByClass('ilmailinglistsgui');
804  }

◆ searchResults()

ilMailFormGUI::searchResults ( )

Definition at line 408 of file class.ilMailFormGUI.php.

References $_GET, and showForm().

Referenced by cancelSearch().

409  {
410  $_GET["type"] = "search_res";
411  $this->showForm();
412  }
$_GET["client_id"]
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ searchUsers()

ilMailFormGUI::searchUsers (   $save = true)

Definition at line 262 of file class.ilMailFormGUI.php.

References $_POST, $_SESSION, $ilCtrl, $ilUser, ilUtil\prepareFormOutput(), ilUtil\securePlainString(), and ilTextInputGUI\setSize().

Referenced by search().

263  {
264  global $ilUser, $ilCtrl;
265 
266  $this->tpl->setTitle($this->lng->txt("mail"));
267 
268  if ($save)
269  {
270  // decode post values
271  $files = array();
272  if(is_array($_POST['attachments']))
273  {
274  foreach($_POST['attachments'] as $value)
275  {
276  $files[] = urldecode($value);
277  }
278  }
279 
280  // Note: For security reasons, ILIAS only allows Plain text strings in E-Mails.
281  $this->umail->savePostData($ilUser->getId(),
282  $files,
285  ilUtil::securePlainString($_POST["rcp_bcc"]),
286  $_POST["m_type"],
287  ilUtil::securePlainString($_POST["m_email"]),
288  ilUtil::securePlainString($_POST["m_subject"]),
289  ilUtil::securePlainString($_POST["m_message"]),
290  ilUtil::securePlainString($_POST['use_placeholders'])
291  );
292  }
293  include_once 'Services/Form/classes/class.ilPropertyFormGUI.php';
294  $form = new ilPropertyFormGUI();
295  $form->setId('search_rcp');
296  $form->setTitle($this->lng->txt('search_recipients'));
297  $form->setFormAction($ilCtrl->getFormAction($this, 'search'));
298 
299  $inp = new ilTextInputGUI($this->lng->txt("search_for"), 'search');
300  $inp->setSize(30);
301  $dsDataLink = $ilCtrl->getLinkTarget($this, 'lookupRecipientAsync', '', true, false);
302  $inp->setDataSource($dsDataLink);
303 
304  if (strlen(trim($_SESSION["mail_search_search"])) > 0)
305  {
306  $inp->setValue(ilUtil::prepareFormOutput(trim($_SESSION["mail_search_search"]), true));
307  }
308  $form->addItem($inp);
309 
310  $form->addCommandButton('search', $this->lng->txt("search"));
311  $form->addCommandButton('cancelSearch', $this->lng->txt("cancel"));
312 
313  $this->tpl->setContent($form->getHtml());
314  $this->tpl->show();
315  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
$_POST['username']
Definition: cron.php:12
static securePlainString($a_str)
Remove unsecure characters from a plain text string.
This class represents a property form user interface.
global $ilCtrl
Definition: ilias.php:18
setSize($a_size)
Set Size.
This class represents a text property in a property form.
global $ilUser
Definition: imgupload.php:15
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sendMessage()

ilMailFormGUI::sendMessage ( )

Definition at line 129 of file class.ilMailFormGUI.php.

References $_POST, $ilUser, decodeAttachmentFiles(), ilMailFormCall\getRefererRedirectUrl(), ilMailFormCall\isRefererStored(), ilUtil\redirect(), ilUtil\securePlainString(), ilUtil\sendInfo(), and showForm().

130  {
131  global $ilUser;
132 
133  $files = $this->decodeAttachmentFiles(isset($_POST['attachments']) ? (array)$_POST['attachments'] : array());
134 
135  // Remove \r
136  $f_message = str_replace("\r", '', ilUtil::securePlainString($_POST['m_message']));
137 
138  // Note: For security reasons, ILIAS only allows Plain text strings in E-Mails.
139  $f_message = $this->umail->formatLinebreakMessage($f_message);
140 
141  $this->umail->setSaveInSentbox(true);
142 
143  $m_type = isset($_POST["m_type"]) ? $_POST["m_type"] : array("normal");
144 
145  // Note: For security reasons, ILIAS only allows Plain text strings in E-Mails.
146  if($errorMessage = $this->umail->sendMail(
149  ilUtil::securePlainString($_POST['rcp_bcc']),
150  ilUtil::securePlainString($_POST['m_subject']), $f_message,
151  $files,
152 // $_POST['m_type'],
153  $m_type,
154  ilUtil::securePlainString($_POST['use_placeholders'])
155  )
156  )
157  {
158  $_POST['attachments'] = $files;
159  ilUtil::sendInfo($errorMessage);
160  }
161  else
162  {
163  $this->umail->savePostData($ilUser->getId(), array(), "", "", "", "", "", "", "", "");
164 
165  $this->ctrl->setParameterByClass('ilmailgui', 'type', 'message_sent');
166 
168  {
169  ilUtil::sendInfo($this->lng->txt('mail_message_send'), true);
171  }
172  else
173  $this->ctrl->redirectByClass('ilmailgui');
174  }
175 
176  $this->showForm();
177  }
decodeAttachmentFiles(array $files)
$_POST['username']
Definition: cron.php:12
static securePlainString($a_str)
Remove unsecure characters from a plain text string.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
global $ilUser
Definition: imgupload.php:15
static redirect($a_script)
http redirect to other script
+ Here is the call graph for this function:

◆ showForm()

ilMailFormGUI::showForm ( )

Definition at line 438 of file class.ilMailFormGUI.php.

References $_GET, $_POST, $_SESSION, $data, $ilCtrl, $ilUser, $lng, $size, ilFormat\formatSize(), ilMailFormCall\getSignature(), ilMailFormCall\isRefererStored(), ilUtil\securePlainString(), ilUtil\sendInfo(), ilCheckboxInputGUI\setOptionTitle(), ilFormPropertyGUI\setRequired(), ilTextInputGUI\setSize(), and ilTextAreaInputGUI\setValue().

Referenced by cancelMail(), mailAttachment(), mailRole(), mailUser(), replyMail(), returnFromAttachments(), saveDraft(), searchResults(), and sendMessage().

439  {
440  global $rbacsystem, $ilUser, $ilCtrl, $lng, $ilTabs;
441 
442  $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.mail_new.html", "Services/Mail");
443  $this->tpl->setTitle($this->lng->txt("mail"));
444 
445  $this->lng->loadLanguageModule("crs");
446 
448  $ilTabs->setBackTarget($lng->txt('back'), $ilCtrl->getLinkTarget($this, 'cancelMail'));
449 
450  switch($_GET["type"])
451  {
452  case 'reply':
453  if($_SESSION['mail_id'])
454  {
455  $_GET['mail_id'] = $_SESSION['mail_id'];
456  }
457  $mailData = $this->umail->getMail($_GET["mail_id"]);
458  $mailData["m_subject"] = $this->umail->formatReplySubject();
459  $mailData["m_message"] = $this->umail->formatReplyMessage();
460  $mailData["m_message"] = $this->umail->prependSignature();
461  // NO ATTACHMENTS FOR REPLIES
462  $mailData["attachments"] = array();
463  //$mailData["rcp_cc"] = $this->umail->formatReplyRecipientsForCC();
464  $mailData["rcp_cc"] = '';
465  $mailData["rcp_to"] = $this->umail->formatReplyRecipient();
466  $_SESSION["mail_id"] = "";
467  break;
468 
469  case 'search_res':
470  $mailData = $this->umail->getSavedData();
471 
472  /*if($_SESSION["mail_search_results"])
473  {
474  $mailData = $this->umail->appendSearchResult($_SESSION["mail_search_results"],$_SESSION["mail_search"]);
475  }
476  unset($_SESSION["mail_search"]);
477  unset($_SESSION["mail_search_results"]);*/
478 
479  if($_SESSION["mail_search_results_to"])
480  {
481  $mailData = $this->umail->appendSearchResult($_SESSION["mail_search_results_to"], 'to');
482  }
483  if($_SESSION["mail_search_results_cc"])
484  {
485  $mailData = $this->umail->appendSearchResult($_SESSION["mail_search_results_cc"], 'cc');
486  }
487  if($_SESSION["mail_search_results_bcc"])
488  {
489  $mailData = $this->umail->appendSearchResult($_SESSION["mail_search_results_bcc"], 'bc');
490  }
491 
492  unset($_SESSION["mail_search_results_to"]);
493  unset($_SESSION["mail_search_results_cc"]);
494  unset($_SESSION["mail_search_results_bcc"]);
495 
496  break;
497 
498  case 'attach':
499  $mailData = $this->umail->getSavedData();
500  break;
501 
502  case 'draft':
503  $_SESSION["draft"] = $_GET["mail_id"];
504  $mailData = $this->umail->getMail($_GET["mail_id"]);
505  break;
506 
507  case 'forward':
508  $mailData = $this->umail->getMail($_GET["mail_id"]);
509  $mailData["rcp_to"] = $mailData["rcp_cc"] = $mailData["rcp_bcc"] = '';
510  $mailData["m_subject"] = $this->umail->formatForwardSubject();
511  $mailData["m_message"] = $this->umail->prependSignature();
512  if(count($mailData["attachments"]))
513  {
514  if($error = $this->mfile->adoptAttachments($mailData["attachments"],$_GET["mail_id"]))
515  {
516  ilUtil::sendInfo($error);
517  }
518  }
519  break;
520 
521  case 'new':
522  if($_GET['rcp_to'])
523  {
524  // Note: For security reasons, ILIAS only allows Plain text strings in E-Mails.
525  $mailData["rcp_to"] = ilUtil::securePlainString($_GET['rcp_to']);
526  }
527  else if($_SESSION['rcp_to'])
528  {
529  $mailData["rcp_to"] = $_SESSION['rcp_to'];
530  }
531  if($_GET['rcp_cc'])
532  {
533  // Note: For security reasons, ILIAS only allows Plain text strings in E-Mails.
534  $mailData["rcp_cc"] = ilUtil::securePlainString($_GET['rcp_cc']);
535  }
536  else if($_SESSION['rcp_cc'])
537  {
538  $mailData["rcp_cc"] = $_SESSION['rcp_cc'];
539  }
540  if($_GET['rcp_bcc'])
541  {
542  // Note: For security reasons, ILIAS only allows Plain text strings in E-Mails.
543  $mailData["rcp_bcc"] = ilUtil::securePlainString($_GET['rcp_bcc']);
544  }
545  else if($_SESSION['rcp_bcc'])
546  {
547  $mailData["rcp_bcc"] = $_SESSION['rcp_bcc'];
548  }
549  $mailData['m_message'] = '';
550  if(strlen($sig = ilMailFormCall::getSignature()))
551  {
552  $mailData['m_message'] = $sig;
553  $mailData['m_message'] .= chr(13).chr(10).chr(13).chr(10);
554  }
555  $mailData['m_message'] .= $this->umail->appendSignature();
556 
557  $_SESSION['rcp_to'] = '';
558  $_SESSION['rcp_cc'] = '';
559  $_SESSION['rcp_bcc'] = '';
560  break;
561 
562  case 'role':
563 
564  if(is_array($_POST['roles']))
565  {
566  // Note: For security reasons, ILIAS only allows Plain text strings in E-Mails.
567  $mailData['rcp_to'] = ilUtil::securePlainString(implode(',',$_POST['roles']));
568  }
569  elseif(is_array($_SESSION['mail_roles']))
570  {
571  $mailData['rcp_to'] = ilUtil::securePlainString(implode(',', $_SESSION['mail_roles']));
572  }
573 
574  $mailData['m_message'] = '';
575  if(strlen($sig = ilMailFormCall::getSignature()))
576  {
577  $mailData['m_message'] = $sig;
578  $mailData['m_message'] .= chr(13).chr(10).chr(13).chr(10);
579  }
580 
581  $mailData['m_message'] .= $_POST["additional_message_text"].chr(13).chr(10).$this->umail->appendSignature();
582  $_POST["additional_message_text"] = "";
583  $_SESSION['mail_roles'] = "";
584  break;
585 
586  case 'address':
587  $mailData["rcp_to"] = urldecode($_GET["rcp"]);
588  break;
589 
590  default:
591  // GET DATA FROM POST
592  $mailData = $_POST;
593 
594  // strip slashes
595  foreach ($mailData as $key => $value)
596  {
597  if (is_string($value))
598  {
599  // Note: For security reasons, ILIAS only allows Plain text strings in E-Mails.
600  $mailData[$key] = ilUtil::securePlainString($value);
601  }
602  }
603  break;
604  }
605 
606  include_once('./Services/Form/classes/class.ilPropertyFormGUI.php');
607 
608  $form_gui = new ilPropertyFormGUI();
609  $form_gui->setTitle($this->lng->txt('compose'));
610  $form_gui->setOpenTag(false);
611  $this->tpl->setVariable('FORM_ACTION', $this->ctrl->getFormAction($this, 'sendMessage'));
612 
613  $this->tpl->setVariable('BUTTON_TO', $lng->txt("search_recipients"));
614  $this->tpl->setVariable('BUTTON_COURSES_TO', $lng->txt("mail_my_courses"));
615  $this->tpl->setVariable('BUTTON_GROUPS_TO', $lng->txt("mail_my_groups"));
616  $this->tpl->setVariable('BUTTON_MAILING_LISTS_TO', $lng->txt("mail_my_mailing_lists"));
617 
618  $dsDataLink = $ilCtrl->getLinkTarget($this, 'lookupRecipientAsync', '', true);
619 
620  // RECIPIENT
621  $inp = new ilTextInputGUI($this->lng->txt('mail_to'), 'rcp_to');
622  $inp->setRequired(true);
623  $inp->setSize(50);
624  $inp->setValue($mailData["rcp_to"]);
625  $inp->setDataSource($dsDataLink, ",");
626  $inp->setMaxLength(null);
627  $form_gui->addItem($inp);
628 
629  // CC
630  $inp = new ilTextInputGUI($this->lng->txt('cc'), 'rcp_cc');
631  $inp->setSize(50);
632  $inp->setValue($mailData["rcp_cc"]);
633  $inp->setDataSource($dsDataLink, ",");
634  $inp->setMaxLength(null);
635  $form_gui->addItem($inp);
636 
637  // BCC
638  $inp = new ilTextInputGUI($this->lng->txt('bc'), 'rcp_bcc');
639  $inp->setSize(50);
640  $inp->setValue($mailData["rcp_bcc"]);
641  $inp->setDataSource($dsDataLink, ",");
642  $inp->setMaxLength(null);
643  $form_gui->addItem($inp);
644 
645  // SUBJECT
646  $inp = new ilTextInputGUI($this->lng->txt('subject'), 'm_subject');
647  $inp->setSize(50);
648  $inp->setRequired(true);
649  $inp->setValue($mailData["m_subject"]);
650  $form_gui->addItem($inp);
651 
652  // Attachments
653  include_once 'Services/Mail/classes/class.ilMailFormAttachmentFormPropertyGUI.php';
654  $att = new ilMailFormAttachmentPropertyGUI($this->lng->txt( ($mailData["attachments"]) ? 'edit' : 'add' ));
655 
656 
657  if (is_array($mailData["attachments"]) && count($mailData["attachments"]))
658  {
659  foreach($mailData["attachments"] as $data)
660  {
661  if(is_file($this->mfile->getMailPath() . '/' . $ilUser->getId() . "_" . $data))
662  {
663  $hidden = new ilHiddenInputGUI('attachments[]');
664  $form_gui->addItem($hidden);
665  $size = filesize($this->mfile->getMailPath() . '/' . $ilUser->getId() . "_" . $data);
666  $label = $data . " [" . ilFormat::formatSize($size) . "]";
667  $att->addItem($label);
668  $hidden->setValue(urlencode($data));
669  }
670  }
671  }
672  $form_gui->addItem($att);
673 
674  // ONLY IF SYSTEM MAILS ARE ALLOWED
675  if($rbacsystem->checkAccess("system_message",$this->umail->getMailObjectReferenceId()))
676  {
677  $chb = new ilCheckboxInputGUI($this->lng->txt('type'), 'm_type[]');
678  $chb->setOptionTitle($this->lng->txt('system_message'));
679  $chb->setValue('system');
680  $chb->setChecked(false);
681  if(is_array($mailData["m_type"]) and in_array('system',$mailData["m_type"]))
682  {
683  $chb->setChecked(true);
684  }
685  $form_gui->addItem($chb);
686  }
687 
688 
689  // MESSAGE
690  $inp = new ilTextAreaInputGUI($this->lng->txt('message_content'), 'm_message');
691  //$inp->setValue(htmlspecialchars($mailData["m_message"], false));
692  $inp->setValue($mailData["m_message"]);
693  $inp->setRequired(false);
694  $inp->setCols(60);
695  $inp->setRows(10);
696 
697  // PLACEHOLDERS
698  $chb = new ilCheckboxInputGUI($this->lng->txt('activate_serial_letter_placeholders'), 'use_placeholders');
699  $chb->setOptionTitle($this->lng->txt('activate_serial_letter_placeholders'));
700  $chb->setValue(1);
701  $chb->setChecked(false);
702  $form_gui->addItem($inp);
703 
704  include_once 'Services/Mail/classes/class.ilMailFormPlaceholdersPropertyGUI.php';
705  $prop = new ilMailFormPlaceholdersPropertyGUI();
706 
707  $chb->addSubItem($prop);
708 
709  if ($mailData['use_placeholders'])
710  {
711  $chb->setChecked(true);
712  }
713 
714  $form_gui->addItem($chb);
715 
716  $form_gui->addCommandButton('sendMessage', $this->lng->txt('send_mail'));
717  $form_gui->addCommandButton('saveDraft', $this->lng->txt('save_message'));
719  $form_gui->addCommandButton('cancelMail', $this->lng->txt('cancel'));
720 
721  $this->tpl->parseCurrentBlock();
722 
723  $this->tpl->setVariable('FORM', $form_gui->getHTML());
724 
725  $this->tpl->addJavaScript('Services/Mail/js/ilMailComposeFunctions.js');
726  $this->tpl->show();
727  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
$size
Definition: RandomTest.php:79
$_POST['username']
Definition: cron.php:12
static securePlainString($a_str)
Remove unsecure characters from a plain text string.
This class represents a property form user interface.
$_GET["client_id"]
setValue($a_value)
Set Value.
This class represents a checkbox property in a property form.
global $ilCtrl
Definition: ilias.php:18
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
This class represents a hidden form property in a property form.
setSize($a_size)
Set Size.
This class represents a text property in a property form.
global $ilUser
Definition: imgupload.php:15
static formatSize($size, $a_mode='short', $a_lng=null)
Returns the specified file size value in a human friendly form.
This class represents a text area property in a property form.
static getSignature()
Get preset signature.
setOptionTitle($a_optiontitle)
Set Option Title (optional).
setRequired($a_required)
Set Required.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $ctrl

ilMailFormGUI::$ctrl = null
private

Definition at line 20 of file class.ilMailFormGUI.php.

◆ $lng

ilMailFormGUI::$lng = null
private

Definition at line 21 of file class.ilMailFormGUI.php.

Referenced by __construct(), and showForm().

◆ $mbox

ilMailFormGUI::$mbox = null
private

Definition at line 24 of file class.ilMailFormGUI.php.

◆ $mfile

ilMailFormGUI::$mfile = null
private

Definition at line 25 of file class.ilMailFormGUI.php.

◆ $tpl

ilMailFormGUI::$tpl = null
private

Definition at line 19 of file class.ilMailFormGUI.php.

Referenced by __construct().

◆ $umail

ilMailFormGUI::$umail = null
private

Definition at line 23 of file class.ilMailFormGUI.php.


The documentation for this class was generated from the following file: