initial tweaks to Form to better support use in template control blocks

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@50988 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Mark Rickerby 2008-03-13 01:39:57 +00:00
parent d21d2a07f9
commit b6dbeec30d

View File

@ -184,11 +184,12 @@ class Form extends ViewableData {
$this->validator->removeValidation();
}
/**
* Return the form's fields - used by the templates
* @return FieldSet The form fields
* Generate extra special fields - namely the SecurityID field
* @todo Is there anything wrong with putting this in __construct?
*/
function Fields() {
protected function genExtraFields() {
if(!$this->securityTokenAdded && $this->securityTokenEnabled()) {
if(Session::get('SecurityID')) {
$securityID = Session::get('SecurityID');
@ -200,10 +201,29 @@ class Form extends ViewableData {
$this->fields->push(new HiddenField('SecurityID', '', $securityID));
$this->securityTokenAdded = true;
}
}
/**
* Return the form's fields - used by the templates
* @return FieldSet The form fields
*/
function Fields() {
$this->genExtraFields();
return $this->fields;
}
/**
* Return a block of HTML containing all the hidden fields for this form.
* Useful when doing custom field layouts
*/
function HiddenFields() {
$output = "";
foreach($this->fields->dataFields() as $field) {
if($field instanceof HiddenField) $output .= $field->Field();
}
return $output;
}
/**
* Setter for the form fields.
*
@ -220,6 +240,7 @@ class Form extends ViewableData {
* @return FormField
*/
function dataFieldByName($name) {
$this->genExtraFields();
return $this->fields->dataFieldByName($name);
}