From 12fcd26de27af881f35c2c3762d04cf37e6f2a7a Mon Sep 17 00:00:00 2001 From: Dongsheng Cai Date: Mon, 13 Sep 2010 07:01:55 +0000 Subject: [PATCH] MDL-23308, added mimetype icons to course files tree --- files/filebrowser_ajax.php | 2 ++ files/module.js | 11 +++++------ files/renderer.php | 8 +++++++- lang/en/moodle.php | 1 + 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/files/filebrowser_ajax.php b/files/filebrowser_ajax.php index 4191a2c7744..8ecc13423a1 100755 --- a/files/filebrowser_ajax.php +++ b/files/filebrowser_ajax.php @@ -70,8 +70,10 @@ switch ($action) { if ($child->is_directory()) { $fileitem['isdir'] = true; $fileitem['url'] = $url->out(false); + $fileitem['icon'] = $OUTPUT->pix_icon('f/folder', get_string('icon')); } else { $fileitem['url'] = $child->get_url(); + $fileitem['icon'] = $OUTPUT->pix_icon('f/'.mimeinfo('icon', $child->get_visible_name()), get_string('icon')); } $tree[] = $fileitem; } diff --git a/files/module.js b/files/module.js index a99aef27e40..0e764fe4c2a 100644 --- a/files/module.js +++ b/files/module.js @@ -28,11 +28,7 @@ M.core_filetree = { node.isLeaf = true; } else { for (i in data) { - var mynode = { - label: data[i].filename, - href: data[i].url - }; - var tmp = new YAHOO.widget.TextNode(mynode, node, false); + var tmp = new YAHOO.widget.HTMLNode('
'+data[i].icon+' '+data[i].filename+'
', node, false); if (data[i].isdir) { tmp.isLeaf = false; } else { @@ -72,7 +68,10 @@ M.core_filetree = { this.y3 = Y; }, dynload: function(node, oncompletecb) { - M.core_filetree.request(node.href, node, oncompletecb); + var tmp = document.createElement('p'); + tmp.innerHTML = node.html; + var links = tmp.getElementsByTagName('a'); + M.core_filetree.request(links[0].href, node, oncompletecb); }, onclick: function(e) { YAHOO.util.Event.preventDefault(e); diff --git a/files/renderer.php b/files/renderer.php index 1c6a2290513..b9158c7651a 100644 --- a/files/renderer.php +++ b/files/renderer.php @@ -64,12 +64,18 @@ class core_files_renderer extends plugin_renderer_base { $link_attributes = array(); if (!empty($node['isdir'])) { $class = ' class="file-tree-folder"'; + $icon = $this->output->pix_icon('f/folder', 'icon'); } else { $class = ' class="file-tree-file"'; + $icon = $this->output->pix_icon('f/'.mimeinfo('icon', $node['filename']), get_string('icon')); $link_attributes['target'] = '_blank'; } - $html .= '
  • '; + $html .= '
  • '; + $html .= '
    '; + $html .= $icon; + $html .= ' '; $html .= html_writer::link($node['url'], $node['filename'], $link_attributes); + $html .= '
    '; $html .= '
  • '; } $html .= ''; diff --git a/lang/en/moodle.php b/lang/en/moodle.php index 02e94cf8c9d..a04e29fb02e 100644 --- a/lang/en/moodle.php +++ b/lang/en/moodle.php @@ -845,6 +845,7 @@ $string['choosereportfilter'] = 'Choose a filter for the report'; $string['choosetheme'] = 'Choose theme'; $string['chooseuser'] = 'Choose a user'; $string['icqnumber'] = 'ICQ number'; +$string['icon'] = 'Icon'; $string['idnumber'] = 'ID number'; $string['idnumbercourse'] = 'Course ID number'; $string['idnumbercourse_help'] = 'The ID number of a course is only used when matching the course against external systems and is not displayed anywhere on the site. If the course has an official code name it may be entered, otherwise the field can be left blank.'; -- 2.43.0