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()
);
}
}