Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class form extends form_core {
- public static $errors = array();
- public static $form_data = array();
- public static $lang_key;
- public static function open($attr = array(), $lang_key = '', $errors = array(), $form_data = array(), $hidden = NULL)
- {
- is_string($attr) AND $attr = array('action' => $attr);
- self::$errors = $errors;
- self::$lang_key = $lang_key;
- self::$form_data = $form_data;
- $action = $attr['action'];
- unset($attr['action']);
- return parent::open($action, $attr, $hidden);
- }
- public static function errors($title = 'Oops there was an error!')
- {
- if (empty(self::$errors) OR ! is_array(self::$errors))
- return '';
- $output = '<div class="form_errors"><h3>'.$title.'</h3><ul>';
- foreach(self::$errors AS $key => $error)
- {
- $error = Kohana::lang(self::$lang_key.'.'.$key.'.'.$error);
- $output .= '<li>'.html::anchor('#'.$key, $error).'</li>';
- }
- return $output.'</ul></div>';
- }
- public static function label($text = '', $data = '', $extra = '')
- {
- // Do we need to call Kohana::lang()?
- $text = (strpos($text, '.') === 0) ? Kohana::lang(self::$lang_key.$text) : $text;
- if ( ! is_string($data))
- {
- isset($data['for']) AND $field_name = $data['for'];
- // Use the name if we have one
- isset($data['name']) AND $field_name = $data['name'];
- }
- else
- {
- $field_name = $data;
- }
- // Display the errors
- if (isset($field_name) AND ! empty(self::$errors[$field_name]))
- $text = '<a name="'.$field_name.'">'.$text.'</a> - <span class="error">'.Kohana::lang(self::$lang_key.'.'.$field_name.'.'.self::$errors[$field_name]).'</span>';
- return parent::label($data, $text, $extra);
- }
- /**
- * Creates an HTML form input tag. Defaults to a text type.
- *
- * @param string|array input name or an array of HTML attributes
- * @param string input value, when using a name
- * @param array array of error messages
- * @return string
- */
- public static function input($data, $value = NULL)
- {
- if ( ! is_array($data))
- {
- $data = array('name' => $data);
- }
- // Set the automatic value if there is one
- $data['value'] = (isset(self::$form_data[$data['name']]) AND $value === NULL) ? self::$form_data[$data['name']] : $value;
- // Default class
- ! isset($data['class']) AND $data['class'] = 'long';
- isset(self::$errors[$data['name']]) AND $data['class'] = $data['class'].' error';
- return parent::input($data, $value);
- }
- public static function password($data, $value = '')
- {
- if ( ! is_array($data))
- {
- $data = array('name' => $data);
- }
- $data['type'] = 'password';
- return self::input($data, $value);
- }
- }
Add Comment
Please, Sign In to add comment