Simplified implementation of FieldSet::makeReadonlyField()

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/2.3@69349 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Sam Minnee 2008-12-17 04:20:52 +00:00
parent ac83f9d4d9
commit d64297e9ee

View File

@ -471,26 +471,8 @@ class FieldSet extends DataObjectSet {
* @param string|FormField
*/
function makeFieldReadonly($field) {
$fieldName = ($field instanceof FormField) ? $field->Name() : $field;
// Iterate on items, looking for the applicable field
foreach($this->items as $i => $item) {
if($item->isComposite()) {
$item->makeFieldReadonly($fieldName);
} else {
// Once it's found, use FormField::transform to turn the field into a readonly version of itself.
if($item->Name() == $fieldName) {
$this->items[$i] = $item->transform(new ReadonlyTransformation());
// Clear an internal cache
$this->sequentialSet = null;
// A true results indicates that the field was foudn
return true;
}
}
}
return false;
$srcField = $this->dataFieldByName($fieldName);
$this->replaceField($fieldName, $srcField->performReadonlyTransformation());
}
/**
@ -552,4 +534,4 @@ class FieldSet extends DataObjectSet {
}
?>
?>