mirror of
https://github.com/moodle/moodle.git
synced 2025-08-03 08:09:47 +02:00
Hopefully improve performance on site with lots of question categories Merged from MOODLE_16_STABLE.
This commit is contained in:
parent
29bbfb339a
commit
b20ea66988
2 changed files with 21 additions and 25 deletions
|
@ -1462,14 +1462,19 @@ function add_indented_names($categories) {
|
|||
* @param integer $selected optionally, the id of a category to be selected by default in the dropdown.
|
||||
*/
|
||||
function question_category_select_menu($courseid, $published = false, $only_editable = false, $selected = "") {
|
||||
|
||||
global $CFG;
|
||||
|
||||
// get sql fragment for published
|
||||
$publishsql="";
|
||||
if ($published) {
|
||||
$publishsql = "or publish=1";
|
||||
$publishsql = " OR publish = 1";
|
||||
}
|
||||
|
||||
$categories = get_records_select("question_categories","course=$courseid $publishsql", 'parent, sortorder, name ASC');
|
||||
$categories = get_records_sql("
|
||||
SELECT cat.*, c.shortname AS coursename
|
||||
FROM {$CFG->prefix}question_categories cat, {$CFG->prefix}course c
|
||||
WHERE c.id = cat.course AND (cat.course = $courseid $publishsql)
|
||||
ORDER BY parent, sortorder, name ASC");
|
||||
|
||||
$categories = add_indented_names($categories);
|
||||
|
||||
|
@ -1488,22 +1493,27 @@ function question_category_select_menu($courseid, $published = false, $only_edit
|
|||
echo "</select>\n";
|
||||
}
|
||||
|
||||
/**
|
||||
* If the category is not from this course, and it is a published category,
|
||||
* then return the course category name with the course shortname appended in
|
||||
* brackets. Otherwise, just return the category name.
|
||||
*/
|
||||
function question_category_coursename($category, $courseid = 0) {
|
||||
/// if the category is not from this course and is published , adds on the course
|
||||
/// name
|
||||
$cname = (isset($category->indentedname)) ? $category->indentedname : $category->name;
|
||||
if ($category->course != $courseid && $category->publish) {
|
||||
if ($catcourse=get_record("course","id",$category->course)) {
|
||||
$cname .= " ($catcourse->shortname) ";
|
||||
if (!empty($category->coursename)) {
|
||||
$coursename = $category->coursename;
|
||||
} else {
|
||||
$coursename = get_field('course', 'shortname', 'id', $category->course);
|
||||
}
|
||||
$cname .= " ($coursename)";
|
||||
}
|
||||
return $cname;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns a comma separated list of ids of the category and all subcategories
|
||||
*/
|
||||
* Returns a comma separated list of ids of the category and all subcategories
|
||||
*/
|
||||
function question_categorylist($categoryid) {
|
||||
// returns a comma separated list of ids of the category and all subcategories
|
||||
$categorylist = $categoryid;
|
||||
|
|
|
@ -136,20 +136,6 @@
|
|||
$exportfilename = default_export_filename($course, $category);
|
||||
}
|
||||
|
||||
/// Get all the existing categories now
|
||||
if (!$categories = get_records_select("question_categories", "course = '{$course->id}' OR publish = '1'", "parent, sortorder, name ASC")) {
|
||||
error("Could not find any question categories!");
|
||||
}
|
||||
$categories = add_indented_names($categories);
|
||||
foreach ($categories as $key => $cat) {
|
||||
if ($catcourse = get_record("course", "id", $cat->course)) {
|
||||
if ($cat->publish && $cat->course != $course->id) {
|
||||
$cat->indentedname .= " ($catcourse->shortname)";
|
||||
}
|
||||
$catmenu[$cat->id] = $cat->indentedname;
|
||||
}
|
||||
}
|
||||
|
||||
print_heading_with_help($strexportquestions, "export", "quiz");
|
||||
|
||||
print_simple_box_start("center");
|
||||
|
@ -164,7 +150,7 @@
|
|||
echo question_category_coursename($category);
|
||||
echo " <input type=\"hidden\" name=\"category\" value=\"$category->id\" />";
|
||||
} else { // no category specified, let user choose
|
||||
choose_from_menu($catmenu, "category", $category->id, "");
|
||||
question_category_select_menu($course->id, true, false, $category->id);
|
||||
}
|
||||
//echo str_replace(' ', '', $category->name) . " ($categorycourse->shortname)";
|
||||
echo "</td></tr>\n";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue