working on form helper, added a submit button to form end if you pass true, added fieldset options to inputs

git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@4862 3807eeeb-6ff5-0310-8944-8be069107fe0
This commit is contained in:
gwoo 2007-04-17 02:06:15 +00:00
parent 86d32e4313
commit f4c9be8be2

View file

@ -164,6 +164,9 @@ class FormHelper extends AppHelper {
'action' => $options['action'],
'id' => $id
);
if(!empty($options['action'])) {
$options['id'] = $model . Inflector::camelize($options['action']) . 'Form';
}
$options['action'] = am($actionDefaults, (array)$options['url']);
} elseif (is_string($options['url'])) {
$options['action'] = $options['url'];
@ -214,11 +217,40 @@ class FormHelper extends AppHelper {
* @access public
* @return string A closing FORM tag.
*/
function end($model = null) {
if (empty($model) && !empty($this->params['models'])) {
function end($options = null) {
$out = null;
if (!empty($this->params['models'])) {
$models = $this->params['models'][0];
}
return $this->output($this->Html->tags['formend']);
$submitOptions = true;
if(!is_array($options)) {
$submitOptions = $options;
} else if(isset($options['submit'])) {
$submitOptions = $options['submit'];
unset($options['submit']);
if(isset($submitOptions['label'])) {
$submit = $submitOptions['label'];
unset($submitOptions['label']);
}
}

if($submitOptions === true) {
$submit = 'Submit';
} else if(is_string($submitOptions)) {
$submit = $submitOptions;
}
if(!is_array($submitOptions)) {
$submitOptions = array();
}
if(isset($submit)) {
$out .= $this->submit($submit, $submitOptions);
}
$out .= $this->Html->tags['formend'];
return $this->output($out);
}
/**
* Returns true if there is an error for the given field, otherwise false
@ -299,6 +331,19 @@ class FormHelper extends AppHelper {
* @return output
*/
function inputs($fields = null, $blacklist = null) {
if(!is_array($fields)) {
$fieldset = $fields;
} else if(isset($fields['fieldset'])) {
$fieldset = $fields['fieldset'];
unset($fields['fieldset']);
}
if($fieldset === true) {
$legend = Inflector::humanize($this->action .' to '. $this->model());
} else if(is_string($fieldset)){
$legend = $fields;
}
if(!is_array($fields)) {
$fields = array_keys($this->fieldset['fields']);
}
@ -318,8 +363,12 @@ class FormHelper extends AppHelper {
}
$out .= $this->input($name, $options);
}
if(isset($legend)) {
return sprintf($this->Html->tags['fieldset'], $legend, $out);
} else {
return $out;
}
}
/**
* Generates a form input element complete with label and wrapper div
*