Merge branch 'MDL-38215-workshop-oracle_23' of git://github.com/mudrd8mz/moodle into...
authorDamyon Wiese <damyon@moodle.com>
Mon, 18 Mar 2013 03:46:15 +0000 (11:46 +0800)
committerDamyon Wiese <damyon@moodle.com>
Mon, 18 Mar 2013 03:46:15 +0000 (11:46 +0800)
30 files changed:
admin/user.php
backup/converter/moodle1/handlerlib.php
blog/lib.php
course/editsection_form.php
lang/en/moodle.php
lib/filelib.php
lib/yui/formchangechecker/formchangechecker.js
message/renderer.php
mod/data/edit.php
mod/data/view.php
mod/forum/discuss.php
mod/forum/view.php
mod/glossary/sql.php
mod/glossary/view.php
mod/lesson/pagetypes/shortanswer.php
mod/lesson/report.php
mod/quiz/mod_form.php
question/type/match/backup/moodle1/lib.php
question/type/multichoice/backup/moodle1/lib.php
repository/lib.php
theme/anomaly/style/general.css
theme/base/style/question.css
theme/magazine/style/core.css
theme/serenity/style/core.css
theme/splash/style/blue.css
theme/splash/style/green.css
theme/splash/style/orange.css
theme/splash/style/pagelayout.css
theme/splash/style/red.css
version.php

index e78e0cd..9cc9e70 100644 (file)
     }
 
     list($extrasql, $params) = $ufiltering->get_sql_filter();
-    $users = get_users_listing($sort, $dir, $page*$perpage, $perpage, '', '', '',
-            $extrasql, $params, $context);
+
     $usercount = get_users(false);
     $usersearchcount = get_users(false, '', false, null, "", '', '', '', '', '*', $extrasql, $params);
 
+    // Exclude guest user from list.
+    $noguestsql = '';
+    if (!empty($extrasql)) {
+        $noguestsql .= ' AND';
+    }
+    $noguestsql .= " id <> :guestid";
+    $params['guestid'] = $CFG->siteguest;
+    $users = get_users_listing($sort, $dir, $page*$perpage, $perpage, '', '', '',
+            $extrasql.$noguestsql, $params, $context);
+
     if ($extrasql !== '') {
         echo $OUTPUT->heading("$usersearchcount / $usercount ".get_string('users'));
         $usercount = $usersearchcount;
index a2744c2..94c0b1d 100644 (file)
@@ -1040,6 +1040,24 @@ class moodle1_question_bank_handler extends moodle1_xml_handler {
     /** @var array holds the instances of qtype specific conversion handlers */
     private $qtypehandlers = null;
 
+    /**
+     * Return the file manager instance used.
+     *
+     * @return moodle1_file_manager
+     */
+    public function get_file_manager() {
+        return $this->fileman;
+    }
+
+    /**
+     * Returns the information about the question category context being currently parsed
+     *
+     * @return array with keys contextid, contextlevel and contextinstanceid
+     */
+    public function get_current_category_context() {
+        return $this->currentcategory;
+    }
+
     /**
      * Registers path that are not qtype-specific
      */
@@ -1191,6 +1209,17 @@ class moodle1_question_bank_handler extends moodle1_xml_handler {
             $data['generalfeedbackformat'] = FORMAT_HTML;
         }
 
+        // Migrate files in questiontext.
+        $this->fileman->contextid = $this->currentcategory['contextid'];
+        $this->fileman->component = 'question';
+        $this->fileman->filearea  = 'questiontext';
+        $this->fileman->itemid    = $data['id'];
+        $data['questiontext'] = moodle1_converter::migrate_referenced_files($data['questiontext'], $this->fileman);
+
+        // Migrate files in generalfeedback.
+        $this->fileman->filearea  = 'generalfeedback';
+        $data['generalfeedback'] = moodle1_converter::migrate_referenced_files($data['generalfeedback'], $this->fileman);
+
         // replay the upgrade step 2010080901 - updating question image
         if (!empty($data['image'])) {
             if (textlib::substr(textlib::strtolower($data['image']), 0, 7) == 'http://') {
@@ -1736,12 +1765,41 @@ abstract class moodle1_qtype_handler extends moodle1_plugin_handler {
         foreach ($answers as $elementname => $elements) {
             foreach ($elements as $element) {
                 $answer = $this->convert_answer($element, $qtype);
+                // Migrate images in answertext.
+                if ($answer['answerformat'] == FORMAT_HTML) {
+                    $answer['answertext'] = $this->migrate_files($answer['answertext'], 'question', 'answer', $answer['id']);
+                }
+                // Migrate images in feedback.
+                if ($answer['feedbackformat'] == FORMAT_HTML) {
+                    $answer['feedback'] = $this->migrate_files($answer['feedback'], 'question', 'answerfeedback', $answer['id']);
+                }
                 $this->write_xml('answer', $answer, array('/answer/id'));
             }
         }
         $this->xmlwriter->end_tag('answers');
     }
 
+    /**
+     * Migrate files belonging to one qtype plugin text field.
+     *
+     * @param array $text the html fragment containing references to files
+     * @param string $component the component for restored files
+     * @param string $filearea the file area for restored files
+     * @param int $itemid the itemid for restored files
+     *
+     * @return string the text for this field, after files references have been processed
+     */
+    protected function migrate_files($text, $component, $filearea, $itemid) {
+        $context = $this->qbankhandler->get_current_category_context();
+        $fileman = $this->qbankhandler->get_file_manager();
+        $fileman->contextid = $context['contextid'];
+        $fileman->component = $component;
+        $fileman->filearea  = $filearea;
+        $fileman->itemid    = $itemid;
+        $text = moodle1_converter::migrate_referenced_files($text, $fileman);
+        return $text;
+    }
+
     /**
      * Writes the grouped numerical_units structure
      *
@@ -1900,7 +1958,8 @@ abstract class moodle1_qtype_handler extends moodle1_plugin_handler {
         if ($qtype !== 'multichoice') {
             $new['answerformat'] = FORMAT_PLAIN;
         } else {
-            $new['answerformat'] = FORMAT_MOODLE;
+            $new['answertext'] = text_to_html($new['answertext'], false, false, true);
+            $new['answerformat'] = FORMAT_HTML;
         }
 
         if ($CFG->texteditors !== 'textarea') {
index fc087b9..b8e1884 100644 (file)
@@ -602,7 +602,7 @@ function blog_get_options_for_module($module, $user=null) {
     }
     if (array_key_exists($key, $moduleoptions)) {
         // Serve from the cache so we don't have to regenerate
-        return $moduleoptions[$module->id];
+        return $moduleoptions[$key];
     }
 
     $canparticipate = (is_enrolled($modcontext) or is_viewing($modcontext));
index edd156b..22a1344 100644 (file)
@@ -12,10 +12,13 @@ class editsection_form extends moodleform {
 
         $mform  = $this->_form;
         $course = $this->_customdata['course'];
-        $mform->addElement('checkbox', 'usedefaultname', get_string('sectionusedefaultname'));
-        $mform->setDefault('usedefaultname', true);
 
-        $mform->addElement('text', 'name', get_string('sectionname'), array('size'=>'30'));
+        $elementgroup = array();
+        $elementgroup[] = $mform->createElement('text', 'name', '', array('size' => '30'));
+        $elementgroup[] = $mform->createElement('checkbox', 'usedefaultname', '', get_string('sectionusedefaultname'));
+        $mform->addGroup($elementgroup, 'name_group', get_string('sectionname'), ' ', false);
+
+        $mform->setDefault('usedefaultname', true);
         $mform->setType('name', PARAM_TEXT);
         $mform->disabledIf('name','usedefaultname','checked');
 
index 93e5571..47796d1 100644 (file)
@@ -1265,7 +1265,7 @@ $string['other'] = 'Other';
 $string['outline'] = 'Outline';
 $string['outlinereport'] = 'Outline report';
 $string['page'] = 'Page';
-$string['pageheaderconfigablock'] = 'Configuring a block in %fullname%';
+$string['pageheaderconfigablock'] = 'Configuring a block in {$a->fullname}';
 $string['pagepath'] = 'Page path';
 $string['pageshouldredirect'] = 'This page should automatically redirect. If nothing is happening please use the continue link below.';
 $string['parentcategory'] = 'Parent category';
index ee2cfc8..b9fe409 100644 (file)
@@ -1229,7 +1229,8 @@ function download_file_content($url, $headers=null, $postdata=null, $fullrespons
         //reinstate affected curl options
         curl_setopt_array ($ch, array(
             CURLOPT_RETURNTRANSFER => true,
-            CURLOPT_NOBODY         => false)
+            CURLOPT_NOBODY         => false,
+            CURLOPT_HTTPGET        => true)
         );
     }
 
index ea5164d..4d78b14 100644 (file)
@@ -16,6 +16,9 @@ YUI.add('moodle-core-formchangechecker',
                  */
                 initializer : function(config) {
                     var formid = 'form#' + this.get('formid');
+                    if (!Y.one(formid)) {
+                        return;
+                    }
 
                     // Add change events to the form elements
                     Y.all(formid + ' input').once('change', M.core_formchangechecker.set_form_changed, this);
index c9a8259..4a7b665 100644 (file)
@@ -333,10 +333,11 @@ class core_message_renderer extends plugin_renderer_base {
 
         $output .= html_writer::start_tag('fieldset', array('id' => 'messageprocessor_general', 'class' => 'clearfix'));
         $output .= html_writer::nonempty_tag('legend', get_string('generalsettings','admin'), array('class' => 'ftoggler'));
+
         $output .= html_writer::start_tag('div');
-        $output .= get_string('blocknoncontacts', 'message').': ';
-        $output .= html_writer::checkbox('blocknoncontacts', 1, $preferences->blocknoncontacts, '');
+        $output .= html_writer::checkbox('blocknoncontacts', 1, $preferences->blocknoncontacts, get_string('blocknoncontacts', 'message'));
         $output .= html_writer::end_tag('div');
+
         $output .= html_writer::end_tag('fieldset');
         $output .= html_writer::start_tag('div', array('class' => 'mdl-align'));
         $output .= html_writer::empty_tag('input', array('type' => 'submit', 'value' => get_string('updatemyprofile'), 'class' => 'form-submit'));
index e90727d..1ce3f5b 100644 (file)
@@ -121,9 +121,9 @@ if ($cancel) {
 
 /// RSS and CSS and JS meta
 if (!empty($CFG->enablerssfeeds) && !empty($CFG->data_enablerssfeeds) && $data->rssarticles > 0) {
-    $rsspath = rss_get_url($context->id, $USER->id, 'mod_data', $data->id);
     $courseshortname = format_string($course->shortname, true, array('context' => get_context_instance(CONTEXT_COURSE, $course->id)));
-    $PAGE->add_alternate_version($courseshortname . ': %fullname%', $rsspath, 'application/rss+xml');
+    $rsstitle = $courseshortname . ': ' . format_string($data->name);
+    rss_add_http_header($context, 'mod_data', $data, $rsstitle);
 }
 if ($data->csstemplate) {
     $PAGE->requires->css('/mod/data/css.php?d='.$data->id);
index 6dfaaa1..a31f13c 100644 (file)
 /// RSS and CSS and JS meta
     $meta = '';
     if (!empty($CFG->enablerssfeeds) && !empty($CFG->data_enablerssfeeds) && $data->rssarticles > 0) {
-        $rsstitle = $courseshortname . ': %fullname%';
+        $rsstitle = $courseshortname . ': ' . format_string($data->name);
         rss_add_http_header($context, 'mod_data', $data, $rsstitle);
     }
     if ($data->csstemplate) {
index 43d58e3..89d9402 100644 (file)
@@ -60,7 +60,7 @@
     if (!empty($CFG->enablerssfeeds) && !empty($CFG->forum_enablerssfeeds) && $forum->rsstype && $forum->rssarticles) {
         require_once("$CFG->libdir/rsslib.php");
 
-        $rsstitle = format_string($course->shortname, true, array('context' => get_context_instance(CONTEXT_COURSE, $course->id))) . ': %fullname%';
+        $rsstitle = format_string($course->shortname, true, array('context' => get_context_instance(CONTEXT_COURSE, $course->id))) . ': ' . format_string($forum->name);
         rss_add_http_header($modcontext, 'mod_forum', $forum, $rsstitle);
     }
 
index 8601fe1..1b0fa94 100644 (file)
@@ -96,7 +96,7 @@
     if (!empty($CFG->enablerssfeeds) && !empty($CFG->forum_enablerssfeeds) && $forum->rsstype && $forum->rssarticles) {
         require_once("$CFG->libdir/rsslib.php");
 
-        $rsstitle = format_string($course->shortname, true, array('context' => get_context_instance(CONTEXT_COURSE, $course->id))) . ': %fullname%';
+        $rsstitle = format_string($course->shortname, true, array('context' => get_context_instance(CONTEXT_COURSE, $course->id))) . ': ' . format_string($forum->name);
         rss_add_http_header($context, 'mod_forum', $forum, $rsstitle);
     }
 
index a2cb2c1..9e19a97 100644 (file)
             //$params     = array();
             $i = 0;
 
-            $concat = $DB->sql_concat('ge.concept', "' '", 'ge.definition',"' '", "COALESCE(al.alias, '')");
+            if (empty($fullsearch)) {
+                // With fullsearch disabled, look only within concepts and aliases.
+                $concat = $DB->sql_concat('ge.concept', "' '", "COALESCE(al.alias, '')");
+            } else {
+                // With fullsearch enabled, look also within definitions.
+                $concat = $DB->sql_concat('ge.concept', "' '", 'ge.definition', "' '", "COALESCE(al.alias, '')");
+            }
 
             $searchterms = explode(" ",$hook);
 
     }
 
     $query = "$sqlwrapheader $sqlselect $sqlfrom $sqlwhere $sqlwrapfooter $sqlorderby";
-    $allentries = $DB->get_records_sql($query, $params, $limitfrom, $limitnum);
-
+    $allentries = $DB->get_records_sql($query, $params, $limitfrom, $limitnum);
\ No newline at end of file
index c580d6d..e0a8b2b 100644 (file)
@@ -251,7 +251,7 @@ $PAGE->set_url($url);
 if (!empty($CFG->enablerssfeeds) && !empty($CFG->glossary_enablerssfeeds)
     && $glossary->rsstype && $glossary->rssarticles) {
 
-    $rsstitle = format_string($course->shortname, true, array('context' => get_context_instance(CONTEXT_COURSE, $course->id))) . ': %fullname%';
+    $rsstitle = format_string($course->shortname, true, array('context' => get_context_instance(CONTEXT_COURSE, $course->id))) . ': '. format_string($glossary->name);
     rss_add_http_header($context, 'mod_glossary', $glossary, $rsstitle);
 }
 
index a3353a8..f51c2c7 100644 (file)
@@ -289,6 +289,9 @@ class lesson_page_type_shortanswer extends lesson_page {
                     } else {
                         $answerdata->score = get_string("didnotreceivecredit", "lesson");
                     }
+                    // We have found the correct answer, do not process any more answers.
+                    $answerpage->answerdata = $answerdata;
+                    break;
                 } else {
                     $answerdata->response = get_string("thatsthewronganswer", "lesson");
                     if ($this->lesson->custom) {
index 763c12e..f865cbf 100644 (file)
@@ -285,10 +285,10 @@ if ($action === 'delete') {
                     $numofattempts++;
                     $avescore += $try["grade"];
                     $avetime += $timetotake;
-                    if ($try["grade"] > $highscore || $highscore == NULL) {
+                    if ($try["grade"] > $highscore || $highscore === NULL) {
                         $highscore = $try["grade"];
                     }
-                    if ($try["grade"] < $lowscore || $lowscore == NULL) {
+                    if ($try["grade"] < $lowscore || $lowscore === NULL) {
                         $lowscore = $try["grade"];
                     }
                     if ($timetotake > $hightime || $hightime == NULL) {
@@ -347,10 +347,10 @@ if ($action === 'delete') {
     } else {
         $lowtime = format_time($lowtime);
     }
-    if ($highscore == NULL) {
+    if ($highscore === NULL) {
         $highscore = get_string("notcompleted", "lesson");
     }
-    if ($lowscore == NULL) {
+    if ($lowscore === NULL) {
         $lowscore = get_string("notcompleted", "lesson");
     }
 
@@ -363,7 +363,14 @@ if ($action === 'delete') {
     $stattable->align = array('center', 'center', 'center', 'center', 'center', 'center');
     $stattable->wrap = array('nowrap', 'nowrap', 'nowrap', 'nowrap', 'nowrap', 'nowrap');
     $stattable->attributes['class'] = 'standardtable generaltable';
-    $stattable->data[] = array($avescore.'%', $avetime, $highscore.'%', $lowscore.'%', $hightime, $lowtime);
+
+    if (is_numeric($highscore)) {
+        $highscore .= '%';
+    }
+    if (is_numeric($lowscore)) {
+        $lowscore .= '%';
+    }
+    $stattable->data[] = array($avescore.'%', $avetime, $highscore, $lowscore, $hightime, $lowtime);
 
     echo html_writer::table($stattable);
 } else if ($action === 'reportdetail') {
index 39a4860..320b01a 100644 (file)
@@ -381,6 +381,10 @@ class mod_quiz_mod_form extends moodleform_mod {
         // Check and act on whether setting outcomes is considered an advanced setting.
         $mform->setAdvanced('modoutcomes', !empty($quizconfig->outcomes_adv));
 
+        // The standard_coursemodule_elements method sets this to 100, but the
+        // quiz has its own setting, so use that.
+        $mform->setDefault('grade', $quizconfig->maximumgrade);
+
         // -------------------------------------------------------------------------------
         $this->add_action_buttons();
     }
index 94ba827..f084711 100644 (file)
@@ -78,6 +78,8 @@ class moodle1_qtype_match_handler extends moodle1_qtype_handler {
                     $match['questiontextformat'] = $data['oldquestiontextformat'];
                 }
 
+                $match['questiontext'] = $this->migrate_files(
+                        $match['questiontext'], 'qtype_match', 'subquestion', $match['id']);
                 $this->write_xml('match', $match, array('/match/id'));
             }
         }
index bb1a459..9913c9c 100644 (file)
@@ -65,7 +65,7 @@ class moodle1_qtype_multichoice_handler extends moodle1_qtype_handler {
                 'answernumbering'                => 'abc',
             ));
         }
-        $this->write_multichoice($data['multichoice'], $data['oldquestiontextformat']);
+        $this->write_multichoice($data['multichoice'], $data['oldquestiontextformat'], $data['id']);
     }
 
     /**
@@ -73,8 +73,9 @@ class moodle1_qtype_multichoice_handler extends moodle1_qtype_handler {
      *
      * @param array $multichoices the grouped structure
      * @param int $oldquestiontextformat - {@see moodle1_question_bank_handler::process_question()}
+     * @param int $questionid question id
      */
-    protected function write_multichoice(array $multichoices, $oldquestiontextformat) {
+    protected function write_multichoice(array $multichoices, $oldquestiontextformat, $questionid) {
         global $CFG;
 
         // the grouped array is supposed to have just one element - let us use foreach anyway
@@ -101,6 +102,13 @@ class moodle1_qtype_multichoice_handler extends moodle1_qtype_handler {
                 $multichoice['incorrectfeedbackformat']         = $oldquestiontextformat;
             }
 
+            $multichoice['correctfeedback'] = $this->migrate_files(
+                    $multichoice['correctfeedback'], 'question', 'correctfeedback', $questionid);
+            $multichoice['partiallycorrectfeedback'] = $this->migrate_files(
+                    $multichoice['partiallycorrectfeedback'], 'question', 'partiallycorrectfeedback', $questionid);
+            $multichoice['incorrectfeedback'] = $this->migrate_files(
+                    $multichoice['incorrectfeedback'], 'question', 'incorrectfeedback', $questionid);
+
             $this->write_xml('multichoice', $multichoice, array('/multichoice/id'));
         }
     }
index 93e426c..9d59b2d 100644 (file)
@@ -641,8 +641,11 @@ abstract class repository {
     public final function check_capability() {
         global $USER;
 
+        // The context we are on.
+        $currentcontext = $this->context;
+
         // Ensure that the user can view the repository in the current context.
-        $can = has_capability('repository/'.$this->type.':view', $this->context);
+        $can = has_capability('repository/'.$this->type.':view', $currentcontext);
 
         // Context in which the repository has been created.
         $repocontext = context::instance_by_id($this->instance->contextid);
@@ -652,14 +655,29 @@ abstract class repository {
             $can = false;
         }
 
-        // Ensure that the user can view the repository in the context of the repository.
-        // Ne need to perform the check when already disallowed.
+        // We are going to ensure that the current context was legit, and reliable to check
+        // the capability against. (No need to do that if we already cannot).
         if ($can) {
-            if ($repocontext->contextlevel == CONTEXT_USER && $repocontext->instanceid != $USER->id) {
-                // Prevent URL hijack to access someone else's repository.
-                $can = false;
+            if ($repocontext->contextlevel == CONTEXT_USER) {
+                // The repository is a user instance, ensure we're the right user to access it!
+                if ($repocontext->instanceid != $USER->id) {
+                    $can = false;
+                }
+            } else if ($repocontext->contextlevel == CONTEXT_COURSE) {
+                // The repository is a course one. Let's check that we are on the right course.
+                if (in_array($currentcontext->contextlevel, array(CONTEXT_COURSE, CONTEXT_MODULE, CONTEXT_BLOCK))) {
+                    $coursecontext = $currentcontext->get_course_context();
+                    if ($coursecontext->instanceid != $repocontext->instanceid) {
+                        $can = false;
+                    }
+                } else {
+                    // We are on a parent context, therefore it's legit to check the permissions
+                    // in the current context.
+                }
             } else {
-                $can = has_capability('repository/'.$this->type.':view', $repocontext);
+                // Nothing to check here, system instances can have different permissions on different
+                // levels. We do not want to prevent URL hack here, because it does not make sense to
+                // prevent a user to access a repository in a context if it's accessible in another one.
             }
         }
 
index cfc2ecf..895a109 100644 (file)
@@ -306,7 +306,6 @@ h1.headermain {
     margin-right: auto;
     width: 100%;
 }
-#categoryquestions th,
 .user th,
 .user th.header,
 .group th.header,
@@ -318,14 +317,12 @@ h1.headermain {
     border-bottom-color: #111;
 }
 .user th a:link,
-#categoryquestions th a:link,
 .group  th a:link,
 .admin table tr th a:link {
     color: #FFF;
     text-decoration: none;
 }
 .user th a:visited,
-#categoryquestions th a:visited,
 .group th a:visited,
 .admin table tr th a:visited {
     color: #FFF;
index 640b90f..a35f079 100644 (file)
@@ -95,6 +95,9 @@
 #page-question-preview #techinfo {
     margin: 1em 0;
 }
+#page-mod-quiz-edit #categoryquestions .header {
+    background: none;
+}
 
 /** Overide for RTL layout **/
 .dir-rtl #qtypechoicecontainer #chooseqtype .instruction,
index 465de70..b159db6 100644 (file)
@@ -1125,7 +1125,9 @@ div.questionbankwindow.block div.header {
     background: #eee !important;
 }
 
-div.questionbankwindow.block div.header a {
+#page-mod-quiz-edit .questionbankwindow.block div.header div.title h2,
+#page-mod-quiz-edit .questionbankwindow a#showbankcmd,
+#page-mod-quiz-edit .questionbankwindow a#hidebankcmd {
     color: #333333 !important;
     font-size: 11px;
 }
index 31ea104..8753523 100644 (file)
@@ -304,3 +304,9 @@ body.has_dock {
        -moz-box-shadow: 0px 1px 3px #ccc;
             box-shadow: 0px 1px 3px #ccc;
 }
+/* Question Bank Window
+-------------------------*/
+#page-mod-quiz-edit .questionbankwindow.block div.header {
+    background-color: #9EB1BF;
+    padding-top: 0;
+}
\ No newline at end of file
index e5b6339..5c8e00a 100644 (file)
@@ -59,11 +59,9 @@ body.splash-blue {
 .splash-blue .coursebox{
     border-bottom: 1px dashed #cbd3d6;
 }
-.splash-blue #categoryquestions tr th{
-    background:#3d6276;
-}
 .splash-blue .path-mod-quiz .qnbutton {
-    background:#3d6276; color:#fff;
+    background:#3d6276;
+    color:#fff;
 }
 .splash-blue .path-mod-quiz .qnbutton.open {
     background:#3d6276;
index 4a292fc..9a19320 100644 (file)
@@ -57,11 +57,9 @@ body.splash-green { background:url([[pix:theme|bggreen]]) top left repeat-x;
 .splash-green .coursebox{
     border-bottom: 1px dashed #dae0dc;
 }
-.splash-green #categoryquestions tr th{
-    background:#446e4c;color:#fff;
-}
 .splash-green .path-mod-quiz .qnbutton{
-    background:#446e4c;color:#fff;
+    background:#446e4c;
+    color:#fff;
 }
 .splash-green .path-mod-quiz .qnbutton.open{
     background:#446e4c;
index 8f662ae..0bc0168 100644 (file)
@@ -50,7 +50,8 @@ body.splash-orange {
     color:#cb8f47;
 }
 .splash-orange .tabtree .tabrow0 .here a:hover{
-    background:#fff;color: #5f564c;
+    background:#fff;
+    color: #5f564c;
 }
 .splash-orange .tabtree .here ul .here a.nolink:hover{
     color:#cb8f47;
@@ -58,9 +59,6 @@ body.splash-orange {
 .splash-orange .coursebox{
     border-bottom:1px dashed #f0e7de;
 }
-.splash-orange #categoryquestions tr th{
-    background:#cb8f47;
-}
 .splash-orange .path-mod-quiz .qnbutton{
     background:#cb8f47;
 }
index eca577c..ff40e4c 100644 (file)
@@ -299,6 +299,11 @@ h2.main,h3.main,h4.main,h5.main,h6.main{
     font-style:italic;
     padding:10px 30px;
 }
+.generalbox{
+    display:block;
+    margin-top:2px;
+    width:98%;
+}
 .generalbox ul{
     padding:0 0 0 20px;
 }
@@ -639,61 +644,57 @@ input[type=text],textarea,select,input[type=password]{
     font-weight:700;
     padding-top:12px;
 }
+table.quizreviewsummary {
+    margin:10px 0 10px 30px;
+    width:90%;
+}
 #page-mod-quiz-attempt .submitbtns,
 #page-mod-quiz-review .submitbtns,
 #page-mod-quiz-summary .submitbtns{
     padding:10px;
 }
-
 #page-mod-quiz-edit .questionbankwindow div.header {
     font-size:1em;
     margin:0;
     padding:0;
 }
-
-#page-mod-quiz-edit #region-main .questionbankwindow h2{
+#page-mod-quiz-edit #region-main .questionbankwindow h2 {
     background:none;
     font-size:1em;
     font-weight:700;
     margin:0;
     padding:10px 0 10px 10px;
 }
-
-#page-mod-quiz-edit .questionbankwindow div.header a{
+#page-mod-quiz-edit .questionbankwindow div.header a {
     font-weight:400;
 }
-
-#page-mod-quiz-edit div.quizpage .pagecontent .pagestatus
-{
+#page-mod-quiz-edit div.quizpage .pagecontent .pagestatus {
     font-weight:700;
 }
-
-#page-mod-quiz-edit div.quizpage span.pagetitle{
+#page-mod-quiz-edit div.quizpage span.pagetitle {
     font-weight:700;
     margin-top:10px;
 }
-#page-mod-quiz-edit .editq div.question div.qnum{
+#page-mod-quiz-edit .editq div.question div.qnum {
     font-size:1.2em;
     font-weight:700;
     padding-top:3px;
 }
-table.quizreviewsummary{
-    margin:10px 0 10px 30px;
-    width:90%;
+#page-mod-quiz-edit .questionbank div.categoryquestionscontainer,
+#page-mod-quiz-edit .questionbank .categorysortopotionscontainer,
+#page-mod-quiz-edit .questionbank .categorypagingbarcontainer,
+#page-mod-quiz-edit .questionbank .categoryselectallcontainer {
+    padding: 0;
+    margin: 0 0.3em;
 }
-#categoryquestions tr th{
-    border-bottom:0 none;
+#page-mod-quiz-edit form#displayoptions fieldset.invisiblefieldset div {
+    margin: 0.3em;
 }
-.questioncategories{
-    margin-bottom:10px;
+#page-mod-quiz-edit div.container div.generalbox {
+    width: 100%;
 }
-.questionbank input[type=submit]{
-    margin:5px;
-}
-.generalbox{
-    display:block;
-    margin-top:2px;
-    width:98%;
+#page-mod-quiz-edit #categoryquestions .header {
+    background: 0 none;
 }
 #page-admin-plugins #plugins-control-panel{
     display:block;
index 311b6c9..807964c 100644 (file)
@@ -71,11 +71,11 @@ a:hover {
     color:#853650;
 }
 .path-mod-quiz .qnbutton {
-    background:#853650;color:#fff;
+    background:#853650;
+    color:#fff;
 }
 .path-mod-quiz .qnbutton.open {
-    background:#853650;}
-#categoryquestions tr th{background:#853650;
+    background:#853650;
 }
 .pagelayout-redirect {
     border-top: 1px solid #6d1523;
index c5fef62..933cb45 100644 (file)
 defined('MOODLE_INTERNAL') || die();
 
 
-$version  = 2012062505.00;              // YYYYMMDD      = weekly release date of this DEV branch
+$version  = 2012062506.00;              // YYYYMMDD      = weekly release date of this DEV branch
                                         //         RR    = release increments - 00 in DEV branches
                                         //           .XX = incremental changes
 
-$release  = '2.3.5 (Build: 20130311)';  // Human-friendly version name
+$release  = '2.3.6 (Build: 20130318)';  // Human-friendly version name
 
 $branch   = '23';                       // this version's branch
 $maturity = MATURITY_STABLE;            // this version's maturity level