Skip to content

Commit

Permalink
MDL-26955 get_plugin_directory() respects $CFG->themedir
Browse files Browse the repository at this point in the history
If $CFG->themedir is set (it is not usually) and the given theme is not
found in the standard location, then it is expected to be in the custom
$CFG->themedir directory.

Credit goes to Urs Hunkler for the idea of the patch.
  • Loading branch information
mudrd8mz committed Apr 27, 2011
1 parent 7daba27 commit bef867a
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion lib/moodlelib.php
Expand Up @@ -6873,6 +6873,8 @@ function endecrypt ($pwd, $data, $case) {
* @return string full path to plugin directory; NULL if not found
*/
function get_plugin_directory($plugintype, $name) {
global $CFG;

if ($plugintype === '') {
$plugintype = 'mod';
}
Expand All @@ -6883,6 +6885,13 @@ function get_plugin_directory($plugintype, $name) {
}
$name = clean_param($name, PARAM_SAFEDIR); // just in case ;-)

if (!empty($CFG->themedir) and $plugintype === 'theme') {
if (!is_dir($types['theme'] . '/' . $name)) {
// ok, so the theme is supposed to be in the $CFG->themedir
return $CFG->themedir . '/' . $name;
}
}

return $types[$plugintype].'/'.$name;
}

Expand Down Expand Up @@ -7079,7 +7088,7 @@ function get_plugin_types($fullpaths=true) {
'qtype' => 'question/type',
'qformat' => 'question/format',
'plagiarism' => 'plagiarism',
'theme' => 'theme'); // this is a bit hacky, themes may be in dataroot too
'theme' => 'theme'); // this is a bit hacky, themes may be in $CFG->themedir too

$mods = get_plugin_list('mod');
foreach ($mods as $mod => $moddir) {
Expand Down

0 comments on commit bef867a

Please sign in to comment.