diff --git a/system/form.php b/system/form.php index b596216c0..b303c0ed2 100644 --- a/system/form.php +++ b/system/form.php @@ -2,6 +2,13 @@ class Form { + /** + * Stores labels names. + * + * @var array + */ + private static $labels = array(); + /** * Open a HTML form. * @@ -46,6 +53,16 @@ class Form { return $html.PHP_EOL; } + /** + * Close a HTML form. + * + * @return void + */ + public static function close() + { + return ''.PHP_EOL; + } + /** * Generate a hidden field containing the current CSRF token. * @@ -71,6 +88,21 @@ class Form { return Session::get('csrf_token'); } + /** + * Create a HTML label element. + * + * @param string $name + * @param string $value + * @param array $attributes + * @return string + */ + public static function label($name, $value, $attributes = array()) + { + static::$labels[] = $name; + + return ''.PHP_EOL; + } + /** * Create a HTML text input element. * @@ -189,6 +221,8 @@ class Form { { $attributes['checked'] = 'checked'; } + + (in_array($name, static::$labels)) ? $attributes['id'] = $name : null; return static::input($type, $name, $value, $attributes); } @@ -204,6 +238,7 @@ class Form { 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. @@ -236,6 +271,7 @@ class Form { 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(); @@ -265,6 +301,7 @@ class Form { $attributes['type'] = $type; $attributes['name'] = $name; $attributes['value'] = $value; + (in_array($name, static::$labels)) ? $attributes['id'] = $name : null; return ''.PHP_EOL; }