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(
'GET /' => function()
{
return Form::input('email', 'email', '', array('required', 'class' => 'awesome'));
return View::make('home/index');
},
......
......@@ -146,6 +146,7 @@ class Form {
* Create a HTML hidden input element.
*
* @param string $name
* @param string $value
* @param array $attributes
* @return string
*/
......@@ -154,6 +155,71 @@ class Form {
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.
*
......@@ -310,7 +376,7 @@ class Form {
* @param array $attributes
* @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['name'] = $name;
......
......@@ -227,6 +227,11 @@ class HTML {
foreach ($attributes as $key => $value)
{
if (is_numeric($key))
{
$key = $value;
}
if ( ! is_null($value))
{
$html[] = $key.'="'.static::entities($value).'"';
......@@ -300,6 +305,8 @@ class HTML {
array_unshift($parameters, substr($method, 8));
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