MDL-32504 course: Add coursedisplay setting to course table
authorDan Poltawski <dan@moodle.com>
Mon, 23 Apr 2012 12:25:12 +0000 (20:25 +0800)
committerDan Poltawski <dan@moodle.com>
Fri, 4 May 2012 02:49:52 +0000 (10:49 +0800)
This will replace the course_display database table

course/edit_form.php
course/lib.php
lang/en/moodle.php
lib/db/install.xml
lib/db/upgrade.php
version.php

index 44ed742..19d1f98 100644 (file)
@@ -120,6 +120,12 @@ class course_edit_form extends moodleform {
         $mform->addHelpButton('format', 'format');
         $mform->setDefault('format', $courseconfig->format);
 
+        $mform->addElement('select', 'coursedisplay', get_string('coursedisplay'),
+            array(COURSE_DISPLAY_SINGLEPAGE => get_string('coursedisplay_single'),
+                COURSE_DISPLAY_MULTIPAGE => get_string('coursedisplay_multi')));
+        $mform->addHelpButton('coursedisplay', 'coursedisplay');
+        $mform->setDefault('coursedisplay', COURSE_DISPLAY_SINGLEPAGE);
+
         for ($i = 0; $i <= $courseconfig->maxsections; $i++) {
             $sectionmenu[$i] = "$i";
         }
index 05e486e..8f7d635 100644 (file)
@@ -46,6 +46,9 @@ define('FIRSTUSEDEXCELROW', 3);
 define('MOD_CLASS_ACTIVITY', 0);
 define('MOD_CLASS_RESOURCE', 1);
 
+define('COURSE_DISPLAY_SINGLEPAGE', 0); // display all sections on one page
+define('COURSE_DISPLAY_MULTIPAGE', 1); // split pages into a page per section
+
 function make_log_url($module, $url) {
     switch ($module) {
         case 'course':
index 618e6b1..c02c0a1 100644 (file)
@@ -291,6 +291,10 @@ $string['coursecompletion'] = 'Course completion';
 $string['coursecompletions'] = 'Course completions';
 $string['coursecreators'] = 'Course creator';
 $string['coursecreatorsdescription'] = 'Course creators can create new courses.';
+$string['coursedisplay'] = 'Course layout';
+$string['coursedisplay_help'] = 'This setting determines whether the whole course is displayed on one page or split over several pages. The setting has no affect on certain course formats, such as SCORM format.';
+$string['coursedisplay_single'] = 'Show all sections on one page';
+$string['coursedisplay_multi'] = 'Show one section per page';
 $string['coursedeleted'] = 'Deleted course {$a}';
 $string['coursefiles'] = 'Legacy course files';
 $string['coursefilesedit'] = 'Edit legacy course files';
index d75c80f..76d469e 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<XMLDB PATH="lib/db" VERSION="20120427" COMMENT="XMLDB file for core Moodle tables"
+<XMLDB PATH="lib/db" VERSION="20120504" COMMENT="XMLDB file for core Moodle tables"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="../../lib/xmldb/xmldb.xsd"
 >
         <FIELD NAME="requested" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" SEQUENCE="false" PREVIOUS="timemodified" NEXT="enablecompletion"/>
         <FIELD NAME="enablecompletion" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="1 = allow use of 'completion' progress-tracking on this course. 0 = disable completion tracking on this course." PREVIOUS="requested" NEXT="completionstartonenrol"/>
         <FIELD NAME="completionstartonenrol" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="1 = allow use of 'activty completion' progress-tracking on this course. 0 = disable activity completion tracking on this course." PREVIOUS="enablecompletion" NEXT="completionnotify"/>
-        <FIELD NAME="completionnotify" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="Notify users when they complete this course" PREVIOUS="completionstartonenrol"/>
+        <FIELD NAME="completionnotify" TYPE="int" LENGTH="1" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="Notify users when they complete this course" PREVIOUS="completionstartonenrol" NEXT="coursedisplay"/>
+        <FIELD NAME="coursedisplay" TYPE="int" LENGTH="2" NOTNULL="true" DEFAULT="0" SEQUENCE="false" COMMENT="How is the course displayed" PREVIOUS="completionnotify"/>
       </FIELDS>
       <KEYS>
         <KEY NAME="primary" TYPE="primary" FIELDS="id"/>
       </KEYS>
     </TABLE>
   </TABLES>
-</XMLDB>
\ No newline at end of file
+</XMLDB>
index 0834ac4..c13712a 100644 (file)
@@ -441,5 +441,20 @@ function xmldb_main_upgrade($oldversion) {
         upgrade_main_savepoint(true, 2012050300.02);
     }
 
+    if ($oldversion < 2012050300.03) {
+
+        // Define field coursedisplay to be added to course
+        $table = new xmldb_table('course');
+        $field = new xmldb_field('coursedisplay', XMLDB_TYPE_INTEGER, '2', null, XMLDB_NOTNULL, null, '0', 'completionnotify');
+
+        // Conditionally launch add field coursedisplay
+        if (!$dbman->field_exists($table, $field)) {
+            $dbman->add_field($table, $field);
+        }
+
+        // Main savepoint reached
+        upgrade_main_savepoint(true, 2012050300.03);
+    }
+
     return true;
 }
index 2267ddd..607d106 100644 (file)
@@ -30,7 +30,7 @@
 defined('MOODLE_INTERNAL') || die();
 
 
-$version  = 2012050300.02;              // YYYYMMDD      = weekly release date of this DEV branch
+$version  = 2012050300.03;              // YYYYMMDD      = weekly release date of this DEV branch
                                         //         RR    = release increments - 00 in DEV branches
                                         //           .XX = incremental changes