diff --git a/lib/filterlib.php b/lib/filterlib.php index 6639534..2ecbcfa 100644 --- a/lib/filterlib.php +++ b/lib/filterlib.php @@ -664,14 +664,14 @@ function filter_get_active_in_context($context) { // The following SQL is tricky. It is explained on // http://docs.moodle.org/en/Development:Filter_enable/disable_by_context $sql = "SELECT active.filter, fc.name, fc.value - FROM (SELECT f.filter + FROM (SELECT f.filter, MAX(f.sortorder) AS max_sortorder FROM {filter_active} f JOIN {context} ctx ON f.contextid = ctx.id WHERE ctx.id IN ($contextids) - GROUP BY filter + GROUP BY f.filter HAVING MAX(f.active * " . $DB->sql_cast_2signed('ctx.depth') . ") > -MIN(f.active * " . $DB->sql_cast_2signed('ctx.depth') . ") - ORDER BY MAX(f.sortorder)) active + ORDER BY max_sortorder) active LEFT JOIN {filter_config} fc ON fc.filter = active.filter AND fc.contextid = $context->id"; $rs = $DB->get_recordset_sql($sql); @@ -718,7 +718,7 @@ function filter_get_available_in_context($context) { CASE WHEN fa.active IS NULL THEN " . TEXTFILTER_INHERIT . " ELSE fa.active END AS localstate, parent_states.inheritedstate - FROM (SELECT f.filter, + FROM (SELECT f.filter, MAX(f.sortorder) AS max_sortorder CASE WHEN MAX(f.active * " . $DB->sql_cast_2signed('ctx.depth') . ") > -MIN(f.active * " . $DB->sql_cast_2signed('ctx.depth') . ") THEN " . TEXTFILTER_ON . " ELSE " . TEXTFILTER_OFF . " END AS inheritedstate @@ -727,7 +727,7 @@ function filter_get_available_in_context($context) { WHERE ctx.id IN ($contextids) GROUP BY f.filter HAVING MIN(f.active) > " . TEXTFILTER_DISABLED . " - ORDER BY MAX(f.sortorder)) parent_states + ORDER BY max_sortorder) parent_states LEFT JOIN {filter_active} fa ON fa.filter = parent_states.filter AND fa.contextid = $context->id"; return $DB->get_records_sql($sql); }