summaryrefslogtreecommitdiff
path: root/sites/all/modules/media_browser_plus/views/media_browser_plus_views_handler_field_preview.inc
diff options
context:
space:
mode:
Diffstat (limited to 'sites/all/modules/media_browser_plus/views/media_browser_plus_views_handler_field_preview.inc')
-rw-r--r--sites/all/modules/media_browser_plus/views/media_browser_plus_views_handler_field_preview.inc94
1 files changed, 94 insertions, 0 deletions
diff --git a/sites/all/modules/media_browser_plus/views/media_browser_plus_views_handler_field_preview.inc b/sites/all/modules/media_browser_plus/views/media_browser_plus_views_handler_field_preview.inc
new file mode 100644
index 000000000..2075c4e1e
--- /dev/null
+++ b/sites/all/modules/media_browser_plus/views/media_browser_plus_views_handler_field_preview.inc
@@ -0,0 +1,94 @@
+<?php
+
+/**
+ * @file
+ * The media browser plus field handler.
+ */
+
+/**
+ * Field handler for the media browser plus.
+ *
+ * @ingroup views_field_handlers
+ */
+class media_browser_plus_views_handler_field_preview extends views_handler_field {
+
+ /**
+ * Define the handler options.
+ */
+ public function option_definition() {
+ $options = parent::option_definition();
+
+ $options['mbp_settings'] = array(
+ 'contains' => array(
+ 'add_link' => array(
+ 'contains' => array(
+ 'type' => array('default' => 'none'),
+ 'colorbox_settings' => array('default' => TRUE),
+ ),
+ ),
+ ),
+ );
+ return $options;
+ }
+
+ /**
+ * Options form.
+ */
+ public function options_form(&$form, &$form_state) {
+ parent::options_form($form, $form_state);
+
+ $form['mbp_settings'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Media Browser Plus Settings'),
+ '#collapsible' => TRUE,
+ '#collapsed' => FALSE,
+ '#weight' => -1,
+ );
+
+ $link_options = array(
+ 'none' => t('None'),
+ 'edit' => t('Edit'),
+ 'view' => t('View'),
+ 'delete' => t('Delete'),
+ 'download' => t('Download'),
+ 'usage' => t('Usage'),
+ 'file' => t('Raw-File'),
+ );
+ $form['mbp_settings']['add_link'] = array(
+ '#type' => 'select',
+ '#title' => t('Add link'),
+ '#default_value' => $this->options['mbp_settings']['add_link'],
+ '#options' => $link_options,
+ );
+ }
+
+ /**
+ * Returns the media browser preview item.
+ *
+ * @see media_get_thumbnail_preview()
+ */
+ public function render($values) {
+ $file = file_load($values->fid);
+
+ // Prepare file link.
+ switch ($this->options['mbp_settings']['add_link']) {
+ case 'delete':
+ case 'edit':
+ case 'usage':
+ case 'view':
+ case 'download':
+ $link = file_entity_uri($file) . '/' . $this->options['mbp_settings']['add_link'];
+ break;
+
+ case 'file':
+ $link = file_create_url($file->uri);
+ break;
+
+ default:
+ $link = NULL;
+ }
+
+ $preview = media_get_thumbnail_preview($file);
+ return drupal_render($preview);
+ }
+}