diff sites/all/modules/views/handlers/views_handler_field_markup.inc @ 0:ff03f76ab3fe

initial version
author danieleb <danielebarchiesi@me.com>
date Wed, 21 Aug 2013 18:51:11 +0100
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sites/all/modules/views/handlers/views_handler_field_markup.inc	Wed Aug 21 18:51:11 2013 +0100
@@ -0,0 +1,59 @@
+<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_markup.
+ */
+
+/**
+ * A handler to run a field through check_markup, using a companion
+ * format field.
+ *
+ * - format: (REQUIRED) Either a string format id to use for this field or an
+ *           array('field' => {$field}) where $field is the field in this table
+ *           used to control the format such as the 'format' field in the node,
+ *           which goes with the 'body' field.
+ *
+ * @ingroup views_field_handlers
+ */
+class views_handler_field_markup extends views_handler_field {
+  /**
+   * Constructor; calls to base object constructor.
+   */
+  function construct() {
+    parent::construct();
+
+    $this->format = $this->definition['format'];
+
+    $this->additional_fields = array();
+    if (is_array($this->format)) {
+      $this->additional_fields['format'] = $this->format;
+    }
+  }
+
+  function render($values) {
+    $value = $this->get_value($values);
+    if (is_array($this->format)) {
+      $format = $this->get_value($values, 'format');
+    }
+    else {
+      $format = $this->format;
+    }
+    if ($value) {
+      $value = str_replace('<!--break-->', '', $value);
+      return check_markup($value, $format, '');
+    }
+  }
+
+  function element_type($none_supported = FALSE, $default_empty = FALSE, $inline = FALSE) {
+    if ($inline) {
+      return 'span';
+    }
+
+    if (isset($this->definition['element type'])) {
+      return $this->definition['element type'];
+    }
+
+    return 'div';
+  }
+}