Browse Source

Merge pull request #420 from kyledecot/develop

Form::register
Taylor Otwell 12 years ago
parent
commit
c18dcecb00
1 changed files with 35 additions and 0 deletions
  1. 35 0
      laravel/form.php

+ 35 - 0
laravel/form.php

@@ -8,6 +8,28 @@ class Form {
 	 * @var array
 	 */
 	protected static $labels = array();
+	
+	/**
+	 * The registered custom inputs
+	 *
+	 * @var array
+	 */
+	
+	protected static $inputs = array();
+    
+	/**
+	 * Dynamically handle calls to custom registered inputs.
+	 */
+
+	public static function __callStatic($method, $parameters)
+	{
+	    if (isset(static::$inputs[$method]))
+	    {
+	        return call_user_func_array(static::$inputs[$method], $parameters);
+	    }
+	    
+	    throw new \Exception("Method [$method] does not exist.");
+	}
 
 	/**
 	 * Open a HTML form.
@@ -61,6 +83,19 @@ class Form {
 
 		return '<form'.HTML::attributes($attributes).'>'.$append.PHP_EOL;
 	}
+        
+    /**
+     * Registers a custom input
+     *
+     * @param string $name
+     * @param Closure $input
+     * @return void
+     */
+
+	public static function register($name, $input)
+	{
+		static::$inputs[$name] = $input;
+	}
 
 	/**
 	 * Determine the appropriate request method to use for a form.