Mercurial > hg > rr-repo
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; +}