Skip to content

Commit

Permalink
Merge branch 'MDL-33307' of git://github.com/danpoltawski/moodle
Browse files Browse the repository at this point in the history
  • Loading branch information
Aparup Banerjee committed May 25, 2012
2 parents 09cb95f + b6283a4 commit b74ad70
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 18 deletions.
16 changes: 14 additions & 2 deletions course/format/renderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ protected function section_left_content($section, $course, $onsectionpage) {

if ($section->section != 0) {
// Only in the non-general sections.
if ($course->marker == $section->section) {
if ($this->is_section_current($section, $course)) {
$o = get_accesshide(get_string('currentsection', 'format_'.$course->format));
}
}
Expand Down Expand Up @@ -121,7 +121,7 @@ protected function section_header($section, $course, $onsectionpage) {
// Only in the non-general sections.
if (!$section->visible) {
$sectionstyle = ' hidden';
} else if ($course->marker == $section->section) {
} else if ($this->is_section_current($section, $course)) {
$sectionstyle = ' current';
}
$linktitle = ($course->coursedisplay == COURSE_DISPLAY_MULTIPAGE);
Expand Down Expand Up @@ -669,4 +669,16 @@ protected function format_summary_text($section) {
$options->overflowdiv = true;
return format_text($summarytext, $section->summaryformat, $options);
}

/**
* Is the section passed in the current section? (Note this isn't strictly
* a renderering method, but neater here).
*
* @param stdClass $course The course entry from DB
* @param stdClass $section The course_section entry from the DB
* @return bool true if the section is current
*/
protected function is_section_current($section, $course) {
return ($course->marker == $section->section);
}
}
47 changes: 31 additions & 16 deletions course/format/weeks/lib.php
Original file line number Diff line number Diff line change
Expand Up @@ -67,25 +67,20 @@ function callback_weeks_definition() {
function callback_weeks_get_section_name($course, $section) {
// We can't add a node without text
if (!empty($section->name)) {
// Return the name the user set
return format_string($section->name, true, array('context' => get_context_instance(CONTEXT_COURSE, $course->id)));
// Return the name the user set.
return format_string($section->name, true, array('context' => context_course::instance($course->id)));
} else if ($section->section == 0) {
// Return the section0name
// Return the general section.
return get_string('section0name', 'format_weeks');
} else {
// Got to work out the date of the week so that we can show it
$sections = get_all_sections($course->id);
$weekdate = $course->startdate+7200;
foreach ($sections as $sec) {
if ($sec->id == $section->id) {
break;
} else if ($sec->section != 0) {
$weekdate += 604800;
}
}
$strftimedateshort = ' '.get_string('strftimedateshort');
$weekday = userdate($weekdate, $strftimedateshort);
$endweekday = userdate($weekdate+518400, $strftimedateshort);
$dates = format_weeks_get_section_dates($section, $course);

// We subtract 24 hours for display purposes.
$dates->end = ($dates->end - 86400);

$dateformat = ' '.get_string('strftimedateshort');
$weekday = userdate($dates->start, $dateformat);
$endweekday = userdate($dates->end, $dateformat);
return $weekday.' - '.$endweekday;
}
}
Expand All @@ -102,3 +97,23 @@ function callback_weeks_ajax_support() {
$ajaxsupport->testedbrowsers = array('MSIE' => 6.0, 'Gecko' => 20061111, 'Safari' => 531, 'Chrome' => 6.0);
return $ajaxsupport;
}

/**
* Return the start and end date of the passed section
*
* @param stdClass $section The course_section entry from the DB
* @param stdClass $course The course entry from DB
* @return stdClass property start for startdate, property end for enddate
*/
function format_weeks_get_section_dates($section, $course) {
$oneweekseconds = 604800;
// Hack alert. We add 2 hours to avoid possible DST problems. (e.g. we go into daylight
// savings and the date changes.
$startdate = $course->startdate + 7200;

$dates = new stdClass();
$dates->start = $startdate + ($oneweekseconds * ($section->section - 1));
$dates->end = $dates->start + $oneweekseconds;

return $dates;
}
19 changes: 19 additions & 0 deletions course/format/weeks/renderer.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

defined('MOODLE_INTERNAL') || die();
require_once($CFG->dirroot.'/course/format/renderer.php');
require_once($CFG->dirroot.'/course/format/weeks/lib.php');


/**
Expand Down Expand Up @@ -58,4 +59,22 @@ protected function end_section_list() {
protected function page_title() {
return get_string('weeklyoutline');
}

/**
* Is the section passed in the current section?
*
* @param stdClass $section The course_section entry from the DB
* @param stdClass $course The course entry from DB
* @return bool true if the section is current
*/
protected function is_section_current($section, $course) {
if ($section->section < 1) {
return false;
}

$timenow = time();
$dates = format_weeks_get_section_dates($section, $course);

return (($timenow >= $dates->start) && ($timenow < $dates->end));
}
}

0 comments on commit b74ad70

Please sign in to comment.