mirror of
https://github.com/moodle/moodle.git
synced 2025-01-29 19:50:14 +01:00
Added a "topics" format. it's very similar to the "Weeks" format,
except it isn't constrained by times. Useful for flexible courses where the pace isn't known and is subject to change. The teacher can "mark" the current topic and change this marking as necessary.
This commit is contained in:
parent
30e1a2ee55
commit
0b35af180a
@ -4,7 +4,8 @@ $MAXNEWSDISPLAY = 4;
|
||||
|
||||
$FORMATS = array (
|
||||
"1" => "Weekly layout",
|
||||
"2" => "Social layout"
|
||||
"2" => "Social layout",
|
||||
"3" => "Topics layout"
|
||||
);
|
||||
|
||||
|
||||
|
219
course/topics.php
Normal file
219
course/topics.php
Normal file
@ -0,0 +1,219 @@
|
||||
<?PHP // $Id$
|
||||
// Display the whole course as "topics" made of of modules
|
||||
// In fact, this is very similar to the "weeks" format, in that
|
||||
// each "topic" is actually a week. The main difference is that
|
||||
// the dates aren't printed - it's just an aesthetic thing for
|
||||
// courses that aren't so rigidly defined by time.
|
||||
// Included from "view.php"
|
||||
|
||||
include("../mod/discuss/lib.php");
|
||||
|
||||
if (! $rawweeks = get_records("course_weeks", "course", $course->id) ) {
|
||||
$week->course = $course->id; // Create a default week.
|
||||
$week->week = 0;
|
||||
$week->id = insert_record("course_weeks", $week);
|
||||
if (! $rawweeks = get_records("course_weeks", "course", $course->id) ) {
|
||||
error("Error finding or creating week structures for this course");
|
||||
}
|
||||
}
|
||||
|
||||
foreach($rawweeks as $cw) { //Index the weeks
|
||||
$weeks[$cw->week] = $cw;
|
||||
}
|
||||
|
||||
if (isset($topic)) {
|
||||
if ($topic == "all") {
|
||||
unset($USER->topic);
|
||||
} else {
|
||||
$USER->topic = $topic;
|
||||
}
|
||||
}
|
||||
|
||||
if (isteacher($course->id) and isset($marker)) {
|
||||
$course->marker = $marker;
|
||||
if (! set_field("course", "marker", $marker, "id", $course->id)) {
|
||||
error("Could not mark that topic for this course");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Layout the whole page as three big columns.
|
||||
echo "<TABLE BORDER=0 CELLPADDING=3 CELLSPACING=0 WIDTH=100%>";
|
||||
echo "<TR VALIGN=top><TD VALIGN=top WIDTH=180>";
|
||||
|
||||
// Layout the left column
|
||||
|
||||
|
||||
// Links to people
|
||||
|
||||
print_simple_box("People", $align="CENTER", $width="100%", $color="$THEME->cellheading");
|
||||
$moddata[]="<A HREF=\"../user/index.php?id=$course->id\">List of all people</A>";
|
||||
$modicon[]="<IMG SRC=\"../user/users.gif\" HEIGHT=16 WIDTH=16 ALT=\"List of everyone\">";
|
||||
$moddata[]="<A HREF=\"../user/view.php?id=$USER->id&course=$course->id\">Edit my profile</A>";
|
||||
$modicon[]="<IMG SRC=\"../user/user.gif\" HEIGHT=16 WIDTH=16 ALT=\"Me\">";
|
||||
print_side_block("", $moddata, "", $modicon);
|
||||
|
||||
|
||||
// Then all the links to module types
|
||||
|
||||
$moddata = array();
|
||||
$modicon = array();
|
||||
if ($modtype) {
|
||||
foreach ($modtype as $modname => $modfullname) {
|
||||
$moddata[] = "<A HREF=\"../mod/$modname/index.php?id=$course->id\">".$modfullname."s</A>";
|
||||
$modicon[] = "<IMG SRC=\"../mod/$modname/icon.gif\" HEIGHT=16 WIDTH=16 ALT=\"$modfullname\">";
|
||||
}
|
||||
}
|
||||
print_simple_box("Activities", $align="CENTER", $width="100%", $color="$THEME->cellheading");
|
||||
print_side_block("", $moddata, "", $modicon);
|
||||
|
||||
// Print a form to search discussions
|
||||
print_simple_box("Search Discussions", $align="CENTER", $width="100%", $color="$THEME->cellheading");
|
||||
echo "<DIV ALIGN=CENTER>";
|
||||
print_discussion_search_form($course);
|
||||
echo "</DIV>";
|
||||
|
||||
// Admin links and controls
|
||||
|
||||
if (isteacher($course->id)) {
|
||||
$adminicon[]="<IMG SRC=\"../pix/i/edit.gif\" HEIGHT=16 WIDTH=16 ALT=\"Edit\">";
|
||||
if ($USER->editing) {
|
||||
$admindata[]="<A HREF=\"view.php?id=$course->id&edit=off\">Turn editing off</A>";
|
||||
} else {
|
||||
$admindata[]="<A HREF=\"view.php?id=$course->id&edit=on\">Turn editing on</A>";
|
||||
}
|
||||
|
||||
$admindata[]="<A HREF=\"edit.php?id=$course->id\">Course settings...</A>";
|
||||
$adminicon[]="<IMG SRC=\"../pix/i/settings.gif\" HEIGHT=16 WIDTH=16 ALT=\"Course\">";
|
||||
$admindata[]="<A HREF=\"log.php?id=$course->id\">Logs...</A>";
|
||||
$adminicon[]="<IMG SRC=\"../pix/i/log.gif\" HEIGHT=16 WIDTH=16 ALT=\"Log\">";
|
||||
$admindata[]="<A HREF=\"../files/index.php?id=$course->id\">Files...</A>";
|
||||
$adminicon[]="<IMG SRC=\"../files/pix/files.gif\" HEIGHT=16 WIDTH=16 ALT=\"Files\">";
|
||||
|
||||
print_simple_box("Administration", $align="CENTER", $width="100%", $color="$THEME->cellheading");
|
||||
print_side_block("", $admindata, "", $adminicon);
|
||||
}
|
||||
|
||||
|
||||
// Start main column
|
||||
echo "</TD><TD WIDTH=\"*\">";
|
||||
|
||||
print_simple_box("Topic Outline", $align="CENTER", $width="100%", $color="$THEME->cellheading");
|
||||
|
||||
// Everything below uses "week" terminology - each "week" is a topic.
|
||||
|
||||
// Now all the weekly modules
|
||||
$timenow = time();
|
||||
$weekdate = $course->startdate; // this should be 0:00 Monday of that week
|
||||
$week = 1;
|
||||
$weekofseconds = 604800;
|
||||
|
||||
echo "<TABLE BORDER=0 CELLPADDING=8 CELLSPACING=0 WIDTH=100%>";
|
||||
while ($weekdate < $course->enddate) {
|
||||
|
||||
$nextweekdate = $weekdate + ($weekofseconds);
|
||||
|
||||
if (isset($USER->topic)) { // Just display a single topic
|
||||
if ($USER->topic != $week) {
|
||||
$week++;
|
||||
$weekdate = $nextweekdate;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$currenttopic = ($course->marker == $week);
|
||||
|
||||
if ($currenttopic) {
|
||||
$highlightcolor = $THEME->cellheading2;
|
||||
} else {
|
||||
$highlightcolor = $THEME->cellheading;
|
||||
}
|
||||
|
||||
echo "<TR>";
|
||||
echo "<TD NOWRAP BGCOLOR=\"$highlightcolor\" VALIGN=top WIDTH=20>";
|
||||
echo "<P ALIGN=CENTER><FONT SIZE=3><B>$week</B></FONT></P>";
|
||||
echo "</TD>";
|
||||
|
||||
echo "<TD VALIGN=top BGCOLOR=\"$THEME->cellcontent\" WIDTH=\"100%\">";
|
||||
|
||||
if (! $thisweek = $weeks[$week]) {
|
||||
$thisweek->course = $course->id; // Create a new week structure
|
||||
$thisweek->week = $week;
|
||||
$thisweek->summary = "";
|
||||
$thisweek->id = insert_record("course_weeks", $thisweek);
|
||||
}
|
||||
|
||||
if ($USER->editing) {
|
||||
$thisweek->summary .= " <A HREF=editweek.php?id=$thisweek->id><IMG SRC=\"../pix/t/edit.gif\" BORDER=0 ALT=\"Edit summary\"></A></P>";
|
||||
}
|
||||
|
||||
echo text_to_html($thisweek->summary);
|
||||
|
||||
echo "<P>";
|
||||
if ($thisweek->sequence) {
|
||||
|
||||
$thisweekmods = explode(",", $thisweek->sequence);
|
||||
|
||||
foreach ($thisweekmods as $modnumber) {
|
||||
$mod = $mods[$modnumber];
|
||||
$instancename = get_field("$mod->modname", "name", "id", "$mod->instance");
|
||||
echo "<IMG SRC=\"../mod/$mod->modname/icon.gif\" HEIGHT=16 WIDTH=16 ALT=\"$mod->modfullname\"> <A HREF=\"../mod/$mod->modname/view.php?id=$mod->id\">$instancename</A>";
|
||||
if ($USER->editing) {
|
||||
echo make_editing_buttons($mod->id);
|
||||
}
|
||||
echo "<BR>\n";
|
||||
}
|
||||
}
|
||||
echo "</UL></P>\n";
|
||||
|
||||
if ($USER->editing) {
|
||||
echo "<DIV ALIGN=right>";
|
||||
popup_form("$CFG->wwwroot/course/mod.php?id=$course->id&week=$week&add=",
|
||||
$modtypes, "week$week", "", "Add...");
|
||||
echo "</DIV>";
|
||||
}
|
||||
|
||||
echo "</TD>";
|
||||
echo "<TD NOWRAP BGCOLOR=\"$highlightcolor\" VALIGN=top ALIGN=CENTER WIDTH=10>";
|
||||
echo "<FONT SIZE=1>";
|
||||
if (isset($USER->topic)) {
|
||||
echo "<A HREF=\"view.php?id=$course->id&topic=all\" TITLE=\"Show all topics\"><IMG SRC=../pix/i/allweeks.gif BORDER=0></A><BR><BR>";
|
||||
} else {
|
||||
echo "<A HREF=\"view.php?id=$course->id&topic=$week\" TITLE=\"Show only topic $week\"><IMG SRC=../pix/i/oneweek.gif BORDER=0></A><BR><BR>";
|
||||
}
|
||||
if ($USER->editing and $course->marker != $week) {
|
||||
echo "<A HREF=\"view.php?id=$course->id&marker=$week\" TITLE=\"Mark this topic as the current topic\"><IMG SRC=../pix/i/marker.gif BORDER=0></A><BR><BR>";
|
||||
}
|
||||
echo "</TD>";
|
||||
echo "</TR>";
|
||||
echo "<TR><TD COLSPAN=3><IMG SRC=\"../pix/spacer.gif\" WIDTH=1 HEIGHT=1></TD></TR>";
|
||||
|
||||
$week++;
|
||||
$weekdate = $nextweekdate;
|
||||
}
|
||||
echo "</TABLE>";
|
||||
|
||||
|
||||
echo "</TD><TD WIDTH=180>";
|
||||
|
||||
// Print all the news items.
|
||||
|
||||
if ($news = get_course_news_forum($course->id)) {
|
||||
print_simple_box("Latest News", $align="CENTER", $width="100%", $color="$THEME->cellheading");
|
||||
print_simple_box_start("CENTER", "100%", "#FFFFFF", 3, 0);
|
||||
echo "<FONT SIZE=1>";
|
||||
forum_latest_topics($news->id, 5, "minimal", "DESC", false);
|
||||
echo "</FONT>";
|
||||
print_simple_box_end();
|
||||
}
|
||||
echo "<BR>";
|
||||
|
||||
// Print all the recent activity
|
||||
print_simple_box("Recent Activity", $align="CENTER", $width="100%", $color="$THEME->cellheading");
|
||||
print_simple_box_start("CENTER", "100%", "#FFFFFF", 3, 0);
|
||||
print_recent_activity($course);
|
||||
print_simple_box_end();
|
||||
|
||||
echo "</TD></TR></TABLE>\n";
|
||||
|
||||
?>
|
@ -58,6 +58,9 @@
|
||||
case 2:
|
||||
include("social.php");
|
||||
break;
|
||||
case 3:
|
||||
include("topics.php");
|
||||
break;
|
||||
default:
|
||||
error("Course format not defined yet!");
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user