diff options
author | Derek Allard <derek.allard@ellislab.com> | 2008-06-06 13:37:34 +0200 |
---|---|---|
committer | Derek Allard <derek.allard@ellislab.com> | 2008-06-06 13:37:34 +0200 |
commit | 1e6ab99c692bb0337559d3303143838dff37d638 (patch) | |
tree | 54cab77fefab1ace6be16098bc7b4bc50cad9c22 | |
parent | 7a3b96e27988deeebeeff4469f5de3b9fb50918f (diff) |
Form helper refactored to allow form_open() and form_fieldset() to accept arrays or strings as arguments.
-rw-r--r-- | system/helpers/form_helper.php | 70 | ||||
-rw-r--r-- | 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 = '<form action="'.$action.'"';
- if ( ! isset($attributes['method']))
- {
- $form .= ' method="post"';
- }
-
- if (is_array($attributes) AND count($attributes) > 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 = "<fieldset";
- if (is_array($attributes) AND count($attributes) > 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</p> <li>Added support for query strings to the <a href="libraries/pagination.html">Pagination class</a>, automatically detected or explicitly declared.</li>
</ul>
</li>
+ <li>Helpers
+ <ul>
+ <li><a href="helpers/form_helper.html">Form helper</a> refactored to allow <kbd>form_open()</kbd> and <kbd>form_fieldset()</kbd> to accept arrays or strings as arguments.</li>
+ </ul>
+ </li>
<li>Other changes
<ul>
<li>Added ability to <a href="libraries/input.html">use xss_clean() to test images</a> for XSS, useful for upload security.</li>
|