ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilCourseMailTemplateTutorContext.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4include_once './Services/Mail/classes/class.ilMailTemplateContext.php';
5
13{
14 const ID = 'crs_context_tutor_manual';
15
19 public function getId()
20 {
21 return self::ID;
22 }
23
27 public function getTitle()
28 {
29 global $lng;
30
31 $lng->loadLanguageModule('crs');
32
33 return $lng->txt('crs_mail_context_tutor_title');
34 }
35
39 public function getDescription()
40 {
41 global $lng;
42
43 $lng->loadLanguageModule('crs');
44
45 return $lng->txt('crs_mail_context_tutor_info');
46 }
47
52 public function getSpecificPlaceholders()
53 {
57 global $lng;
58
59 $lng->loadLanguageModule('crs');
60 $lng->loadLanguageModule('trac');
61
62 // tracking settings
63 include_once 'Services/Tracking/classes/class.ilObjUserTracking.php';
64 $tracking = new ilObjUserTracking();
65
66
67 $placeholders = array();
68
69
70 $placeholders['crs_title'] = array(
71 'placeholder' => 'COURSE_TITLE',
72 'label' => $lng->txt('crs_title')
73 );
74
75 $placeholders['crs_status'] = array(
76 'placeholder' => 'COURSE_STATUS',
77 'label' => $lng->txt('trac_status')
78 );
79
80 $placeholders['crs_mark'] = array(
81 'placeholder' => 'COURSE_MARK',
82 'label' => $lng->txt('trac_mark')
83 );
84
85 if($tracking->hasExtendedData(ilObjUserTracking::EXTENDED_DATA_SPENT_SECONDS))
86 {
87 $placeholders['crs_time_spent'] = array(
88 'placeholder' => 'COURSE_TIME_SPENT',
89 'label' => $lng->txt('trac_spent_seconds')
90 );
91 }
92
93 if($tracking->hasExtendedData(ilObjUserTracking::EXTENDED_DATA_LAST_ACCESS))
94 {
95 $placeholders['crs_first_access'] = array(
96 'placeholder' => 'COURSE_FIRST_ACCESS',
97 'label' => $lng->txt('trac_first_access')
98 );
99
100 $placeholders['crs_last_access'] = array(
101 'placeholder' => 'COURSE_LAST_ACCESS',
102 'label' => $lng->txt('trac_last_access')
103 );
104 }
105
106
107 $placeholders['crs_link'] = array(
108 'placeholder' => 'COURSE_LINK',
109 'label' => $lng->txt('crs_mail_permanent_link')
110 );
111
112 return $placeholders;
113 }
114
118 public function resolveSpecificPlaceholder($placeholder_id, array $context_parameters, ilObjUser $recipient = null, $html_markup = false)
119 {
123 global $ilObjDataCache;
124
125 if($recipient === null && !in_array($placeholder_id, array('crs_title', 'crs_link')))
126 {
127 return '';
128 }
129
130 $obj_id = $ilObjDataCache->lookupObjId($context_parameters['ref_id']);
131
132 include_once 'Services/Tracking/classes/class.ilObjUserTracking.php';
133 $tracking = new ilObjUserTracking();
134
135 switch($placeholder_id)
136 {
137 case 'crs_title':
138 return $ilObjDataCache->lookupTitle($obj_id);
139
140 case 'crs_link':
141 require_once './Services/Link/classes/class.ilLink.php';
142 return ilLink::_getLink($context_parameters['ref_id'], 'crs');
143
144 case 'crs_status':
145 include_once './Services/Tracking/classes/class.ilLPStatus.php';
146 include_once './Services/Tracking/classes/class.ilLearningProgressBaseGUI.php';
147 $status = ilLPStatus::_lookupStatus($obj_id, $recipient->getId());
148 if(!$status)
149 {
151 }
152 return ilLearningProgressBaseGUI::_getStatusText($status, $this->getLanguage());
153
154 case 'crs_mark':
155 include_once './Services/Tracking/classes/class.ilLPMarks.php';
156 $mark = ilLPMarks::_lookupMark($recipient->getId(), $obj_id);
157 return strlen(trim($mark)) ? $mark : '-';
158
159 case 'crs_time_spent':
160 if($tracking->hasExtendedData(ilObjUserTracking::EXTENDED_DATA_SPENT_SECONDS))
161 {
162 include_once './Services/Tracking/classes/class.ilLearningProgress.php';
163 $progress = ilLearningProgress::_getProgress($recipient->getId(), $obj_id);
164 if(isset($progress['spent_seconds']))
165 {
166 include_once './Services/Utilities/classes/class.ilFormat.php';
167 return ilFormat::_secondsToString($progress['spent_seconds'], false, $this->getLanguage());
168 }
169 }
170 break;
171
172 case 'crs_first_access':
173 if($tracking->hasExtendedData(ilObjUserTracking::EXTENDED_DATA_LAST_ACCESS))
174 {
175 include_once './Services/Tracking/classes/class.ilLearningProgress.php';
176 $progress = ilLearningProgress::_getProgress($recipient->getId(), $obj_id);
177 if(isset($progress['access_time_min']))
178 {
179 return ilDatePresentation::formatDate(new ilDateTime($progress['access_time_min'], IL_CAL_UNIX));
180 }
181 }
182 break;
183
184 case 'crs_last_access':
185 if($tracking->hasExtendedData(ilObjUserTracking::EXTENDED_DATA_LAST_ACCESS))
186 {
187 include_once './Services/Tracking/classes/class.ilLearningProgress.php';
188 $progress = ilLearningProgress::_getProgress($recipient->getId(), $obj_id);
189 if(isset($progress['access_time']))
190 {
191 return ilDatePresentation::formatDate(new ilDateTime($progress['access_time'], IL_CAL_UNIX));
192 }
193 }
194 break;
195 }
196
197 return '';
198 }
199}
200?>
const IL_CAL_UNIX
static formatDate(ilDateTime $date)
Format a date @access public.
@classDescription Date and time handling
_secondsToString($seconds, $force_with_seconds=false, $a_lng=null)
converts seconds to string: Long: 7 days 4 hour(s) ...
_lookupMark($a_usr_id, $a_obj_id)
static _lookupStatus($a_obj_id, $a_user_id, $a_create=true)
Lookup status.
const LP_STATUS_NOT_ATTEMPTED_NUM
_getStatusText($a_status, $a_lng=null)
Get status alt text.
_getProgress($a_user_id, $a_obj_id)
Class ilMailTemplateContext.
getSpecificPlaceholders()
Return an array of placeholders.
resolveSpecificPlaceholder($placeholder_id, array $context_parameters, ilObjUser $recipient=null, $html_markup=false)
global $lng
Definition: privfeed.php:40