MDL-31360 Don't use get_in_or_equal if array is empty, tidy up structure of $extracaps array

This commit is contained in:
Dan Marsden 2012-01-25 15:21:37 +13:00
parent d4b3034bb4
commit 68e719927e

View file

@ -6380,6 +6380,7 @@ class context_module extends context {
}
$modfile = "$CFG->dirroot/mod/$module->name/lib.php";
$extracaps = array();
if (file_exists($modfile)) {
include_once($modfile);
$modfunction = $module->name.'_get_extra_capabilities';
@ -6387,16 +6388,15 @@ class context_module extends context {
$extracaps = $modfunction();
}
}
if (empty($extracaps)) {
$extracaps = array();
}
$extracaps = array_merge($subcaps, $extracaps);
list($extra, $params) = $DB->get_in_or_equal(
$extracaps, SQL_PARAMS_NAMED, 'cap0');
$extra = "OR name $extra";
$extra = '';
$params = array();
if (!empty($extracaps)) {
list($extra, $params) = $DB->get_in_or_equal(
$extracaps, SQL_PARAMS_NAMED, 'cap0');
$extra = "OR name $extra";
}
$sql = "SELECT *
FROM {capabilities}
WHERE (contextlevel = ".CONTEXT_MODULE."