ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
FormMailCodesGUI.php
Go to the documentation of this file.
1 <?php
2 /*
3  +-----------------------------------------------------------------------------+
4  | ILIAS open source |
5  +-----------------------------------------------------------------------------+
6  | Copyright (c) 1998-2001 ILIAS open source, University of Cologne |
7  | |
8  | This program is free software; you can redistribute it and/or |
9  | modify it under the terms of the GNU General Public License |
10  | as published by the Free Software Foundation; either version 2 |
11  | of the License, or (at your option) any later version. |
12  | |
13  | This program is distributed in the hope that it will be useful, |
14  | but WITHOUT ANY WARRANTY; without even the implied warranty of |
15  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16  | GNU General Public License for more details. |
17  | |
18  | You should have received a copy of the GNU General Public License |
19  | along with this program; if not, write to the Free Software |
20  | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
21  +-----------------------------------------------------------------------------+
22 */
23 
24 
35 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
36 
38 {
39  private $lng;
40  private $guiclass;
41  private $subject;
42  private $messagetype;
43  private $sendtype;
44  private $savedmessages;
45  private $mailmessage;
46  private $savemessage;
48 
50  {
51  parent::__construct();
52 
53  global $lng;
54  global $ilAccess;
55  global $ilSetting;
56  global $ilUser;
57  global $rbacsystem;
58 
59  $this->lng = $lng;
60  $this->guiclass = $guiclass;
61 
62  $this->setFormAction($guiclass->ctrl->getFormAction($this->guiclass));
63  $this->setTitle($this->lng->txt('compose'));
64 
65  $this->subject = new ilTextInputGUI($this->lng->txt('subject'), 'm_subject');
66  $this->subject->setSize(50);
67  $this->subject->setRequired(true);
68  $this->addItem($this->subject);
69 
70  $this->sendtype = new ilRadioGroupInputGUI($this->lng->txt('recipients'), "m_notsent");
71  $this->sendtype->addOption(new ilCheckboxOption($this->lng->txt("send_to_all"), 0, ''));
72  $this->sendtype->addOption(new ilCheckboxOption($this->lng->txt("not_sent_only"), 1, ''));
73  $this->sendtype->addOption(new ilCheckboxOption($this->lng->txt("send_to_unanswered"), 3, ''));
74  $this->sendtype->addOption(new ilCheckboxOption($this->lng->txt("send_to_answered"), 2, ''));
75  $this->addItem($this->sendtype);
76 
77  $existingdata = $this->guiclass->getObject()->getExternalCodeRecipients();
78 
79  $existingcolumns = array();
80  if (count($existingdata))
81  {
82  $first = array_shift($existingdata);
83  foreach ($first as $key => $value)
84  {
85  if (strcmp($key, 'code') != 0 && strcmp($key, 'email') != 0 && strcmp($key, 'sent') != 0) array_push($existingcolumns, '[' . $key . ']');
86  }
87  }
88 
89  $settings = $this->guiclass->getObject()->getUserSettings($ilUser->getId(), 'savemessage');
90  if (count($settings))
91  {
92  $options = array(0 => $this->lng->txt('please_select'));
93  foreach ($settings as $setting)
94  {
95  $options[$setting['settings_id']] = $setting['title'];
96  }
97  $this->savedmessages = new ilSelectInputGUI($this->lng->txt("saved_messages"), "savedmessage");
98  $this->savedmessages->setOptions($options);
99  $this->addItem($this->savedmessages);
100  }
101 
102  $this->mailmessage = new ilTextAreaInputGUI($this->lng->txt('message_content'), 'm_message');
103  $this->mailmessage->setRequired(true);
104  $this->mailmessage->setCols(80);
105  $this->mailmessage->setRows(10);
106  $this->mailmessage->setInfo(sprintf($this->lng->txt('message_content_info'), join($existingcolumns, ', ')));
107  $this->addItem($this->mailmessage);
108 
109  // save message
110  $this->savemessage = new ilCheckboxInputGUI('', "savemessage");
111  $this->savemessage->setOptionTitle($this->lng->txt("save_reuse_message"));
112  $this->savemessage->setValue(1);
113 
114  $this->savemessagetitle = new ilTextInputGUI($this->lng->txt('save_reuse_title'), 'savemessagetitle');
115  $this->savemessagetitle->setSize(60);
116  $this->savemessage->addSubItem($this->savemessagetitle);
117 
118  $this->addItem($this->savemessage);
119 
120  if (count($settings))
121  {
122  if ($ilAccess->checkAccess("write", "", $_GET["ref_id"])) $this->addCommandButton("deleteSavedMessage", $this->lng->txt("delete_saved_message"));
123  if ($ilAccess->checkAccess("write", "", $_GET["ref_id"])) $this->addCommandButton("insertSavedMessage", $this->lng->txt("insert_saved_message"));
124  }
125 
126  if ($ilAccess->checkAccess("write", "", $_GET["ref_id"]) && $rbacsystem->checkAccess('smtp_mail', ilMailGlobalServices::getMailObjectRefId()))
127  {
128  if(!(int)$ilSetting->get('prevent_smtp_globally'))
129  {
130  $this->addCommandButton("sendCodesMail", $this->lng->txt("send"));
131  }
132  else
133  {
134  ilUtil::sendInfo($lng->txt("cant_send_email_smtp_disabled"));
135  }
136  }
137  else
138  {
139  ilUtil::sendInfo($lng->txt("cannot_send_emails"));
140 
141  }
142  }
143 
144  public function getSavedMessages()
145  {
146  return $this->savedmessages;
147  }
148 
149  public function getMailMessage()
150  {
151  return $this->mailmessage;
152  }
153 }
154 
155 ?>
This class represents an option in a checkbox group.
This class represents a selection list property in a property form.
This class represents a property form user interface.
$_GET["client_id"]
This class represents a checkbox property in a property form.
setFormAction($a_formaction)
Set FormAction.
addItem($a_item)
Add Item (Property, SectionHeader).
__construct($guiclass)
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
This class represents a property in a property form.
addOption($a_option)
Add Option.
setTitle($a_title)
Set Title.
if(!is_array($argv)) $options
setSize($a_size)
Set Size.
This class represents a text property in a property form.
addCommandButton($a_cmd, $a_text, $a_id="")
Add Command button.
$ilUser
Definition: imgupload.php:18
setOptions($a_options)
Set Options.
Create styles array
The data for the language used.
global $ilSetting
Definition: privfeed.php:17
This class represents a text area property in a property form.
Class FormMailCodesGUI.
static getMailObjectRefId()
Determines the reference id of the mail object and stores this information in a local cache variable...
setRequired($a_required)
Set Required.