From 6eb7dfed149e04ca39c576b058106e547c8c0fdc Mon Sep 17 00:00:00 2001 From: "tim.plunkett" <tim.plunkett@241634.no-reply.drupal.org> Date: Thu, 7 Jun 2012 18:24:06 +0200 Subject: [PATCH] Issue #1548240 by fgm, tim.plunkett | GiorgosK: $this->original_value did not always existe in views_handler_field::render_text(). --- handlers/views_handler_field.inc | 11 +++++++++++ tests/field/views_fieldapi.test | 8 ++++++++ 2 files changed, 19 insertions(+) diff --git a/handlers/views_handler_field.inc b/handlers/views_handler_field.inc index 22a1c4bb8453..5cd82d8be5ee 100644 --- a/handlers/views_handler_field.inc +++ b/handlers/views_handler_field.inc @@ -46,6 +46,13 @@ class views_handler_field extends views_handler { var $field_alias = 'unknown'; var $aliases = array(); + /** + * The field value prior to any rewriting. + * + * @var mixed + */ + public $original_value = NULL; + /** * @var array * Stores additional fields which get's added to the query. @@ -1080,6 +1087,10 @@ function render($values) { function advanced_render($values) { if ($this->allow_advanced_render() && method_exists($this, 'render_item')) { $raw_items = $this->get_items($values); + // If there are no items, set the original value to NULL. + if (empty($raw_items)) { + $this->original_value = NULL; + } } else { $value = $this->render($values); diff --git a/tests/field/views_fieldapi.test b/tests/field/views_fieldapi.test index 2b807243338f..aa5798862dc7 100644 --- a/tests/field/views_fieldapi.test +++ b/tests/field/views_fieldapi.test @@ -273,6 +273,8 @@ class viewsHandlerFieldFieldTest extends ViewsFieldApiTestHelper { // Setup a field with cardinality > 1. $this->fields[3] = $field = field_create_field(array('field_name' => 'field_name_3', 'type' => 'text', 'cardinality' => FIELD_CARDINALITY_UNLIMITED)); + // Setup a field that will have no value. + $this->fields[4] = $field = field_create_field(array('field_name' => 'field_name_4', 'type' => 'text', 'cardinality' => FIELD_CARDINALITY_UNLIMITED)); $this->setUpInstances(); @@ -290,6 +292,8 @@ class viewsHandlerFieldFieldTest extends ViewsFieldApiTestHelper { for ($j = 0; $j < 5; $j++) { $edit[$this->fields[3]['field_name']][LANGUAGE_NOT_SPECIFIED][$j]['value'] = $this->randomName(8); } + // Set this field to be empty. + $edit[$this->fields[4]['field_name']] = array(); $this->nodes[$i] = $this->drupalCreateNode($edit); } @@ -353,6 +357,10 @@ class viewsHandlerFieldFieldTest extends ViewsFieldApiTestHelper { } $this->assertEqual($rendered_field, implode(', ', $items), 'Take sure that the amount of items are limited.'); } + + // Test that an empty field is rendered without error. + $rendered_field = $view->style_plugin->get_field(4, $this->fields[4]['field_name']); + $view->destroy(); // Test delta limit + offset -- GitLab