diff options
| author | cash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-12-05 19:41:42 +0000 | 
|---|---|---|
| committer | cash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-12-05 19:41:42 +0000 | 
| commit | 9f543bb8999de2db20e71f9d5c7e1fdda13f29a8 (patch) | |
| tree | 277d606973fadce7702c7604443cf76065100f88 /engine | |
| parent | ed81771d23473786d1fb43bae0ea5ca7f0b441ad (diff) | |
| download | elgg-9f543bb8999de2db20e71f9d5c7e1fdda13f29a8.tar.gz elgg-9f543bb8999de2db20e71f9d5c7e1fdda13f29a8.tar.bz2 | |
Fixes #2616 Adds Evan's view form convenience function
git-svn-id: http://code.elgg.org/elgg/trunk@7539 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine')
| -rw-r--r-- | engine/lib/views.php | 41 | 
1 files changed, 41 insertions, 0 deletions
| diff --git a/engine/lib/views.php b/engine/lib/views.php index 70b4b833d..5d7c21002 100644 --- a/engine/lib/views.php +++ b/engine/lib/views.php @@ -1006,6 +1006,47 @@ function elgg_view_listing($icon, $info) {  }  /** + * Convenience function for generating a form from a view in a standard location. + * + * This function assumes that the body of the form is located at "forms/$action" and + * sets the action by default to "action/$action".  Automatically wraps the forms/$action + * view with a <form> tag and inserts the anti-csrf security tokens. + * + * @example + * <code>echo elgg_view_form('login');</code> + * + * This would assume a "login" form body to be at "forms/login" and would set the action + * of the form to "http://yoursite.com/action/login". + * + * If elgg_view('forms/login') is: + * <input type="text" name="username" /> + * <input type="password" name="password" /> + * + * Then elgg_view_form('login') generates: + * <form action="http://yoursite.com/action/login" method="POST"> + *     ...security tokens... + *     <input type="text" name="username" /> + *     <input type="password" name="password" /> + * </form> + * + * @param string $action    The name of the action (without the leading "action/") -- e.g. "login" + * @param array  $form_vars $vars environment passed to the "input/form" view + * @param array  $body_vars $vars environment passed to the "forms/$action" view + * + * @return string The complete form + */ +function elgg_view_form($action, $form_vars = array(), $body_vars = array()) { +	global $CONFIG; + +	$defaults = array( +		'action' => $CONFIG->wwwroot . "action/$action", +		'body' => elgg_view("forms/$action", $body_vars), +	); + +	return elgg_view('input/form', array_merge($defaults, $form_vars)); +} + +/**   * Registers a function to handle templates.   *   * Alternative template handlers can be registered to handle | 
