Implemented api_get_local_time in many chamilo tools - First pass (see CT#599)

skala
Guillaume Viguier 16 years ago
parent 9e5344a900
commit e529f97ae9
  1. 1
      main/admin/settings.php
  2. 2
      main/admin/user_edit.php
  3. 24
      main/calendar/agenda.inc.php
  4. 1
      main/document/document.php
  5. 4
      main/dropbox/index.php
  6. 5
      main/exercice/exercice.php
  7. 2
      main/forum/index.php
  8. 2
      main/forum/viewforum.php
  9. 2
      main/forum/viewthread_flat.inc.php
  10. 2
      main/forum/viewthread_nested.inc.php
  11. 2
      main/forum/viewthread_threaded.inc.php
  12. 2
      main/gradebook/lib/fe/gradebooktable.class.php
  13. 2
      main/gradebook/lib/gradebook_data_generator.class.php
  14. 4
      main/inc/lib/blog.lib.php
  15. 6
      main/inc/lib/glossary.lib.php
  16. 48
      main/inc/lib/main_api.lib.php
  17. 3
      main/mySpace/access_details.php
  18. 12
      main/work/work.php

@ -261,6 +261,7 @@ if (!empty($_GET['category']) && !in_array($_GET['category'], array('Plugins', '
*/ */
case "select": case "select":
$form->addElement('select', $row['variable'], get_lang($row['comment']), call_user_func('select_'.$row['variable']), $hideme); $form->addElement('select', $row['variable'], get_lang($row['comment']), call_user_func('select_'.$row['variable']), $hideme);
$default_values[$row['variable']] = $row['selected_value'];
break; break;
} }
} }

@ -82,6 +82,8 @@ $user_data = Database::fetch_array($res, 'ASSOC');
$user_data['platform_admin'] = is_null($user_data['is_admin']) ? 0 : 1; $user_data['platform_admin'] = is_null($user_data['is_admin']) ? 0 : 1;
$user_data['send_mail'] = 0; $user_data['send_mail'] = 0;
$user_data['old_password'] = $user_data['password']; $user_data['old_password'] = $user_data['password'];
//Convert the registration date of the user
$user_data['registration_date'] = api_get_local_time($user_data['registration_date'], null, null, date_default_timezone_get());
unset($user_data['password']); unset($user_data['password']);
$user_data = array_merge($user_data, Usermanager :: get_extra_user_data($user_id, true)); $user_data = array_merge($user_data, Usermanager :: get_extra_user_data($user_id, true));

@ -443,8 +443,8 @@ function display_monthcalendar($month, $year)
foreach ($agenda_item as $key=>$value) { foreach ($agenda_item as $key=>$value) {
$month_start_date = (int)substr($value['start_date'],5,2); $month_start_date = (int)substr($value['start_date'],5,2);
if ($month == $month_start_date) { if ($month == $month_start_date) {
$start_time= date("H:i",strtotime($value['start_date'])); $start_time = api_get_local_time($value['start_date'], "H:i", null, date_default_timezone_get());
$end_time= date("H:i",strtotime($value['end_date'])); $end_time = api_get_local_time($value['end_date'], "H:i", null, date_default_timezone_get());
if ($value['end_date']=='0000-00-00 00:00:00'){ if ($value['end_date']=='0000-00-00 00:00:00'){
$dayheader .= '<br />'.get_lang("Work").'<br />'; $dayheader .= '<br />'.get_lang("Work").'<br />';
@ -2139,14 +2139,14 @@ function display_agenda_items()
--------------------------------------------------*/ --------------------------------------------------*/
echo "<tr class='row_odd'>"; echo "<tr class='row_odd'>";
echo "\t\t<td>".get_lang("StartTimeWindow").": "; echo "\t\t<td>".get_lang("StartTimeWindow").": ";
echo api_ucfirst(format_locale_date($dateFormatLong,strtotime($myrow["start_date"])))."&nbsp;&nbsp;&nbsp;"; echo api_ucfirst(api_get_local_time($myrow['start_date'], $dateFormatLong, null, date_default_timezone_get()))."&nbsp;&nbsp;&nbsp;";
echo api_ucfirst(strftime($timeNoSecFormat,strtotime($myrow["start_date"]))).""; echo api_ucfirst(api_get_local_time($myrow['start_date'], $timeNoSecFormat, null, date_default_timezone_get()))."";
echo "</td>\n"; echo "</td>\n";
echo "\t\t<td>"; echo "\t\t<td>";
if ($myrow["end_date"]<>"0000-00-00 00:00:00") { if ($myrow["end_date"]<>"0000-00-00 00:00:00") {
echo get_lang("EndTimeWindow").": "; echo get_lang("EndTimeWindow").": ";
echo api_ucfirst(format_locale_date($dateFormatLong,strtotime($myrow["end_date"])))."&nbsp;&nbsp;&nbsp;"; echo api_ucfirst(api_get_local_time($myrow['end_date'], $dateFormatLong, null, date_default_timezone_get()))."&nbsp;&nbsp;&nbsp;";
echo api_ucfirst(strftime($timeNoSecFormat,strtotime($myrow["end_date"]))).""; echo api_ucfirst(api_get_local_time($myrow['end_date'], $timeNoSecFormat, null, date_default_timezone_get()))."";
} }
echo "</td>\n"; echo "</td>\n";
@ -2432,12 +2432,12 @@ function display_one_agenda_item($agenda_id)
--------------------------------------------------*/ --------------------------------------------------*/
echo "\t<tr class='row_odd'>\n"; echo "\t<tr class='row_odd'>\n";
echo "\t\t<td>".get_lang("StartTime").": "; echo "\t\t<td>".get_lang("StartTime").": ";
echo api_ucfirst(format_locale_date($dateFormatLong,strtotime($myrow["start_date"])))."&nbsp;&nbsp;&nbsp;"; echo api_ucfirst(api_get_local_time($myrow['start_date'], $dateFormatLong, null, date_default_timezone_get()))."&nbsp;&nbsp;&nbsp;";
echo api_ucfirst(strftime($timeNoSecFormat,strtotime($myrow["start_date"]))).""; echo api_ucfirst(api_get_local_time($myrow['start_date'], $timeNoSecFormat, null, date_default_timezone_get()))."";
echo "</td>\n"; echo "</td>\n";
echo "\t\t<td>".get_lang("EndTime").": "; echo "\t\t<td>".get_lang("EndTime").": ";
echo api_ucfirst(format_locale_date($dateFormatLong,strtotime($myrow["end_date"])))."&nbsp;&nbsp;&nbsp;"; echo api_ucfirst(api_get_local_time($myrow['end_date'], $dateFormatLong, null, date_default_timezone_get()))."&nbsp;&nbsp;&nbsp;";
echo api_ucfirst(strftime($timeNoSecFormat,strtotime($myrow["end_date"]))).""; echo api_ucfirst(api_get_local_time($myrow['end_date'], $timeNoSecFormat, null, date_default_timezone_get()))."";
echo "</td>\n"; echo "</td>\n";
/*-------------------------------------------------- /*--------------------------------------------------
@ -3118,7 +3118,7 @@ function get_agendaitems($month, $year)
while ($item = Database::fetch_array($result)) while ($item = Database::fetch_array($result))
{ {
$agendaday = date('j',strtotime($item['start_date'])); $agendaday = date('j',strtotime($item['start_date']));
$time= date('H:i',strtotime($item['start_date'])); $time = api_get_local_time($item['start_date'], 'H:i', null, date_default_timezone_get());
$URL = $root_url.'main/calendar/agenda.php?cidReq='.$mycourse['id']."&amp;day=$agendaday&amp;month=$month&amp;year=$year#$agendaday"; // RH //Patrick Cool: to highlight the relevant agenda item $URL = $root_url.'main/calendar/agenda.php?cidReq='.$mycourse['id']."&amp;day=$agendaday&amp;month=$month&amp;year=$year#$agendaday"; // RH //Patrick Cool: to highlight the relevant agenda item
$items[$agendaday][$item['start_time']] .= '<i>'.$time.'</i> <a href="'.$URL.'" title="'.$mycourse['name'].'">'.$mycourse['official_code'].'</a> '.$item['title'].'<br />'; $items[$agendaday][$item['start_time']] .= '<i>'.$time.'</i> <a href="'.$URL.'" title="'.$mycourse['name'].'">'.$mycourse['official_code'].'</a> '.$item['title'].'<br />';
} }
@ -3603,7 +3603,7 @@ function get_week_agendaitems($courses_dbs, $month, $year, $week = '')
while ($item = Database::fetch_array($result)) while ($item = Database::fetch_array($result))
{ {
$agendaday = date("j",strtotime($item['start_date'])); $agendaday = date("j",strtotime($item['start_date']));
$time= date("H:i",strtotime($item['start_date'])); $time = api_get_local_time($item['start_date'], "H:i", null, date_default_timezone_get());
if ($setting_agenda_link == 'coursecode') if ($setting_agenda_link == 'coursecode')
{ {

@ -803,6 +803,7 @@ if(isset($docs_and_folders) && is_array($docs_and_folders))
//last edit date //last edit date
$last_edit_date=$id['lastedit_date']; $last_edit_date=$id['lastedit_date'];
$last_edit_date=api_get_local_time($last_edit_date, null, null, date_default_timezone_get());
$display_date = date_to_str_ago($last_edit_date).'<br><span class="dropbox_date">'.$last_edit_date.'</span>'; $display_date = date_to_str_ago($last_edit_date).'<br><span class="dropbox_date">'.$last_edit_date.'</span>';
$row[] = $invisibility_span_open.$display_date.$invisibility_span_close.'<!--uts='.strtotime($last_edit_date).'-->'; $row[] = $invisibility_span_open.$display_date.$invisibility_span_close.'<!--uts='.strtotime($last_edit_date).'-->';

@ -462,7 +462,7 @@ if ($_GET['view']=='received' OR $dropbox_cnf['sent_received_tabs']==false) {
$dropbox_file_data[]=$dropbox_file->author; $dropbox_file_data[]=$dropbox_file->author;
//$dropbox_file_data[]=$dropbox_file->description; //$dropbox_file_data[]=$dropbox_file->description;
$dropbox_file_data[]=date_to_str_ago($dropbox_file->last_upload_date).'<br><span class="dropbox_date">'.$dropbox_file->last_upload_date.'</span>'; $dropbox_file_data[]=date_to_str_ago(api_get_local_time($dropbox_file->last_upload_date, null, null, date_default_timezone_get())).'<br><span class="dropbox_date">'.api_get_local_time($dropbox_file->last_upload_date, null, null, date_default_timezone_get()).'</span>';
$action_icons=check_number_feedback($dropbox_file->id, $number_feedback).' '.get_lang('Feedback').' $action_icons=check_number_feedback($dropbox_file->id, $number_feedback).' '.get_lang('Feedback').'
<a href="'.api_get_self().'?'.api_get_cidreq().'&view_received_category='.Security::remove_XSS($_GET['view_received_category']).'&amp;view_sent_category='.Security::remove_XSS($_GET['view_sent_category']).'&amp;view='.Security::remove_XSS($_GET['view']).'&amp;action=viewfeedback&amp;id='.$dropbox_file->id.'">'.Display::return_icon('comment_bubble.gif',get_lang('Comment')).'</a> <a href="'.api_get_self().'?'.api_get_cidreq().'&view_received_category='.Security::remove_XSS($_GET['view_received_category']).'&amp;view_sent_category='.Security::remove_XSS($_GET['view_sent_category']).'&amp;view='.Security::remove_XSS($_GET['view']).'&amp;action=viewfeedback&amp;id='.$dropbox_file->id.'">'.Display::return_icon('comment_bubble.gif',get_lang('Comment')).'</a>
@ -617,7 +617,7 @@ if (!$_GET['view'] OR $_GET['view']=='sent' OR $dropbox_cnf['sent_received_tabs'
} }
$receivers_celldata = trim(trim($receivers_celldata), ','); // Removing the trailing comma. $receivers_celldata = trim(trim($receivers_celldata), ','); // Removing the trailing comma.
$dropbox_file_data[]=$receivers_celldata; $dropbox_file_data[]=$receivers_celldata;
$dropbox_file_data[]=date_to_str_ago($dropbox_file->last_upload_date).'<br><span class="dropbox_date">'.$dropbox_file->last_upload_date.'</span>'; $dropbox_file_data[]=date_to_str_ago(api_get_local_time($dropbox_file->last_upload_date, null, null, date_default_timezone_get())).'<br><span class="dropbox_date">'.api_get_local_time($dropbox_file->last_upload_date, null, null, date_default_timezone_get()).'</span>';
//$dropbox_file_data[]=$dropbox_file->author; //$dropbox_file_data[]=$dropbox_file->author;
$receivers_celldata=''; $receivers_celldata='';

@ -1268,7 +1268,8 @@ if ($_configuration['tracking_enabled'] && ($show == 'result')) {
} }
//echo '</td>'; //echo '</td>';
//echo '<td>' . $add_start_date . format_locale_date('%b %d, %Y %H:%M', $results[$i][4]) . '</td>'; //get_lang('dateTimeFormatLong') //echo '<td>' . $add_start_date . format_locale_date('%b %d, %Y %H:%M', $results[$i][4]) . '</td>'; //get_lang('dateTimeFormatLong')
$date_list = $add_start_date . format_locale_date('%b %d, %Y %H:%M', $results[$i][4]); // Date conversion
$date_list = api_get_local_time((int)$results[$i][7], null, null, date_default_timezone_get()). ' / ' . api_get_local_time((int)$results[$i][4], null, null, date_default_timezone_get());
// there are already a duration test period calculated?? // there are already a duration test period calculated??
//echo '<td>'.sprintf(get_lang('DurationFormat'), $duration).'</td>'; //echo '<td>'.sprintf(get_lang('DurationFormat'), $duration).'</td>';
@ -1410,4 +1411,4 @@ if ($origin != 'learnpath') { //so we are not in learnpath tool
<link rel="stylesheet" type="text/css" href="<?php echo $clarolineRepositoryWeb ?>css/default.css" /> <link rel="stylesheet" type="text/css" href="<?php echo $clarolineRepositoryWeb ?>css/default.css" />
<?php <?php
} }
?> ?>

@ -422,7 +422,7 @@ if (isset($_GET['action']) && $_GET['action'] == 'notify' AND isset($_GET['conte
echo "\t\t<td nowrap=\"nowrap\">"; echo "\t\t<td nowrap=\"nowrap\">";
if (!empty($forum['last_post_id'])) { if (!empty($forum['last_post_id'])) {
echo $forum['last_post_date']."<br /> ".get_lang('By').' '.display_user_link($poster_id, $name); echo api_get_local_time($forum['last_post_date'], null, null, date_default_timezone_get())."<br /> ".get_lang('By').' '.display_user_link($poster_id, $name);
} }
echo "</td>\n"; echo "</td>\n";
echo "\t\t<td nowrap=\"nowrap\" align=\"center\">"; echo "\t\t<td nowrap=\"nowrap\" align=\"center\">";

@ -430,7 +430,7 @@ if(is_array($threads)) {
// if the last post is invisible and it is not the teacher who is looking then we have to find the last visible post of the thread // if the last post is invisible and it is not the teacher who is looking then we have to find the last visible post of the thread
if (($row['visible']=='1' OR api_is_allowed_to_edit(false,true)) && $origin!='learnpath') { if (($row['visible']=='1' OR api_is_allowed_to_edit(false,true)) && $origin!='learnpath') {
$last_post=$row['thread_date']." ".get_lang('By').' '.display_user_link($row['last_poster_user_id'], $name); $last_post=api_get_local_time($row['thread_date'], null, null, date_default_timezone_get())." ".get_lang('By').' '.display_user_link($row['last_poster_user_id'], $name);
} elseif ($origin!='learnpath') { } elseif ($origin!='learnpath') {
$last_post_sql="SELECT post.*, user.firstname, user.lastname FROM $table_posts post, $table_users user WHERE post.poster_id=user.user_id AND visible='1' AND thread_id='".$row['thread_id']."' ORDER BY post_id DESC"; $last_post_sql="SELECT post.*, user.firstname, user.lastname FROM $table_posts post, $table_users user WHERE post.poster_id=user.user_id AND visible='1' AND thread_id='".$row['thread_id']."' ORDER BY post_id DESC";
$last_post_result=Database::query($last_post_sql); $last_post_result=Database::query($last_post_sql);

@ -60,7 +60,7 @@ foreach ($rows as $row) {
} else { } else {
echo $name. '<br />'; echo $name. '<br />';
} }
echo $row['post_date'].'<br /><br />'; echo api_get_local_time($row['post_date'], null, null, date_default_timezone_get()).'<br /><br />';
// get attach id // get attach id
$attachment_list=get_attachment($row['post_id']); $attachment_list=get_attachment($row['post_id']);
$id_attach = !empty($attachment_list)?$attachment_list['id']:''; $id_attach = !empty($attachment_list)?$attachment_list['id']:'';

@ -69,7 +69,7 @@ foreach ($rows as $post) {
echo '<br />'.display_user_image($post['user_id'],$name,$origin).'<br />'; echo '<br />'.display_user_image($post['user_id'],$name,$origin).'<br />';
} }
echo display_user_link($post['user_id'], $name, $origin).'<br />'; echo display_user_link($post['user_id'], $name, $origin).'<br />';
echo $post['post_date'].'<br /><br />'; echo api_get_local_time($post['post_date'], null, null, date_default_timezone_get()).'<br /><br />';
// get attach id // get attach id
$attachment_list=get_attachment($post['post_id']); $attachment_list=get_attachment($post['post_id']);
$id_attach = !empty($attachment_list)?$attachment_list['id']:''; $id_attach = !empty($attachment_list)?$attachment_list['id']:'';

@ -216,7 +216,7 @@ else
} }
if (api_get_course_setting('allow_user_image_forum')) {echo '<br />'.display_user_image($rows[$display_post_id]['user_id'],$name, $origin).'<br />'; } if (api_get_course_setting('allow_user_image_forum')) {echo '<br />'.display_user_image($rows[$display_post_id]['user_id'],$name, $origin).'<br />'; }
echo display_user_link($rows[$display_post_id]['user_id'], $name, $origin).'<br />'; echo display_user_link($rows[$display_post_id]['user_id'], $name, $origin).'<br />';
echo $rows[$display_post_id]['post_date'].'<br /><br />'; echo api_get_local_time($rows[$display_post_id]['post_date'], null, null, date_default_timezone_get()).'<br /><br />';
// get attach id // get attach id
$attachment_list=get_attachment($display_post_id); $attachment_list=get_attachment($display_post_id);
$id_attach = !empty($attachment_list)?$attachment_list['id']:''; $id_attach = !empty($attachment_list)?$attachment_list['id']:'';

@ -337,4 +337,4 @@ private function build_id_column ($item) {
} }
} }
} }

@ -217,7 +217,7 @@ class GradebookDataGenerator
if (!isset($date) || empty($date)) { if (!isset($date) || empty($date)) {
return ''; return '';
} else { } else {
return date("j/n/Y g:i", $date); return api_get_local_time((int)$date, null, null, date_default_timezone_get());
} }
} }
} }

@ -734,8 +734,8 @@ class Blog {
// Prepare data // Prepare data
$blog_post_id = $blog_post['post_id']; $blog_post_id = $blog_post['post_id'];
$blog_post_text = make_clickable(stripslashes($blog_post['full_text'])); $blog_post_text = make_clickable(stripslashes($blog_post['full_text']));
$blog_post_date = api_ucfirst(format_locale_date($dateFormatLong,strtotime($blog_post['date_creation']))); $blog_post_date = api_get_local_time($blog_post['date_creation'], $dateFormatLong, null, date_default_timezone_get());
$blog_post_time = date('H:i',strtotime($blog_post['date_creation'])); $blog_post_time = api_get_local_time($blog_post['date_creation'], 'H:i', null, date_default_timezone_get());
// Create an introduction text (but keep FULL sentences) // Create an introduction text (but keep FULL sentences)
$limit = 100; //nmbr of words in introduction text $limit = 100; //nmbr of words in introduction text

@ -379,6 +379,10 @@ class GlossaryManager {
if (api_is_allowed_to_edit(null,true)) { if (api_is_allowed_to_edit(null,true)) {
$array[5] = $data[5]; $array[5] = $data[5];
} }
// Date treatment for timezones
$array[3] = api_get_local_time($array[3], null, null, date_default_timezone_get());
$array[4] = api_get_local_time($array[4], null, null, date_default_timezone_get());
$return[] = $array; $return[] = $array;
} }
@ -529,4 +533,4 @@ class GlossaryManager {
Display::display_confirmation_message(get_lang('TermMoved')); Display::display_confirmation_message(get_lang('TermMoved'));
} }
} }
?> ?>

@ -4467,3 +4467,51 @@ function api_send_mail($to, $subject, $message, $additional_headers = null, $add
$mail->ClearAddresses(); $mail->ClearAddresses();
return 1; return 1;
} }
/**
* Returns the local time in a format given as an argument
* @param string The time to be converted
* @param string The format to be used. The default format is DATETIME
* @param string The timezone to be converted to. If null, the timezone will be determined based on user preference, or timezone chosen by the admin for the platform.
* @param string The timezone to be converted from. If null, UTC will be assumed.
* @return string The converted time
*
* @author Guillaume Viguier <guillaume.viguier@beeznest.com>
*/
function api_get_local_time($time, $format=null, $to_timezone=null, $from_timezone=null) {
// Determining the timezone to be converted from
if ($from_timezone === null) {
$from_timezone = 'UTC';
}
// Determining the timezone to be converted to
if ($to_timezone === null) {
// First, get the default timezone of the server
$to_timezone = date_default_timezone_get();
// Second, see if a timezone has been chosen for the platform
$timezone_value = api_get_setting('timezone_value', 'timezones');
if ($timezone_value !== null) {
$to_timezone = $timezone_value;
}
// TODO: Get the timezone based on user preference
}
// Determine the format
if ($format === null) {
$format = 'Y-m-d H:i:s';
}
// If time is a timestamp, convert it to a string
if (is_int($time)) {
$time = date("Y-m-d H:i:s", $time);
}
try {
$date = new DateTime($time, new DateTimezone($from_timezone));
$date->setTimezone(new DateTimeZone($to_timezone));
// In the following case, the format is an internal Chamilo format, so we are using api_format_date
if (is_int($format) || strpos($format, '%') !== false) {
return api_format_date($format, strtotime($date->format("Y-m-d H:i:s")));
} else {
return $date->format($format);
}
} catch (Exception $e) {
return null;
}
}

@ -255,6 +255,9 @@ function get_connections_to_course($user_id, $course_code) {
$login_date = $row['login_course_date']; $login_date = $row['login_course_date'];
$logout_date = $row['logout_course_date']; $logout_date = $row['logout_course_date'];
$login_date = api_get_local_time($login_date, null, null, date_default_timezone_get());
$logout_date = api_get_local_time($logout_date, null, null, date_default_timezone_get());
$timestamp_login_date = strtotime($login_date); $timestamp_login_date = strtotime($login_date);
$timestamp_logout_date = strtotime($logout_date); $timestamp_logout_date = strtotime($logout_date);

@ -1194,10 +1194,12 @@ if($is_special > 0):
if (!$not_ends_on) { if (!$not_ends_on) {
define('ASSIGNMENT_EXPIRES',$time_expires); define('ASSIGNMENT_EXPIRES',$time_expires);
} }
$ends_on = api_ucfirst(format_locale_date($dateFormatLong,strtotime($homework['ends_on']))).' '; $ends_on_datetime = api_get_local_time($homework['ends_on'], null, null, date_default_timezone_get());
$ends_on .= ucfirst(strftime($timeNoSecFormat,strtotime($homework['ends_on']))); $ends_on = api_ucfirst(format_locale_date($dateFormatLong,strtotime($ends_on_datetime))).' ';
$expires_on = api_ucfirst(format_locale_date($dateFormatLong,strtotime($homework['expires_on']))).' '; $ends_on .= ucfirst(strftime($timeNoSecFormat,strtotime($ends_on_datetime)));
$expires_on .= ucfirst(strftime($timeNoSecFormat,strtotime($homework['expires_on']))); $expires_on_datetime = api_get_local_time($homework['expires_on'], null, null, date_default_timezone_get());
$expires_on = api_ucfirst(format_locale_date($dateFormatLong,strtotime($expires_on_datetime))).' ';
$expires_on .= ucfirst(strftime($timeNoSecFormat,strtotime($expires_on_datetime)));
if($has_ended) { if($has_ended) {
display_action_links($cur_dir_path, $always_show_tool_options,true); display_action_links($cur_dir_path, $always_show_tool_options,true);
Display :: display_error_message(get_lang('EndDateAlreadyPassed').' '.$ends_on); Display :: display_error_message(get_lang('EndDateAlreadyPassed').' '.$ends_on);
@ -1560,4 +1562,4 @@ if (!$display_upload_form && !$display_tool_options) {
if ($origin != 'learnpath') { if ($origin != 'learnpath') {
//we are not in the learning path tool //we are not in the learning path tool
Display :: display_footer(); Display :: display_footer();
} }

Loading…
Cancel
Save