From b4db6396ccc61f8bf136e907979a5d381c82c49f Mon Sep 17 00:00:00 2001 From: Pedro Borges Date: Tue, 14 Jun 2011 11:43:18 -0300 Subject: [PATCH] Auto detect label and add id to field --- system/form.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/system/form.php b/system/form.php index 79f17a71..96b5b39d 100644 --- a/system/form.php +++ b/system/form.php @@ -2,6 +2,13 @@ class Form { + /** + * Stores lables names. + * + * @var array + */ + private static $labels = array(); + /** * Open a HTML form. * @@ -81,6 +88,8 @@ public static function raw_token() */ public static function label($name, $value, $attributes = array()) { + static::$labels[] = $name; + return ''.PHP_EOL; } @@ -202,6 +211,8 @@ private static function checkable($type, $name, $value, $checked, $attributes) { $attributes['checked'] = 'checked'; } + + (in_array($name, static::$labels)) ? $attributes['id'] = $name : null; return static::input($type, $name, $value, $attributes); } @@ -217,6 +228,7 @@ private static function checkable($type, $name, $value, $checked, $attributes) public static function textarea($name, $value = '', $attributes = array()) { $attributes['name'] = $name; + (in_array($name, static::$labels)) ? $attributes['id'] = $name : null; // ------------------------------------------------------- // Set the default number of rows. @@ -249,6 +261,7 @@ public static function textarea($name, $value = '', $attributes = array()) public static function select($name, $options = array(), $selected = null, $attributes = array()) { $attributes['name'] = $name; + (in_array($name, static::$labels)) ? $attributes['id'] = $name : null; $html_options = array(); @@ -278,6 +291,7 @@ private static function input($type, $name, $value = null, $attributes = array() $attributes['type'] = $type; $attributes['name'] = $name; $attributes['value'] = $value; + (in_array($name, static::$labels)) ? $attributes['id'] = $name : null; return ''.PHP_EOL; }