diff --git a/forms/LookupField.php b/forms/LookupField.php index 17b8427ab..3a5e6ec3e 100644 --- a/forms/LookupField.php +++ b/forms/LookupField.php @@ -71,9 +71,12 @@ class LookupField extends DropdownField { $inputValue = ''; } - return "id() . - "\">$attrValuename . - "\" value=\"" . $inputValue . "\" />"; + $properties = array_merge($properties, array( + 'AttrValue' => $attrValue, + 'InputValue' => $inputValue + )); + + return parent::Field($properties); } /** @@ -91,14 +94,5 @@ class LookupField extends DropdownField { public function Type() { return "lookup readonly"; } - - /** - * Override parent behavior by not merging arrays. - * - * @return array - */ - public function getSource() { - return $this->source; - } } diff --git a/templates/forms/LookupField.ss b/templates/forms/LookupField.ss new file mode 100644 index 000000000..e4a781795 --- /dev/null +++ b/templates/forms/LookupField.ss @@ -0,0 +1 @@ +$AttrValue \ No newline at end of file diff --git a/tests/forms/LookupFieldTest.php b/tests/forms/LookupFieldTest.php index ab2dfc5dd..f05e78f31 100644 --- a/tests/forms/LookupFieldTest.php +++ b/tests/forms/LookupFieldTest.php @@ -13,9 +13,10 @@ class LookupFieldTest extends SapphireTest { $source = array(1 => 'one', 2 => 'two', 3 => 'three'); $f = new LookupField('test', 'test', $source); $f->setValue(null); + $this->assertEquals( '(none)', - $f->Field() + $f->Field()->getValue() ); } @@ -25,7 +26,7 @@ class LookupFieldTest extends SapphireTest { $f->setValue(1); $this->assertEquals( 'one', - $f->Field() + $f->Field()->getValue() ); } @@ -36,7 +37,7 @@ class LookupFieldTest extends SapphireTest { $f->dontEscape = true; // simulates CMSMain->compareversions() $this->assertEquals( 'w00t', - $f->Field() + $f->Field()->getValue() ); } @@ -47,7 +48,7 @@ class LookupFieldTest extends SapphireTest { $f->setValue(array('one','two')); $this->assertEquals('one val, two val' . '', - $f->Field() + $f->Field()->getValue() ); } @@ -58,7 +59,7 @@ class LookupFieldTest extends SapphireTest { $f->setValue(array(1,2)); $this->assertEquals( 'one, two', - $f->Field() + $f->Field()->getValue() ); } @@ -78,7 +79,7 @@ class LookupFieldTest extends SapphireTest { $member1->ID, $member2->ID ), - $f->Field() + $f->Field()->getValue() ); } @@ -100,7 +101,7 @@ class LookupFieldTest extends SapphireTest { $this->assertEquals( 'Carrots', - $f->Field() + $f->Field()->getValue() ); $f->setValue(array( @@ -109,7 +110,7 @@ class LookupFieldTest extends SapphireTest { $this->assertEquals( 'Carrots, Vegan', - $f->Field() + $f->Field()->getValue() ); } }