diff sites/all/modules/views/handlers/views_handler_field_custom.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_custom.inc	Wed Aug 21 18:51:11 2013 +0100
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * @file
+ * Definition of views_handler_field_custom.
+ */
+
+/**
+ * A handler to provide a field that is completely custom by the administrator.
+ *
+ * @ingroup views_field_handlers
+ */
+class views_handler_field_custom extends views_handler_field {
+  function query() {
+    // do nothing -- to override the parent query.
+  }
+
+  function option_definition() {
+    $options = parent::option_definition();
+
+    // Override the alter text option to always alter the text.
+    $options['alter']['contains']['alter_text'] = array('default' => TRUE, 'bool' => TRUE);
+    $options['hide_alter_empty'] = array('default' => FALSE, 'bool' => TRUE);
+    return $options;
+  }
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    // Remove the checkbox
+    unset($form['alter']['alter_text']);
+    unset($form['alter']['text']['#dependency']);
+    unset($form['alter']['text']['#process']);
+    unset($form['alter']['help']['#dependency']);
+    unset($form['alter']['help']['#process']);
+    $form['#pre_render'][] = 'views_handler_field_custom_pre_render_move_text';
+  }
+
+  function render($values) {
+    // Return the text, so the code never thinks the value is empty.
+    return $this->options['alter']['text'];
+  }
+}
+
+/**
+ * Prerender function to move the textarea to the top.
+ */
+function views_handler_field_custom_pre_render_move_text($form) {
+  $form['text'] = $form['alter']['text'];
+  $form['help'] = $form['alter']['help'];
+  unset($form['alter']['text']);
+  unset($form['alter']['help']);
+
+  return $form;
+}