Permalink
Browse files

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').
  • Loading branch information...
1 parent ce1a0d3 commit b8efcb9233b5d4527bfc2c2bfaf8d9d5d8e6ebbb @mudrd8mz mudrd8mz committed Mar 16, 2013
Showing with 29 additions and 0 deletions.
  1. +29 −0 lib/pluginlib.php
View
29 lib/pluginlib.php
@@ -230,6 +230,35 @@ public function plugin_name($plugin) {
}
/**
+ * 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
*
* Most plugin types define their names in core_plugin lang file. In case of subplugins,

0 comments on commit b8efcb9

Please sign in to comment.