Commit cd33e817 authored by Taylor Otwell's avatar Taylor Otwell

added several of the new html5 form elements. added support for attributes...

added several of the new html5 form elements. added support for attributes such as required, autofocus, etc.
parent a9029ddf
...@@ -19,6 +19,7 @@ return array( ...@@ -19,6 +19,7 @@ return array(
'GET /' => function() 'GET /' => function()
{ {
return Form::input('email', 'email', '', array('required', 'class' => 'awesome'));
return View::make('home/index'); return View::make('home/index');
}, },
......
...@@ -146,6 +146,7 @@ class Form { ...@@ -146,6 +146,7 @@ class Form {
* Create a HTML hidden input element. * Create a HTML hidden input element.
* *
* @param string $name * @param string $name
* @param string $value
* @param array $attributes * @param array $attributes
* @return string * @return string
*/ */
...@@ -154,6 +155,71 @@ class Form { ...@@ -154,6 +155,71 @@ class Form {
return static::input('hidden', $name, $value, $attributes); return static::input('hidden', $name, $value, $attributes);
} }
/**
* Create a HTML email input element.
*
* @param string $name
* @param string $value
* @param array $attributes
* @return string
*/
public static function email($name, $value = null, $attributes = array())
{
return static::input('email', $name, $value, $attributes);
}
/**
* Create a HTML URL input element.
*
* @param string $name
* @param string $value
* @param array $attributes
* @return string
*/
public static function url($name, $value = null, $attributes = array())
{
return static::input('url', $name, $value, $attributes);
}
/**
* Create a HTML search input element.
*
* @param string $name
* @param string $value
* @param array $attributes
* @return string
*/
public static function search($name, $value = null, $attributes = array())
{
return static::input('search', $name, $value, $attributes);
}
/**
* Create a HTML number input element.
*
* @param string $name
* @param string $value
* @param array $attributes
* @return string
*/
public static function number($name, $value = null, $attributes = array())
{
return static::input('number', $name, $value, $attributes);
}
/**
* Create a HTML telephone input element.
*
* @param string $name
* @param string $value
* @param array $attributes
* @return string
*/
public static function tel($name, $value = null, $attributes = array())
{
return static::input('tel', $name, $value, $attributes);
}
/** /**
* Create a HTML file input element. * Create a HTML file input element.
* *
...@@ -310,7 +376,7 @@ class Form { ...@@ -310,7 +376,7 @@ class Form {
* @param array $attributes * @param array $attributes
* @return string * @return string
*/ */
private static function input($type, $name, $value = null, $attributes = array()) public static function input($type, $name, $value = null, $attributes = array())
{ {
$attributes['type'] = $type; $attributes['type'] = $type;
$attributes['name'] = $name; $attributes['name'] = $name;
......
...@@ -227,6 +227,11 @@ class HTML { ...@@ -227,6 +227,11 @@ class HTML {
foreach ($attributes as $key => $value) foreach ($attributes as $key => $value)
{ {
if (is_numeric($key))
{
$key = $value;
}
if ( ! is_null($value)) if ( ! is_null($value))
{ {
$html[] = $key.'="'.static::entities($value).'"'; $html[] = $key.'="'.static::entities($value).'"';
...@@ -300,6 +305,8 @@ class HTML { ...@@ -300,6 +305,8 @@ class HTML {
array_unshift($parameters, substr($method, 8)); array_unshift($parameters, substr($method, 8));
return forward_static_call_array('HTML::link_to_route', $parameters); return forward_static_call_array('HTML::link_to_route', $parameters);
} }
throw new \Exception("Static method [$method] is not defined on the HTML class.");
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment