From 1e6ab99c692bb0337559d3303143838dff37d638 Mon Sep 17 00:00:00 2001 From: Derek Allard Date: Fri, 6 Jun 2008 11:37:34 +0000 Subject: Form helper refactored to allow form_open() and form_fieldset() to accept arrays or strings as arguments. --- system/helpers/form_helper.php | 70 ++++++++++++++++++++++++++++++------------ user_guide/changelog.html | 5 +++ 2 files changed, 56 insertions(+), 19 deletions(-) diff --git a/system/helpers/form_helper.php b/system/helpers/form_helper.php index c6aa0d2b4..cc08f4fe4 100644 --- a/system/helpers/form_helper.php +++ b/system/helpers/form_helper.php @@ -48,18 +48,7 @@ if ( ! function_exists('form_open')) $form = '
0) - { - foreach ($attributes as $key => $val) - { - $form .= ' '.$key.'="'.$val.'"'; - } - } + $form .= _attributes_to_string($attributes, TRUE); $form .= '>'; @@ -467,13 +456,7 @@ if ( ! function_exists('form_fieldset')) $fieldset = " 0) - { - foreach ($attributes as $key => $val) - { - $fieldset .= ' '.$key.'="'.$val.'"'; - } - } + $fieldset .= _attributes_to_string($attributes, FALSE); $fieldset .= ">\n"; @@ -610,6 +593,55 @@ if ( ! function_exists('parse_form_attributes')) } } +// ------------------------------------------------------------------------ + +/** + * Attributes To String + * + * Helper function used by some of the form helpers + * + * @access private + * @param mixed + * @param bool + * @return string + */ +if ( ! function_exists('_attributes_to_string')) +{ + function _attributes_to_string($attributes, $formtag = FALSE) + { + if (is_string($attributes) AND strlen($attributes) > 0) + { + if ($formtag == TRUE AND strpos($attributes, 'method=') === FALSE) + { + $attributes .= ' method="post"'; + } + + return ' '.$attributes; + } + + if (is_object($attributes) AND count($attributes) > 0) + { + $attributes = (array)$attributes; + } + + if (is_array($attributes) AND count($attributes) > 0) + { + $atts = ''; + + if ( ! isset($attributes['method']) AND $formtag === TRUE) + { + $atts .= ' method="post"'; + } + + foreach ($attributes as $key => $val) + { + $atts .= ' '.$key.'="'.$val.'"'; + } + + return $atts; + } + } +} /* End of file form_helper.php */ /* Location: ./system/helpers/form_helper.php */ \ No newline at end of file diff --git a/user_guide/changelog.html b/user_guide/changelog.html index f37982cf4..47e517dc3 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -74,6 +74,11 @@ SVN Revision: not currently released

  • Added support for query strings to the Pagination class, automatically detected or explicitly declared.
  • +
  • Helpers +
      +
    • Form helper refactored to allow form_open() and form_fieldset() to accept arrays or strings as arguments.
    • +
    +
  • Other changes