commit 93b0a10659213f2989f5e4c675003a9aed55fdae
Author: Francois Marier <francois@catalyst.net.nz>
Date:   Fri Mar 27 15:15:43 2009 +1300

    mod/resource: MDL-18691 allow custom resource types to specify their name in their own lang directory
    
    Before this change, the full name of the resource type had to be stored in the "resource" namespace (for example in /mod/resource/lang/en_utf8/resource.php).
    
    Now it can be put in the "resource_foo" namespace:
    
    e.g. in /mod/resource/type/foo/lang/en_utf8/resource_foo.php:
    
    <?php
      $string['resourcetypefoo'] = 'Link to a Foo Bar document';
    ?>

diff --git a/mod/resource/lib.php b/mod/resource/lib.php
index b8b6c1d..c9280c0 100644
--- a/mod/resource/lib.php
+++ b/mod/resource/lib.php
@@ -553,7 +553,7 @@ function resource_get_types() {
             $type->modclass = MOD_CLASS_RESOURCE;
             $type->name = $resourcetype;
             $type->type = "resource&amp;type=$resourcetype";
-            $type->typestr = get_string("resourcetype$resourcetype", 'resource');
+            $type->typestr = resource_get_name($resourcetype);
             $types[] = $type;
         }
     }
@@ -685,4 +685,19 @@ function resource_get_extra_capabilities() {
     return array('moodle/site:accessallgroups');
 }
 
+/**
+ * Returns the full name of the given resource type.  The name can
+ * either be set at the resource type level or at the resource module
+ * level.
+ *
+ * @param string $type shortname (or directory name) of the resource type
+ */
+function resource_get_name($type) {
+    $name = get_string("resourcetype$type", "resource_$type");
+    if (substr($name, 0, 2) === '[[') {
+        $name = get_string("resourcetype$type", 'resource');
+    }
+    return $name;
+}
+
 ?>
diff --git a/mod/resource/mod_form.php b/mod/resource/mod_form.php
index eba617b..e6a8000 100644
--- a/mod/resource/mod_form.php
+++ b/mod/resource/mod_form.php
@@ -44,7 +44,7 @@ class mod_resource_mod_form extends moodleform_mod {
         // summary should be optional again MDL-9485
         //$mform->addRule('summary', get_string('required'), 'required', null, 'client');
 
-        $mform->addElement('header', 'typedesc', get_string('resourcetype'.$type,'resource'));
+        $mform->addElement('header', 'typedesc', resource_get_name($type));
         $this->_resinstance->setup_elements($mform);
 
         $this->standard_coursemodule_elements(array('groups'=>false, 'groupmembersonly'=>true, 'gradecat'=>false));
