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 
4 include_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 ?>
_getProgress($a_user_id, $a_obj_id)
_lookupMark($a_usr_id, $a_obj_id)
resolveSpecificPlaceholder($placeholder_id, array $context_parameters, ilObjUser $recipient=null, $html_markup=false)
getSpecificPlaceholders()
Return an array of placeholders.
const IL_CAL_UNIX
_secondsToString($seconds, $force_with_seconds=false, $a_lng=null)
converts seconds to string: Long: 7 days 4 hour(s) ...
_getStatusText($a_status, $a_lng=null)
Get status alt text.
static formatDate(ilDateTime $date)
Format a date public.
Date and time handling
Class ilMailTemplateContext.
const LP_STATUS_NOT_ATTEMPTED_NUM
global $lng
Definition: privfeed.php:40
static _lookupStatus($a_obj_id, $a_user_id, $a_create=true)
Lookup status.