MDL-38509 Implement new plugin_manager::plugintype_name()

This has exactly the same behaviour as the existing
plugintype_name_plural() method, but returns the singular form of the
plugin type (such as 'Activity module').
This commit is contained in:
David Mudrák
2013-03-28 11:54:05 +01:00
parent ce1a0d3cd8
commit b8efcb9233
+29
View File
@@ -229,6 +229,35 @@ class plugin_manager {
return $this->pluginsinfo[$type][$name]->displayname;
}
/**
* Returns a localized name of a plugin typed in singular form
*
* Most plugin types define their names in core_plugin lang file. In case of subplugins,
* we try to ask the parent plugin for the name. In the worst case, we will return
* the value of the passed $type parameter.
*
* @param string $type the type of the plugin, e.g. mod or workshopform
* @return string
*/
public function plugintype_name($type) {
if (get_string_manager()->string_exists('type_' . $type, 'core_plugin')) {
// for most plugin types, their names are defined in core_plugin lang file
return get_string('type_' . $type, 'core_plugin');
} else if ($parent = $this->get_parent_of_subplugin($type)) {
// if this is a subplugin, try to ask the parent plugin for the name
if (get_string_manager()->string_exists('subplugintype_' . $type, $parent)) {
return $this->plugin_name($parent) . ' / ' . get_string('subplugintype_' . $type, $parent);
} else {
return $this->plugin_name($parent) . ' / ' . $type;
}
} else {
return $type;
}
}
/**
* Returns a localized name of a plugin type in plural form
*