ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
class.ilDiskQuotaReminderMail.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2012 ILIAS open source, Extended GPL, see docs/LICENSE */
3
14{
16
20 private $data;
21
22 private $tmp_lng;
23
28 public function __construct()
29 {
30 }
31
32 public function useLangVariablesAsFallback($a_status)
33 {
34 $this->lang_variables_as_fallback = $a_status;
35 }
36
38 {
40 }
41
61 function setData($a_data)
62 {
63 $this->data = $a_data;
64 }
65
69 function reset()
70 {
71 unset($this->data);
72 }
73
77 function readMailTemplate($a_lang)
78 {
79 if (!is_array($this->amail[$a_lang]))
80 {
81 require_once('./Services/WebDAV/classes/class.ilObjDiskQuotaSettings.php');
82 $this->amail[$a_lang] = ilObjDiskQuotaSettings::_lookupReminderMailTemplate($a_lang);
83 $this->amail["body"] = trim($this->amail["body"]);
84 $this->amail["subject"] = trim($this->amail["subject"]);
85 }
86
87 return $this->amail[$a_lang];
88 }
89
98 function send()
99 {
100 global $ilSetting;
101
102 // determine language and get account mail data
103 // fall back to default language if acccount mail data is not given for user language.
104 $amail = $this->readMailTemplate($this->data['language']);
105 if ($amail['body'] == '' || $amail['subject'] == '')
106 {
107 $amail = $this->readMailTemplate($ilSetting->get('language'));
108 $lang = $ilSetting->get('language');
109 }
110 else
111 {
112 $lang = $this->data['language'];
113 }
114
115 // fallback if mail data is still not given
116 if($this->areLangVariablesUsedAsFallback() &&
117 ($amail['body'] == '' || $amail['subject'] == ''))
118 {
119 $lang = $this->data['language'];
120 $tmp_lang = $this->getLng($lang);
121
122 // mail subject
123 $mail_subject = $tmp_lang->txt('disk_quota_mail_subject');
124
125 // mail body
126 $mail_body = $tmp_lang->txt('disk_quota_mail_body_salutation').' '.$data['firstname'].' '.$data['lastname'].",\n\n".
127 $tmp_lang->txt('disk_quota_body_text1')."\n\n".
128 $tmp_lang->txt('disk_quota_body_text2')."\n".
129 ILIAS_HTTP_PATH.'/login.php?client_id='.CLIENT_ID."\n";
130 $mail_body .= $tmp_lang->txt('login').': '.$data['firstname']."\n";
131 $mail_body.= "\n";
132 $mail_body .= $tmp_lang->txt('disk_quota_mail_body_text3')."\n\r";
133 //$mail_body .= $user->getProfileAsString($tmp_lang);
134 }
135 else
136 {
137 // replace placeholders
138 $mail_subject = $this->replacePlaceholders($amail['subject'], $amail, $lang);
139 $mail_body = $this->replacePlaceholders($amail['body'], $amail, $lang);
140 }
141
142 // send the mail
143 include_once 'Services/Mail/classes/class.ilMimeMail.php';
144 $mmail = new ilMimeMail();
145 $mmail->autoCheck(false);
146 $mmail->From($ilSetting->get('admin_email'));
147 $mmail->Subject($mail_subject);
148 $mmail->To($this->data['email']);
149 $mmail->Body($mail_body);
150 $mmail->Send();
151
152 include_once 'Services/Mail/classes/class.ilMail.php';
153 $mail = new ilMail($GLOBALS['DIC']['ilUser']->getId());
154 $mail->sendMail($this->data['login'],"","",$mail_subject,$mail_body,array(),array("normal"));
155
156
157
158 return true;
159 }
160
161 private function getLng($a_lang) {
162 if ($this->tmp_lng == null || $this->tmp_lng->lang_key != $a_lang)
163 {
164 $this->tmp_lng = new ilLanguage($lang);
165 }
166 return $this->tmp_lng;
167 }
168
169 function replacePlaceholders($a_string, $a_amail, $a_lang)
170 {
171 global $ilSetting, $tree;
172
173 $tmp_lang = $this->getLng($a_lang);
174
175 // determine salutation
176 switch ($this->data['gender'])
177 {
178 case "f" : $gender_salut = $a_amail["sal_f"];
179 break;
180 case "m" : $gender_salut = $a_amail["sal_m"];
181 break;
182 default : $gender_salut = $a_amail["sal_g"];
183 }
184 $gender_salut = trim($gender_salut);
185
186 $a_string = str_replace("[MAIL_SALUTATION]", $gender_salut, $a_string);
187 $a_string = str_replace("[LOGIN]", $this->data['login'], $a_string);
188 $a_string = str_replace("[FIRST_NAME]", $this->data['firstname'], $a_string);
189 $a_string = str_replace("[LAST_NAME]", $this->data['lastname'], $a_string);
190 // BEGIN Mail Include E-Mail Address in account mail
191 $a_string = str_replace("[EMAIL]", $this->data['email'], $a_string);
192 $a_string = str_replace("[ILIAS_URL]",
193 ILIAS_HTTP_PATH."/login.php?client_id=".CLIENT_ID, $a_string);
194 $a_string = str_replace("[CLIENT_NAME]", CLIENT_NAME, $a_string);
195 $a_string = str_replace("[ADMIN_MAIL]", $ilSetting->get("admin_email"),
196 $a_string);
197
198 $a_string = str_replace("[DISK_QUOTA]", ilUtil::formatSize($this->data['disk_quota'],'short',$tmp_lang), $a_string);
199 $a_string = str_replace("[DISK_USAGE]", ilUtil::formatSize($this->data['disk_usage'],'short',$tmp_lang), $a_string);
200
201 $disk_usage_details = '';
202 foreach ($this->data['disk_usage_details'] as $details)
203 {
204 $disk_usage_details .= number_format($details['count'], 0).' '.
205 $tmp_lang->txt($details['type']).' '.
206 ilUtil::formatSize($details['size'],'short',$tmp_lang)."\n";
207 }
208 $a_string = str_replace("[DISK_USAGE_DETAILS]", $disk_usage_details, $a_string);
209
210 return $a_string;
211 }
212
213}
214?>
An exception for terminatinating execution or to throw for unit testing.
Class ilDiskQuotaReminderMail.
setData($a_data)
Sets used to fill in the placeholders in the mail.
replacePlaceholders($a_string, $a_amail, $a_lang)
__construct()
constructor @access public
$data
Data used to fill in the placeholders in the mail.
readMailTemplate($a_lang)
get new mail template array (including subject and message body)
send()
Sends the mail with its object properties as MimeMail It first tries to read the mail body,...
language handling
This class handles base functions for mail handling.
this class encapsulates the PHP mail() function.
static _lookupReminderMailTemplate($a_lang)
Looks up the mail template for the specified language.
static formatSize($size, $a_mode='short', $a_lng=null)
Returns the specified file size value in a human friendly form.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
for($i=1; $i<=count($kw_cases_sel); $i+=1) $lang
Definition: langwiz.php:349
global $ilSetting
Definition: privfeed.php:17