summaryrefslogtreecommitdiff
path: root/sites/all/modules/views/modules/system/views_handler_field_file_filemime.inc
diff options
context:
space:
mode:
Diffstat (limited to 'sites/all/modules/views/modules/system/views_handler_field_file_filemime.inc')
-rw-r--r--sites/all/modules/views/modules/system/views_handler_field_file_filemime.inc38
1 files changed, 38 insertions, 0 deletions
diff --git a/sites/all/modules/views/modules/system/views_handler_field_file_filemime.inc b/sites/all/modules/views/modules/system/views_handler_field_file_filemime.inc
new file mode 100644
index 000000000..318fdcff3
--- /dev/null
+++ b/sites/all/modules/views/modules/system/views_handler_field_file_filemime.inc
@@ -0,0 +1,38 @@
+<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_file_filemime.
+ */
+
+/**
+ * Field handler to add rendering MIME type images as an option on the filemime field.
+ *
+ * @ingroup views_field_handlers
+ */
+class views_handler_field_file_filemime extends views_handler_field_file {
+ function option_definition() {
+ $options = parent::option_definition();
+ $options['filemime_image'] = array('default' => FALSE, 'bool' => TRUE);
+ return $options;
+ }
+
+ function options_form(&$form, &$form_state) {
+ $form['filemime_image'] = array(
+ '#title' => t('Display an icon representing the file type, instead of the MIME text (such as "image/jpeg")'),
+ '#type' => 'checkbox',
+ '#default_value' => !empty($this->options['filemime_image']),
+ );
+ parent::options_form($form, $form_state);
+ }
+
+ function render($values) {
+ $data = $values->{$this->field_alias};
+ if (!empty($this->options['filemime_image']) && $data !== NULL && $data !== '') {
+ $fake_file = (object) array('filemime' => $data);
+ $data = theme('file_icon', array('file' => $fake_file));
+ }
+
+ return $this->render_link($data, $values);
+ }
+}