ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
ilSystemNotification Class Reference

Wrapper classes for system notifications. More...

+ Inheritance diagram for ilSystemNotification:
+ Collaboration diagram for ilSystemNotification:

Public Member Functions

 setSubjectLangId ($a_lang_id)
 Set subject lang id. More...
 
 setIntroductionLangId ($a_lang_id)
 Set introduction lang id. More...
 
 setIntroductionDirect ($a_text)
 Set introduction text. More...
 
 setTaskLangId ($a_lang_id)
 Set task lang id. More...
 
 setReasonLangId ($a_lang_id)
 Set reason lang id. More...
 
 setGotoLangId ($a_lang_id)
 Set goto lang id. More...
 
 setChangedByUserId ($a_id)
 Set changed by user id. More...
 
 addAdditionalInfo ($a_lang_id, $a_value, $a_multiline=false, $a_lang_direct=false)
 Add additional information. More...
 
 sendMail (array $a_user_ids, $a_goto_additional=null, $a_permission="read")
 Send notification(s) More...
 
 compose ($a_user_id, $a_goto_additional=null, $a_permission="read", $a_append_signature_direct=false)
 Compose notification to single recipient. More...
 
 composeAndGetMessage ($a_user_id, $a_goto_additional=null, $a_permission="read", $a_append_signature_direct=false)
 Compose notification to single recipient. More...
 
- Public Member Functions inherited from ilMailNotification
 __construct ($a_is_personal_workspace=false)
 
 setType ($a_type)
 Set notification type. More...
 
 getType ()
 Get notification type. More...
 
 setSender ($a_usr_id)
 Set sender of mail. More...
 
 getSender ()
 get sender of mail More...
 
 setRecipients (array $a_rcp)
 
 getRecipients ()
 get array of recipients More...
 
 setAttachments ($a_att)
 Set attachments. More...
 
 getAttachments ()
 Get attachments. More...
 
 setLangModules (array $a_modules)
 Set lang modules. More...
 
 getUserLanguage ($a_usr_id)
 Get user language. More...
 
 setRefId ($a_id)
 
 getRefId ()
 
 getObjId ()
 
 setObjId ($a_obj_id)
 
 getObjType ()
 Get object type. More...
 
 setAdditionalInformation (array $a_info)
 Additional information for creating notification mails. More...
 
 getAdditionalInformation ()
 
 sendMail (array $a_rcp, $a_type, $a_parse_recipients=true)
 
 getBlockBorder ()
 Get (ascii) block border. More...
 

Protected Member Functions

 composeAndSendMail ($a_user_id, $a_goto_additional=null, $a_permission="read")
 Send notification to single recipient. More...
 
- Protected Member Functions inherited from ilMailNotification
 setSubject ($a_subject)
 
 getSubject ()
 
 setBody ($a_body)
 
 appendBody ($a_body)
 Append body text. More...
 
 getBody ()
 
 initLanguage ($a_usr_id)
 Init language. More...
 
 initLanguageByIso2Code ($a_code='')
 Init language by ISO2 code. More...
 
 setLanguage ($a_language)
 
 getLanguage ()
 
 getLanguageText ($a_keyword)
 
 getObjectTitle ($a_shorten=false)
 
 initMail ()
 
 getMail ()
 
 createPermanentLink ($a_params=array(), $a_append='')
 
 userToString ($a_usr_id)
 
 isRefIdAccessible ($a_user_id, $a_ref_id, $a_permission="read")
 Check if ref id is accessible for user. More...
 

Protected Attributes

 $subject_lang_id
 
 $introduction
 
 $introduction_direct
 
 $task
 
 $reason
 
 $additional
 
 $goto_caption
 
 $changed_by
 
 $all_ref_ids
 
- Protected Attributes inherited from ilMailNotification
 $type = null
 
 $sender = null
 
 $mail = null
 
 $subject = ''
 
 $body = ''
 
 $attachments = array()
 
 $language = null
 
 $lang_modules = array()
 
 $recipients = array()
 
 $ref_id = null
 
 $obj_id = null
 
 $obj_type = null
 
 $additional_info = array()
 
 $is_in_wsp
 
 $wsp_tree
 
 $wsp_access_handler
 

Additional Inherited Members

- Data Fields inherited from ilMailNotification
const SUBJECT_TITLE_LENGTH = 60
 

Detailed Description

Wrapper classes for system notifications.

See also
FeatureWiki/Guidelines/System Notification Guideline
Author
Jörg Lützenkirchen luetz.nosp@m.enki.nosp@m.rchen.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Id
class.ilObjExerciseGUI.php 24003 2010-05-26 14:35:42Z akill

Definition at line 16 of file class.ilSystemNotification.php.

Member Function Documentation

◆ addAdditionalInfo()

ilSystemNotification::addAdditionalInfo (   $a_lang_id,
  $a_value,
  $a_multiline = false,
  $a_lang_direct = false 
)

Add additional information.

Parameters
string$a_lang_id
mixed$a_value
bool$a_multiline
bool$a_lang_direct

Definition at line 108 of file class.ilSystemNotification.php.

109 {
110 $this->additional[$a_lang_id] = array(trim($a_value), (bool) $a_multiline, (bool) $a_lang_direct);
111 }

◆ compose()

ilSystemNotification::compose (   $a_user_id,
  $a_goto_additional = null,
  $a_permission = "read",
  $a_append_signature_direct = false 
)

Compose notification to single recipient.

Parameters
mixed$a_rcp
string$a_goto_additional
string$a_permission
bool$a_append_signature_direct
Returns
bool

Definition at line 170 of file class.ilSystemNotification.php.

171 {
172 $this->initLanguage($a_user_id);
173 $this->initMail();
174
175 $this->setSubject(
176 sprintf($this->getLanguageText($this->subject_lang_id), $this->getObjectTitle(true))
177 );
178
179 $this->setBody(ilMail::getSalutation($a_user_id, $this->getLanguage()));
180 $this->appendBody("\n\n");
181
182 if ($this->introduction) {
183 $this->appendBody($this->getLanguageText($this->introduction));
184 $this->appendBody("\n\n");
185 }
186
187 if ($this->introduction_direct) {
188 $this->appendBody($this->introduction_direct);
189 $this->appendBody("\n\n");
190 }
191
192 if ($this->task) {
193 $this->appendBody($this->getLanguageText($this->task));
194 $this->appendBody("\n\n");
195 }
196
197 // details table
198 if ($this->getObjId()) {
199 $this->appendBody($this->getLanguageText("obj_" . $this->getObjType()) . ": " .
200 $this->getObjectTitle() . "\n");
201 }
202 if (sizeof($this->additional)) {
203 foreach ($this->additional as $lang_id => $item) {
204 $caption = "";
205 if ($lang_id) {
206 $caption = (!$item[2])
207 ? $this->getLanguageText($lang_id)
208 : $lang_id;
209 }
210 if (!$item[1]) {
211 if ($caption) {
212 $caption .= ": ";
213 }
214 $this->appendBody($caption . $item[0] . "\n");
215 } else {
216 if ($caption) {
217 $caption .= "\n";
218 }
219 $this->appendBody("\n" . $caption .
220 $this->getBlockBorder() .
221 $item[0] . "\n" .
222 $this->getBlockBorder() . "\n");
223 }
224 }
225 }
226 $this->body = trim($this->body);
227 $this->appendBody("\n\n");
228
229 if ($this->changed_by) {
230 $this->appendBody($this->getLanguageText("system_notification_installation_changed_by") . ": " .
231 ilUserUtil::getNamePresentation($this->changed_by));
232 $this->appendBody("\n\n");
233 }
234
235 if ($this->getObjId()) {
236 // try to find accessible ref_id
237 if (!$this->getRefId() && $this->all_ref_ids) {
238 $find_ref_id = true;
239 foreach ($this->all_ref_ids as $ref_id) {
240 if ($this->isRefIdAccessible($a_user_id, $ref_id, $a_permission)) {
241 $this->ref_id = $ref_id;
242 break;
243 }
244 }
245 }
246
247 // check if initially given ref_id is accessible for current recipient
248 if ($this->getRefId() &&
249 !$find_ref_id &&
250 !$this->isRefIdAccessible($a_user_id, $this->getRefId(), $a_permission)) {
251 return false;
252 }
253
254 $goto = $this->createPermanentLink(array(), $a_goto_additional);
255 if ($goto) {
256 $this->appendBody($this->getLanguageText($this->goto_caption) . ": " .
257 $goto);
258 $this->appendBody("\n\n");
259 }
260
261 if ($find_ref_id) {
262 $this->ref_id = null;
263 }
264 }
265
266 if ($this->reason) {
267 $this->appendBody($this->getLanguageText($this->reason));
268 $this->appendBody("\n\n");
269 }
270
271 $this->appendBody(ilMail::_getAutoGeneratedMessageString($this->language));
272
273 // signature will append new lines
274 $this->body = trim($this->body);
275
276 if (!$a_append_signature_direct) {
277 $this->getMail()->appendInstallationSignature(true);
278 } else {
280 }
281
282 return true;
283 }
sprintf('%.4f', $callTime)
getBlockBorder()
Get (ascii) block border.
appendBody($a_body)
Append body text.
initLanguage($a_usr_id)
Init language.
getObjectTitle($a_shorten=false)
createPermanentLink($a_params=array(), $a_append='')
isRefIdAccessible($a_user_id, $a_ref_id, $a_permission="read")
Check if ref id is accessible for user.
static _getAutoGeneratedMessageString(ilLanguage $lang=null)
Get auto generated info string.
static _getInstallationSignature()
static getSalutation($a_usr_id, ilLanguage $a_language=null)
static getNamePresentation( $a_user_id, $a_user_image=false, $a_profile_link=false, $a_profile_back_link="", $a_force_first_lastname=false, $a_omit_login=false, $a_sortable=true, $a_return_data_array=false, $a_ctrl_path="ilpublicuserprofilegui")
Default behaviour is:

References ilMailNotification\$ref_id, ilMail\_getAutoGeneratedMessageString(), ilMail\_getInstallationSignature(), ilMailNotification\appendBody(), ilMailNotification\createPermanentLink(), ilMailNotification\getBlockBorder(), ilMailNotification\getLanguage(), ilMailNotification\getLanguageText(), ilMailNotification\getMail(), ilUserUtil\getNamePresentation(), ilMailNotification\getObjectTitle(), ilMailNotification\getObjId(), ilMailNotification\getObjType(), ilMailNotification\getRefId(), ilMail\getSalutation(), ilMailNotification\initLanguage(), ilMailNotification\initMail(), ilMailNotification\isRefIdAccessible(), ilMailNotification\setBody(), ilMailNotification\setSubject(), and sprintf.

Referenced by composeAndGetMessage(), and composeAndSendMail().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ composeAndGetMessage()

ilSystemNotification::composeAndGetMessage (   $a_user_id,
  $a_goto_additional = null,
  $a_permission = "read",
  $a_append_signature_direct = false 
)

Compose notification to single recipient.

Parameters
mixed$a_user_id
string$a_goto_additional
string$a_permission
bool$a_append_signature_direct
Returns
string

Definition at line 311 of file class.ilSystemNotification.php.

312 {
313 if ($this->compose($a_user_id, $a_goto_additional, $a_permission, $a_append_signature_direct)) {
314 return $this->body;
315 }
316 }
compose($a_user_id, $a_goto_additional=null, $a_permission="read", $a_append_signature_direct=false)
Compose notification to single recipient.

References ilMailNotification\$body, and compose().

+ Here is the call graph for this function:

◆ composeAndSendMail()

ilSystemNotification::composeAndSendMail (   $a_user_id,
  $a_goto_additional = null,
  $a_permission = "read" 
)
protected

Send notification to single recipient.

Parameters
mixed$a_rcp
string$a_goto_additional
string$a_permission
Returns
bool

Definition at line 293 of file class.ilSystemNotification.php.

294 {
295 if ($this->compose($a_user_id, $a_goto_additional, $a_permission)) {
296 parent::sendMail(array($a_user_id), array('system'), is_numeric($a_user_id));
297 return true;
298 }
299 return false;
300 }

References compose().

Referenced by sendMail().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ sendMail()

ilSystemNotification::sendMail ( array  $a_user_ids,
  $a_goto_additional = null,
  $a_permission = "read" 
)

Send notification(s)

Parameters
array$a_user_ids
string$a_goto_additional
string$a_permission
Returns
array recipient ids

Reimplemented from ilMailNotification.

Definition at line 121 of file class.ilSystemNotification.php.

122 {
123 $this->all_ref_ids = null;
124
125 // prepare object related info
126 if ($this->getObjId()) {
127 if (!$this->getRefId()) {
128 // try to find ref_id(s)
129 if (!$this->is_in_wsp) {
130 $ref_ids = ilObject::_getAllReferences($this->getObjId());
131 if (sizeof($ref_ids) == 1) {
132 $this->ref_id = array_shift($ref_ids);
133 } else {
134 $this->all_ref_ids = $ref_ids;
135 }
136 }
137 } elseif ($this->is_in_wsp) { // #11680
138 $this->ref_id = $this->wsp_tree->lookupNodeId($this->getObjId());
139 }
140
141 // default values
142 if (!$this->goto_caption) {
143 $this->goto_caption = "url";
144 }
145 }
146
147 $recipient_ids = array();
148 foreach (array_unique($a_user_ids) as $user_id) {
149 // author of change should not get notification
150 if ($this->changed_by == $user_id) {
151 continue;
152 }
153 if ($this->composeAndSendMail($user_id, $a_goto_additional, $a_permission)) {
154 $recipient_ids[] = $user_id;
155 }
156 }
157
158 return $recipient_ids;
159 }
static _getAllReferences($a_id)
get all reference ids of object
composeAndSendMail($a_user_id, $a_goto_additional=null, $a_permission="read")
Send notification to single recipient.

References ilObject\_getAllReferences(), composeAndSendMail(), ilMailNotification\getObjId(), and ilMailNotification\getRefId().

+ Here is the call graph for this function:

◆ setChangedByUserId()

ilSystemNotification::setChangedByUserId (   $a_id)

Set changed by user id.

Parameters
int$a_id

Definition at line 93 of file class.ilSystemNotification.php.

94 {
95 $this->changed_by = (int) $a_id;
96
97 include_once "Services/User/classes/class.ilUserUtil.php";
98 }

◆ setGotoLangId()

ilSystemNotification::setGotoLangId (   $a_lang_id)

Set goto lang id.

Parameters
string$a_lang_id

Definition at line 83 of file class.ilSystemNotification.php.

84 {
85 $this->goto_caption = (string) $a_lang_id;
86 }

◆ setIntroductionDirect()

ilSystemNotification::setIntroductionDirect (   $a_text)

Set introduction text.

Parameters
string$a_text

Definition at line 53 of file class.ilSystemNotification.php.

54 {
55 $this->introduction_direct = trim($a_text);
56 }

◆ setIntroductionLangId()

ilSystemNotification::setIntroductionLangId (   $a_lang_id)

Set introduction lang id.

Parameters
string$a_lang_id

Definition at line 43 of file class.ilSystemNotification.php.

44 {
45 $this->introduction = (string) $a_lang_id;
46 }

◆ setReasonLangId()

ilSystemNotification::setReasonLangId (   $a_lang_id)

Set reason lang id.

Parameters
string$a_lang_id

Definition at line 73 of file class.ilSystemNotification.php.

74 {
75 $this->reason = (string) $a_lang_id;
76 }

◆ setSubjectLangId()

ilSystemNotification::setSubjectLangId (   $a_lang_id)

Set subject lang id.

Parameters
string$a_lang_id

Definition at line 33 of file class.ilSystemNotification.php.

34 {
35 $this->subject_lang_id = (string) $a_lang_id;
36 }

◆ setTaskLangId()

ilSystemNotification::setTaskLangId (   $a_lang_id)

Set task lang id.

Parameters
string$a_lang_id

Definition at line 63 of file class.ilSystemNotification.php.

64 {
65 $this->task = (string) $a_lang_id;
66 }

Field Documentation

◆ $additional

ilSystemNotification::$additional
protected

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

◆ $all_ref_ids

ilSystemNotification::$all_ref_ids
protected

Definition at line 26 of file class.ilSystemNotification.php.

◆ $changed_by

ilSystemNotification::$changed_by
protected

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

◆ $goto_caption

ilSystemNotification::$goto_caption
protected

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

◆ $introduction

ilSystemNotification::$introduction
protected

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

◆ $introduction_direct

ilSystemNotification::$introduction_direct
protected

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

◆ $reason

ilSystemNotification::$reason
protected

Definition at line 22 of file class.ilSystemNotification.php.

◆ $subject_lang_id

ilSystemNotification::$subject_lang_id
protected

Definition at line 18 of file class.ilSystemNotification.php.

◆ $task

ilSystemNotification::$task
protected

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


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