]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-8946 - Fix a regression that broke question export.\r\rAlso, partially clean up...
authortjhunt <tjhunt>
Wed, 21 Mar 2007 10:41:28 +0000 (10:41 +0000)
committertjhunt <tjhunt>
Wed, 21 Mar 2007 10:41:28 +0000 (10:41 +0000)
lib/questionlib.php
mod/quiz/tabs.php
question/category_class.php
question/export.php
question/import.php
question/showbank.php
question/tabs.php

index ccbc2c74eebf16593da37dbad826a8aed1f453d3..0ea1b4c0c0e01753aca2cbcbe2422da04505d725 100644 (file)
@@ -555,6 +555,25 @@ function question_delete_course($course, $feedback=true) {
     return true;
 }
 
+function questionbank_navigation_tabs(&$row, $context, $courseid) {
+    global $CFG;
+    if (has_capability('moodle/question:manage', $context)) {
+        $row[] = new tabobject('questions', "$CFG->wwwroot/question/edit.php?courseid=$courseid", get_string('questions', 'quiz'), get_string('editquestions', "quiz"));
+    }
+    
+    if (has_capability('moodle/question:managecategory', $context)) {
+        $row[] = new tabobject('categories', "$CFG->wwwroot/question/category.php?id=$courseid", get_string('categories', 'quiz'), get_string('editqcats', 'quiz'));
+    }
+    
+    if (has_capability('moodle/question:import', $context)) {
+        $row[] = new tabobject('import', "$CFG->wwwroot/question/import.php?course=$courseid", get_string('import', 'quiz'), get_string('importquestions', 'quiz'));
+    }
+    
+    if (has_capability('moodle/question:export', $context)) {
+        $row[] = new tabobject('export', "$CFG->wwwroot/question/export.php?courseid=$courseid", get_string('export', 'quiz'), get_string('exportquestions', 'quiz'));
+    }
+}
+
 /**
  * Private function to factor common code out of get_question_options().
  *
index 4d0f70c4ae7b1b4e9cfd31668b23301ad2c5828c..8494c670de0718a72a0451c81b7937ced0e45918 100644 (file)
 
         $strquizzes = get_string('modulenameplural', 'quiz');
         $strquiz = get_string('modulename', 'quiz');
-        $streditingquestions = get_string('editquestions', "quiz");
         $streditingquiz = get_string("editinga", "moodle", $strquiz);
         $strupdate = get_string('updatethis', 'moodle', $strquiz);
         $row[] = new tabobject('editq', "$CFG->wwwroot/mod/quiz/edit.php?quizid=$quiz->id", $strquiz, $streditingquiz);
-        
-        if (has_capability('moodle/question:manage', $context)) {
-            $row[] = new tabobject('questions', "$CFG->wwwroot/question/edit.php?courseid=$course->id", get_string('questions', 'quiz'), $streditingquestions);
-        }
-        
-        if (has_capability('moodle/question:managecategory', $context)) {
-            $row[] = new tabobject('categories', "$CFG->wwwroot/question/category.php?id=$course->id", get_string('categories', 'quiz'), get_string('editqcats', 'quiz'));
-        }
-        
-        if (has_capability('moodle/question:import', $context)) {
-            $row[] = new tabobject('import', "$CFG->wwwroot/question/import.php?course=$course->id", get_string('import', 'quiz'), get_string('importquestions', 'quiz'));
-        }
-        
-        if (has_capability('moodle/question:export', $context)) {
-            $row[] = new tabobject('export', "$CFG->wwwroot/question/export.php?courseid=$course->id", get_string('export', 'quiz'), get_string('exportquestions', 'quiz'));
-        }
+        questionbank_navigation_tabs($row, $context, $course->id);
         $tabs[] = $row;
     }
 
index e8815be290f7bf0c8a83fbcb1d677d560fb97a0b..49ce7af4a68315705d5ee83ee00f8c8288f208a0 100644 (file)
@@ -189,7 +189,7 @@ class question_category_object {
 
         // wrap the table in a form and output it
         echo '<form action="category.php" method="post">';
-        echo '<fieldset class="invisiblefieldset">';
+        echo '<fieldset class="invisiblefieldset" style="display: block">';
         echo "<input type=\"hidden\" name=\"sesskey\" value=\"$USER->sesskey\" />";
         echo '<input type="hidden" name="id" value="'. $this->course->id . '" />';
         echo '<input type="hidden" name="addcategory" value="true" />';
index 13d9575998a63120d723a06cac08a03d38dd7b72..f81d2952473f7ca2d5c5aa66ab58fda2a5c608b7 100644 (file)
@@ -19,7 +19,7 @@
     $exportfilename = optional_param('exportfilename','',PARAM_FILE );
     $format = optional_param('format','', PARAM_FILE );
 
-    
+
     // get display strings
     $txt = new object;
     $txt->category = get_string('category','quiz');
     $txt->exportcategory = get_string('exportcategory','quiz');
     $txt->modulename = get_string('modulename','quiz');
     $txt->modulenameplural = get_string('modulenameplural','quiz');
-    $txt->nocategory = get_string('nocategory','quiz');
     $txt->tofile = get_string('tofile','quiz');
 
 
-    if (! $course = get_record("course", "id", $courseid)) {
+    if (!$course = get_record("course", "id", $courseid)) {
         error("Course does not exist!");
     }
 
-    $showcatmenu = false;
     if ($categoryid) { // update category in session variable
         $SESSION->questioncat = $categoryid;
     } else { // try to get category from modform
-        $showcatmenu = true; // will ensure that user can choose category
         if (isset($SESSION->questioncat)) {
             $categoryid = $SESSION->questioncat;
         }
     }
 
-    $category = get_default_question_category($courseid);
-
-    if (! $categorycourse = get_record("course", "id", $category->course)) {
-        error( $txt->nocategory );
+    if (!$category = get_record("question_categories", "id", $categoryid)) {   
+        $category = get_default_question_category($courseid); 
+    }
+    
+    if (!$categorycourse = get_record("course", "id", $category->course)) {
+        print_error('nocategory','quiz');
     }
 
     require_login($course->id, false);
-    
+
     // check role capability
     $context = get_context_instance(CONTEXT_COURSE, $course->id);
     require_capability('moodle/question:export', $context);
@@ -95,8 +94,8 @@
             error( "Format not known ($format)" );  }
 
         // load parent class for import/export
-        require("format.php"); 
-        
+        require("format.php");
+
         // and then the class for the selected format
         require("format/$format/format.php");
 
     }
 
     print_heading_with_help($txt->exportquestions, 'export', 'quiz');
-    print_simple_box_start('center');   
-?>    
+    print_simple_box_start('center');
+?>
 
     <form enctype="multipart/form-data" method="post" action="export.php">
-    <fieldset class="invisiblefieldset">
-        <input type="hidden" name="sesskey" value="<?php echo sesskey(); ?>" />
-        <input type="hidden" name="courseid" value="<?php echo $course->id; ?>" />
-            
+        <fieldset class="invisiblefieldset" style="display: block;">
+            <input type="hidden" name="sesskey" value="<?php echo sesskey(); ?>" />
+            <input type="hidden" name="courseid" value="<?php echo $course->id; ?>" />
+
             <table cellpadding="5">
                 <tr>
                     <td align="right"><?php echo $txt->category; ?>:</td>
                     <td>
-                        <?php 
-                        if (!$showcatmenu) { // category already specified
-                            echo '<strong>'.question_category_coursename($category).'</strong>&nbsp;&nbsp;'; ?>
-                            <input type="hidden" name="category" value="<?php echo $category->id ?>" />
-                            <?php
-                            } else { // no category specified, let user choose
-                                question_category_select_menu($course->id, true, false, $category->id);
-                            } 
-                            echo $txt->tofile; ?>
-                            <input name="cattofile" type="checkbox" />
-                            <?php helpbutton('exportcategory', $txt->exportcategory, 'quiz'); ?>
-                        </td>    
-                    </tr>
-                    <tr>
-                        <td align="right"><?php echo $txt->fileformat; ?>:</td>
-                        <td>
-                            <?php choose_from_menu($fileformatnames, 'format', 'gift', '');
-                            helpbutton('export', $txt->exportquestions, 'quiz'); ?>
-                        </td>
-                    </tr>
-                    <tr>
-                        <td align="right"><?php echo $txt->exportname; ?>:</td>
-                        <td>
-                            <input type="text" size="40" name="exportfilename" value="<?php echo $exportfilename; ?>" />
-                        </td>
-                    </tr>
-                    <tr>
-                        <td align="center" >
-                            <input type="submit" name="save" value="<?php echo $txt->exportquestions; ?>" />
-                        </td>
-                        <td>&nbsp;</td>
-                    </tr>
-                </table>
-        </fieldset>        
-        </form>
+                        <?php
+                        question_category_select_menu($course->id, true, false, $category->id);
+                        echo $txt->tofile; ?>
+                        <input name="cattofile" type="checkbox" />
+                        <?php helpbutton('exportcategory', $txt->exportcategory, 'quiz'); ?>
+                    </td>
+                </tr>
+                <tr>
+                    <td align="right"><?php echo $txt->fileformat; ?>:</td>
+                    <td>
+                        <?php choose_from_menu($fileformatnames, 'format', 'gift', '');
+                        helpbutton('export', $txt->exportquestions, 'quiz'); ?>
+                    </td>
+                </tr>
+                <tr>
+                    <td align="right"><?php echo $txt->exportname; ?>:</td>
+                    <td>
+                        <input type="text" size="40" name="exportfilename" value="<?php echo $exportfilename; ?>" />
+                    </td>
+                </tr>
+                <tr>
+                    <td align="center" >
+                        <input type="submit" name="save" value="<?php echo $txt->exportquestions; ?>" />
+                    </td>
+                    <td>&nbsp;</td>
+                </tr>
+            </table>
+        </fieldset>
+    </form>
     <?php
-    
+
     print_simple_box_end();
     print_footer($course);
 ?>
index 6a5900f5a1a84ab713aa53796d8499640c60f3f4..76947665cfefa4a734119131052cc1b58374eca7 100644 (file)
@@ -43,7 +43,6 @@
     $txt->matchgradesnearest = get_string('matchgradesnearest','quiz');
     $txt->modulename = get_string('modulename','quiz');
     $txt->modulenameplural = get_string('modulenameplural','quiz');
-    $txt->nocategory = get_string('nocategory','quiz');
     $txt->onlyteachersimport = get_string('onlyteachersimport','quiz');
     $txt->questions = get_string("questions", "quiz");
     $txt->quizzes = get_string('modulenameplural', 'quiz');
     if ($categoryid) { // update category in session variable
         $SESSION->questioncat = $categoryid;
     } else { // try to get category from modform
-        $showcatmenu = true; // will ensure that user can choose category
         if (isset($SESSION->questioncat)) {
             $categoryid = $SESSION->questioncat;
         }
     }
 
-    if (! $category = get_record("question_categories", "id", $categoryid)) {
+    if (!$category = get_record("question_categories", "id", $categoryid)) {
         // if no valid category was given, use the default category
         if ($courseid) {
             $category = get_default_question_category($courseid);
         } else {
-            error( $txt->nocategory );
+            print_error('nocategory','quiz');
         }
     }
 
         $courseid = $category->course;
     }
 
-    if (! $course = get_record("course", "id", $courseid)) {
+    if (!$course = get_record("course", "id", $courseid)) {
         error("Invalid course!");
     }
 
     require_login($course->id, false);
 
-    require_capability('moodle/question:import', get_context_instance(CONTEXT_COURSE, $course->id));
+    $context = get_context_instance(CONTEXT_COURSE, $course->id);
+    require_capability('moodle/question:import', $context);
 
     // ensure the files area exists for this course
     make_upload_directory( "$course->id" );
@@ -96,7 +95,7 @@
     //==========
 
     if (isset($SESSION->modform->instance) and $quiz = get_record('quiz', 'id', $SESSION->modform->instance)) {
-        $strupdatemodule = has_capability('moodle/course:manageactivities', get_context_instance(CONTEXT_COURSE, $course->id))
+        $strupdatemodule = has_capability('moodle/course:manageactivities', $context)
             ? update_module_button($SESSION->modform->cmid, $course->id, $txt->modulename)
             : "";
         print_header_simple($txt->importquestions, '',
     ?>
 
     <form id="form" enctype="multipart/form-data" method="post" action="import.php">
-        <fieldset class="invisiblefieldset">
+        <fieldset class="invisiblefieldset" style="display: block;">
             <input type="hidden" name="sesskey" value="<?php echo sesskey(); ?>" />
             <?php print_simple_box_start("center"); ?>
             <table cellpadding="5">
index 02ff828732dcb8b95acf76361849060b0c2275e4..d234e983da3e3d31acb93b5bf0849a63dc9db226 100644 (file)
         redirect("edit.php?courseid=$course->id");
     }
 
-    if (isset($_REQUEST['cat'])) { /// coming from category selection drop-down menu
-        $SESSION->questioncat = required_param('cat', PARAM_INT);
+    if ($categoryid = optional_param('cat', 0, PARAM_INT)) { /// coming from category selection drop-down menu
+        $SESSION->questioncat = $categoryid;
         $page = 0;
         $SESSION->questionpage = 0;
     }
index e34c0de23272ea38b5dc1df4a272ac83854281dc..7aafe850bf7ce49af07c09a808c9ea91e993c32e 100644 (file)
     }
 
     $tabs = array();
-    $row  = array();
     $inactive = array();
-
-    $row[] = new tabobject('questions', "$CFG->wwwroot/question/edit.php?courseid=$course->id", get_string('questions', 'quiz'), get_string('editquizquestions', 'quiz'));
-    $row[] = new tabobject('categories', "$CFG->wwwroot/question/category.php?id=$course->id", get_string('categories', 'quiz'), get_string('editqcats', 'quiz'));
-    $row[] = new tabobject('import', "$CFG->wwwroot/question/import.php?course=$course->id", get_string('import', 'quiz'), get_string('importquestions', 'quiz'));
-    $row[] = new tabobject('export', "$CFG->wwwroot/question/export.php?courseid=$course->id", get_string('export', 'quiz'), get_string('exportquestions', 'quiz'));
-
+    $row  = array();
+    questionbank_navigation_tabs($row, $context, $course->id);
     $tabs[] = $row;
 
-    print_tabs($tabs, $currenttab, $inactive);
+    print_tabs($tabs, $currenttab, array());
 
 ?>