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 25/** 26* Class FormMailCodesGUI 27* 28* @author Helmut Schottmüller <ilias@aurealis.de> 29* @version $Id$ 30* 31* @extends ilPropertyFormGUI 32* @ingroup ModulesSurvey 33*/ 34 35include_once("./Services/Form/classes/class.ilPropertyFormGUI.php"); 36 37class FormMailCodesGUI extends ilPropertyFormGUI 38{ 39 protected $guiclass; 40 protected $subject; 41 protected $sendtype; 42 protected $savedmessages; 43 protected $mailmessage; 44 protected $savemessage; 45 protected $savemessagetitle; 46 47 public function __construct($guiclass) 48 { 49 global $DIC; 50 51 parent::__construct(); 52 53 $ilAccess = $DIC->access(); 54 $ilSetting = $DIC->settings(); 55 $ilUser = $DIC->user(); 56 $rbacsystem = $DIC->rbac()->system(); 57 58 $lng = $this->lng; 59 60 $this->guiclass = $guiclass; 61 62 $this->setFormAction($this->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 $first = array_shift($existingdata); 82 foreach ($first as $key => $value) { 83 if (strcmp($key, 'code') != 0 && strcmp($key, 'email') != 0 && strcmp($key, 'sent') != 0) { 84 array_push($existingcolumns, '[' . $key . ']'); 85 } 86 } 87 } 88 89 $settings = $this->guiclass->getObject()->getUserSettings($ilUser->getId(), 'savemessage'); 90 if (count($settings)) { 91 $options = array(0 => $this->lng->txt('please_select')); 92 foreach ($settings as $setting) { 93 $options[$setting['settings_id']] = $setting['title']; 94 } 95 $this->savedmessages = new ilSelectInputGUI($this->lng->txt("saved_messages"), "savedmessage"); 96 $this->savedmessages->setOptions($options); 97 $this->addItem($this->savedmessages); 98 } 99 100 $this->mailmessage = new ilTextAreaInputGUI($this->lng->txt('message_content'), 'm_message'); 101 $this->mailmessage->setRequired(true); 102 $this->mailmessage->setCols(80); 103 $this->mailmessage->setRows(10); 104 $this->mailmessage->setInfo(sprintf($this->lng->txt('message_content_info'), join(', ', $existingcolumns))); 105 $this->addItem($this->mailmessage); 106 107 // save message 108 $this->savemessage = new ilCheckboxInputGUI('', "savemessage"); 109 $this->savemessage->setOptionTitle($this->lng->txt("save_reuse_message")); 110 $this->savemessage->setValue(1); 111 112 $this->savemessagetitle = new ilTextInputGUI($this->lng->txt('save_reuse_title'), 'savemessagetitle'); 113 $this->savemessagetitle->setSize(60); 114 $this->savemessage->addSubItem($this->savemessagetitle); 115 116 $this->addItem($this->savemessage); 117 118 if (count($settings)) { 119 if ($ilAccess->checkAccess("write", "", $_GET["ref_id"])) { 120 $this->addCommandButton("deleteSavedMessage", $this->lng->txt("delete_saved_message")); 121 } 122 if ($ilAccess->checkAccess("write", "", $_GET["ref_id"])) { 123 $this->addCommandButton("insertSavedMessage", $this->lng->txt("insert_saved_message")); 124 } 125 } 126 127 if ((int) $ilSetting->get('mail_allow_external')) { 128 $this->addCommandButton("sendCodesMail", $this->lng->txt("send")); 129 } else { 130 ilUtil::sendInfo($lng->txt("cant_send_email_smtp_disabled")); 131 } 132 } 133 134 public function getSavedMessages() 135 { 136 return $this->savedmessages; 137 } 138 139 public function getMailMessage() 140 { 141 return $this->mailmessage; 142 } 143} 144