form_helper.php

Go to the documentation of this file.
00001 <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
00002 /**
00003  * CodeIgniter
00004  *
00005  * An open source application development framework for PHP 4.3.2 or newer
00006  *
00007  * @package             CodeIgniter
00008  * @author              ExpressionEngine Dev Team
00009  * @copyright   Copyright (c) 2008, EllisLab, Inc.
00010  * @license             http://codeigniter.com/user_guide/license.html
00011  * @link                http://codeigniter.com
00012  * @since               Version 1.0
00013  * @filesource
00014  */
00015 
00016 // ------------------------------------------------------------------------
00017 
00018 /**
00019  * CodeIgniter Form Helpers
00020  *
00021  * @package             CodeIgniter
00022  * @subpackage  Helpers
00023  * @category    Helpers
00024  * @author              ExpressionEngine Dev Team
00025  * @link                http://codeigniter.com/user_guide/helpers/form_helper.html
00026  */
00027 
00028 // ------------------------------------------------------------------------
00029 
00030 /**
00031  * Form Declaration
00032  *
00033  * Creates the opening portion of the form.
00034  *
00035  * @access      public
00036  * @param       string  the URI segments of the form destination
00037  * @param       array   a key/value pair of attributes
00038  * @param       array   a key/value pair hidden data
00039  * @return      string
00040  */     
00041 if ( ! function_exists('form_open'))
00042 {
00043         function form_open($action = '', $attributes = '', $hidden = array())
00044         {
00045                 $CI =& get_instance();
00046 
00047                 if ($attributes == '')
00048                 {
00049                         $attributes = 'method="post"';
00050                 }
00051 
00052                 $action = ( strpos($action, '://') === FALSE) ? $CI->config->site_url($action) : $action;
00053 
00054                 $form = '<form action="'.$action.'"';
00055         
00056                 $form .= _attributes_to_string($attributes, TRUE);
00057         
00058                 $form .= '>';
00059 
00060                 if (is_array($hidden) AND count($hidden) > 0)
00061                 {
00062                         $form .= form_hidden($hidden);
00063                 }
00064 
00065                 return $form;
00066         }
00067 }
00068 
00069 // ------------------------------------------------------------------------
00070 
00071 /**
00072  * Form Declaration - Multipart type
00073  *
00074  * Creates the opening portion of the form, but with "multipart/form-data".
00075  *
00076  * @access      public
00077  * @param       string  the URI segments of the form destination
00078  * @param       array   a key/value pair of attributes
00079  * @param       array   a key/value pair hidden data
00080  * @return      string
00081  */
00082 if ( ! function_exists('form_open_multipart'))
00083 {
00084         function form_open_multipart($action, $attributes = array(), $hidden = array())
00085         {
00086                 $attributes['enctype'] = 'multipart/form-data';
00087                 return form_open($action, $attributes, $hidden);
00088         }
00089 }
00090 
00091 // ------------------------------------------------------------------------
00092 
00093 /**
00094  * Hidden Input Field
00095  *
00096  * Generates hidden fields.  You can pass a simple key/value string or an associative
00097  * array with multiple values.
00098  *
00099  * @access      public
00100  * @param       mixed
00101  * @param       string
00102  * @return      string
00103  */
00104 if ( ! function_exists('form_hidden'))
00105 {
00106         function form_hidden($name, $value = '')
00107         {
00108                 if ( ! is_array($name))
00109                 {
00110                         return '<input type="hidden" name="'.$name.'" value="'.form_prep($value).'" />';
00111                 }
00112 
00113                 $form = '';
00114 
00115                 foreach ($name as $name => $value)
00116                 {
00117                         $form .= "\n";
00118                         $form .= '<input type="hidden" name="'.$name.'" value="'.form_prep($value).'" />';
00119                 }
00120 
00121                 return $form;
00122         }
00123 }
00124 
00125 // ------------------------------------------------------------------------
00126 
00127 /**
00128  * Text Input Field
00129  *
00130  * @access      public
00131  * @param       mixed
00132  * @param       string
00133  * @param       string
00134  * @return      string
00135  */
00136 if ( ! function_exists('form_input'))
00137 {
00138         function form_input($data = '', $value = '', $extra = '')
00139         {
00140                 $defaults = array('type' => 'text', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => $value);
00141 
00142                 return "<input "._parse_form_attributes($data, $defaults).$extra." />";
00143         }
00144 }
00145 
00146 // ------------------------------------------------------------------------
00147 
00148 /**
00149  * Password Field
00150  *
00151  * Identical to the input function but adds the "password" type
00152  *
00153  * @access      public
00154  * @param       mixed
00155  * @param       string
00156  * @param       string
00157  * @return      string
00158  */
00159 if ( ! function_exists('form_password'))
00160 {
00161         function form_password($data = '', $value = '', $extra = '')
00162         {
00163                 if ( ! is_array($data))
00164                 {
00165                         $data = array('name' => $data);
00166                 }
00167 
00168                 $data['type'] = 'password';
00169                 return form_input($data, $value, $extra);
00170         }
00171 }
00172 
00173 // ------------------------------------------------------------------------
00174 
00175 /**
00176  * Upload Field
00177  *
00178  * Identical to the input function but adds the "file" type
00179  *
00180  * @access      public
00181  * @param       mixed
00182  * @param       string
00183  * @param       string
00184  * @return      string
00185  */
00186 if ( ! function_exists('form_upload'))
00187 {
00188         function form_upload($data = '', $value = '', $extra = '')
00189         {
00190                 if ( ! is_array($data))
00191                 {
00192                         $data = array('name' => $data);
00193                 }
00194 
00195                 $data['type'] = 'file';
00196                 return form_input($data, $value, $extra);
00197         }
00198 }
00199 
00200 // ------------------------------------------------------------------------
00201 
00202 /**
00203  * Textarea field
00204  *
00205  * @access      public
00206  * @param       mixed
00207  * @param       string
00208  * @param       string
00209  * @return      string
00210  */
00211 if ( ! function_exists('form_textarea'))
00212 {
00213         function form_textarea($data = '', $value = '', $extra = '')
00214         {
00215                 $defaults = array('name' => (( ! is_array($data)) ? $data : ''), 'cols' => '90', 'rows' => '12');
00216 
00217                 if ( ! is_array($data) OR ! isset($data['value']))
00218                 {
00219                         $val = $value;
00220                 }
00221                 else
00222                 {
00223                         $val = $data['value']; 
00224                         unset($data['value']); // textareas don't use the value attribute
00225                 }
00226 
00227                 return "<textarea "._parse_form_attributes($data, $defaults).$extra.">".$val."</textarea>";
00228         }
00229 }
00230 
00231 // ------------------------------------------------------------------------
00232 
00233 /**
00234  * Drop-down Menu
00235  *
00236  * @access      public
00237  * @param       string
00238  * @param       array
00239  * @param       string
00240  * @param       string
00241  * @return      string
00242  */
00243 if ( ! function_exists('form_dropdown'))
00244 {
00245         function form_dropdown($name = '', $options = array(), $selected = array(), $extra = '')
00246         {
00247                 if ( ! is_array($selected))
00248                 {
00249                         $selected = array($selected);
00250                 }
00251 
00252                 // If no selected state was submitted we will attempt to set it automatically
00253                 if (count($selected) === 0)
00254                 {
00255                         // If the form name appears in the $_POST array we have a winner!
00256                         if (isset($_POST[$name]))
00257                         {
00258                                 $selected = array($_POST[$name]);
00259                         }
00260                 }
00261 
00262                 if ($extra != '') $extra = ' '.$extra;
00263 
00264                 $multiple = (count($selected) > 1 && strpos($extra, 'multiple') === FALSE) ? ' multiple="multiple"' : '';
00265 
00266                 $form = '<select name="'.$name.'"'.$extra.$multiple.">\n";
00267         
00268                 foreach ($options as $key => $val)
00269                 {
00270                         $key = (string) $key;
00271                         $val = (string) $val;
00272 
00273                         $sel = (in_array($key, $selected))?' selected="selected"':'';
00274 
00275                         $form .= '<option value="'.$key.'"'.$sel.'>'.$val."</option>\n";
00276                 }
00277 
00278                 $form .= '</select>';
00279 
00280                 return $form;
00281         }
00282 }
00283 
00284 // ------------------------------------------------------------------------
00285 
00286 /**
00287  * Checkbox Field
00288  *
00289  * @access      public
00290  * @param       mixed
00291  * @param       string
00292  * @param       bool
00293  * @param       string
00294  * @return      string
00295  */
00296 if ( ! function_exists('form_checkbox'))
00297 {
00298         function form_checkbox($data = '', $value = '', $checked = FALSE, $extra = '')
00299         {
00300                 $defaults = array('type' => 'checkbox', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => $value);
00301 
00302                 if (is_array($data) AND array_key_exists('checked', $data))
00303                 {
00304                         $checked = $data['checked'];
00305 
00306                         if ($checked == FALSE)
00307                         {
00308                                 unset($data['checked']);
00309                         }
00310                         else
00311                         {
00312                                 $data['checked'] = 'checked';
00313                         }
00314                 }
00315 
00316                 if ($checked == TRUE)
00317                 {
00318                         $defaults['checked'] = 'checked';
00319                 }
00320                 else
00321                 {
00322                         unset($defaults['checked']);
00323                 }
00324 
00325                 return "<input "._parse_form_attributes($data, $defaults).$extra." />";
00326         }
00327 }
00328 
00329 // ------------------------------------------------------------------------
00330 
00331 /**
00332  * Radio Button
00333  *
00334  * @access      public
00335  * @param       mixed
00336  * @param       string
00337  * @param       bool
00338  * @param       string
00339  * @return      string
00340  */
00341 if ( ! function_exists('form_radio'))
00342 {
00343         function form_radio($data = '', $value = '', $checked = FALSE, $extra = '')
00344         {
00345                 if ( ! is_array($data))
00346                 {       
00347                         $data = array('name' => $data);
00348                 }
00349 
00350                 $data['type'] = 'radio';
00351                 return form_checkbox($data, $value, $checked, $extra);
00352         }
00353 }
00354 
00355 // ------------------------------------------------------------------------
00356 
00357 /**
00358  * Submit Button
00359  *
00360  * @access      public
00361  * @param       mixed
00362  * @param       string
00363  * @param       string
00364  * @return      string
00365  */
00366 if ( ! function_exists('form_submit'))
00367 {       
00368         function form_submit($data = '', $value = '', $extra = '')
00369         {
00370                 $defaults = array('type' => 'submit', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => $value);
00371 
00372                 return "<input "._parse_form_attributes($data, $defaults).$extra." />";
00373         }
00374 }
00375 
00376 // ------------------------------------------------------------------------
00377 
00378 /**
00379  * Reset Button
00380  *
00381  * @access      public
00382  * @param       mixed
00383  * @param       string
00384  * @param       string
00385  * @return      string
00386  */
00387 if ( ! function_exists('form_reset'))
00388 {
00389         function form_reset($data = '', $value = '', $extra = '')
00390         {
00391                 $defaults = array('type' => 'reset', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => $value);
00392 
00393                 return "<input "._parse_form_attributes($data, $defaults).$extra." />";
00394         }
00395 }
00396 
00397 // ------------------------------------------------------------------------
00398 
00399 /**
00400  * Form Button
00401  *
00402  * @access      public
00403  * @param       mixed
00404  * @param       string
00405  * @param       string
00406  * @return      string
00407  */
00408 if ( ! function_exists('form_button'))
00409 {
00410         function form_button($data = '', $content = '', $extra = '')
00411         {
00412                 $defaults = array('name' => (( ! is_array($data)) ? $data : ''), 'type' => 'submit');
00413 
00414                 if ( is_array($data) AND isset($data['content']))
00415                 {
00416                         $content = $data['content'];
00417                         unset($data['content']); // content is not an attribute
00418                 }
00419 
00420                 return "<button "._parse_form_attributes($data, $defaults).$extra.">".$content."</button>";
00421         }
00422 }
00423 
00424 // ------------------------------------------------------------------------
00425 
00426 /**
00427  * Form Label Tag
00428  *
00429  * @access      public
00430  * @param       string  The text to appear onscreen
00431  * @param       string  The id the label applies to
00432  * @param       string  Additional attributes
00433  * @return      string
00434  */
00435 if ( ! function_exists('form_label'))
00436 {
00437         function form_label($label_text = '', $id = '', $attributes = array())
00438         {
00439 
00440                 $label = '<label';
00441 
00442                 if ($id != '')
00443                 {
00444                          $label .= " for=\"$id\"";
00445                 }
00446 
00447                 if (is_array($attributes) AND count($attributes) > 0)
00448                 {
00449                         foreach ($attributes as $key => $val)
00450                         {
00451                                 $label .= ' '.$key.'="'.$val.'"';
00452                         }
00453                 }
00454 
00455                 $label .= ">$label_text</label>";
00456 
00457                 return $label;
00458         }
00459 }
00460 
00461 // ------------------------------------------------------------------------
00462 /**
00463  * Fieldset Tag
00464  *
00465  * Used to produce <fieldset><legend>text</legend>.  To close fieldset
00466  * use form_fieldset_close()
00467  *
00468  * @access      public
00469  * @param       string  The legend text
00470  * @param       string  Additional attributes
00471  * @return      string
00472  */
00473 if ( ! function_exists('form_fieldset'))
00474 {
00475         function form_fieldset($legend_text = '', $attributes = array())
00476         {
00477                 $fieldset = "<fieldset";
00478 
00479                 $fieldset .= _attributes_to_string($attributes, FALSE);
00480 
00481                 $fieldset .= ">\n";
00482 
00483                 if ($legend_text != '')
00484                 {
00485                         $fieldset .= "<legend>$legend_text</legend>\n";
00486                 }
00487 
00488                 return $fieldset;
00489         }
00490 }
00491 
00492 // ------------------------------------------------------------------------
00493 
00494 /**
00495  * Fieldset Close Tag
00496  *
00497  * @access      public
00498  * @param       string
00499  * @return      string
00500  */
00501 if ( ! function_exists('form_fieldset_close'))
00502 {
00503         function form_fieldset_close($extra = '')
00504         {
00505                 return "</fieldset>".$extra;
00506         }
00507 }
00508 
00509 // ------------------------------------------------------------------------
00510 
00511 /**
00512  * Form Close Tag
00513  *
00514  * @access      public
00515  * @param       string
00516  * @return      string
00517  */
00518 if ( ! function_exists('form_close'))
00519 {
00520         function form_close($extra = '')
00521         {
00522                 return "</form>".$extra;
00523         }
00524 }
00525 
00526 // ------------------------------------------------------------------------
00527 
00528 /**
00529  * Form Prep
00530  *
00531  * Formats text so that it can be safely placed in a form field in the event it has HTML tags.
00532  *
00533  * @access      public
00534  * @param       string
00535  * @return      string
00536  */
00537 if ( ! function_exists('form_prep'))
00538 {
00539         function form_prep($str = '')
00540         {
00541                 // if the field name is an array we do this recursively
00542                 if (is_array($str))
00543                 {
00544                         foreach ($str as $key => $val)
00545                         {
00546                                 $str[$key] = form_prep($val);
00547                         }
00548 
00549                         return $str;
00550                 }
00551 
00552                 if ($str === '')
00553                 {
00554                         return '';
00555                 }
00556 
00557                 $temp = '__TEMP_AMPERSANDS__';
00558 
00559                 // Replace entities to temporary markers so that 
00560                 // htmlspecialchars won't mess them up
00561                 $str = preg_replace("/&#(\d+);/", "$temp\\1;", $str);
00562                 $str = preg_replace("/&(\w+);/",  "$temp\\1;", $str);
00563 
00564                 $str = htmlspecialchars($str);
00565 
00566                 // In case htmlspecialchars misses these.
00567                 $str = str_replace(array("'", '"'), array("&#39;", "&quot;"), $str);
00568 
00569                 // Decode the temp markers back to entities
00570                 $str = preg_replace("/$temp(\d+);/","&#\\1;",$str);
00571                 $str = preg_replace("/$temp(\w+);/","&\\1;",$str);
00572 
00573                 return $str;
00574         }
00575 }
00576 
00577 // ------------------------------------------------------------------------
00578 
00579 /**
00580  * Form Value
00581  *
00582  * Grabs a value from the POST array for the specified field so you can
00583  * re-populate an input field or textarea.  If Form Validation
00584  * is active it retrieves the info from the validation class
00585  *
00586  * @access      public
00587  * @param       string
00588  * @return      mixed
00589  */
00590 if ( ! function_exists('set_value'))
00591 {
00592         function set_value($field = '', $default = '')
00593         {
00594                 if (FALSE === ($OBJ =& _get_validation_object()))
00595                 {
00596                         if ( ! isset($_POST[$field]))
00597                         {
00598                                 return $default;
00599                         }
00600 
00601                         return form_prep($_POST[$field]);
00602                 }
00603 
00604                 return form_prep($OBJ->set_value($field, $default));
00605         }
00606 }
00607 
00608 // ------------------------------------------------------------------------
00609 
00610 /**
00611  * Set Select
00612  *
00613  * Let's you set the selected value of a <select> menu via data in the POST array.
00614  * If Form Validation is active it retrieves the info from the validation class
00615  *
00616  * @access      public
00617  * @param       string
00618  * @param       string
00619  * @param       bool
00620  * @return      string
00621  */
00622 if ( ! function_exists('set_select'))
00623 {
00624         function set_select($field = '', $value = '', $default = FALSE)
00625         {
00626                 $OBJ =& _get_validation_object();
00627 
00628                 if ($OBJ === FALSE)
00629                 {
00630                         if ( ! isset($_POST[$field]))
00631                         {
00632                                 if (count($_POST) === 0)
00633                                 {
00634                                         return ' selected="selected"';
00635                                 }
00636                                 return '';
00637                         }
00638 
00639                         $field = $_POST[$field];
00640 
00641                         if (is_array($field))
00642                         {
00643                                 if ( ! in_array($value, $field))
00644                                 {
00645                                         return '';
00646                                 }
00647                         }
00648                         else
00649                         {
00650                                 if (($field == '' OR $value == '') OR ($field != $value))
00651                                 {
00652                                         return '';
00653                                 }
00654                         }
00655 
00656                         return ' selected="selected"';
00657                 }
00658 
00659                 return $OBJ->set_select($field, $value, $default);
00660         }
00661 }
00662 
00663 // ------------------------------------------------------------------------
00664 
00665 /**
00666  * Set Checkbox
00667  *
00668  * Let's you set the selected value of a checkbox via the value in the POST array.
00669  * If Form Validation is active it retrieves the info from the validation class
00670  *
00671  * @access      public
00672  * @param       string
00673  * @param       string
00674  * @param       bool
00675  * @return      string
00676  */
00677 if ( ! function_exists('set_checkbox'))
00678 {
00679         function set_checkbox($field = '', $value = '', $default = FALSE)
00680         {
00681                 $OBJ =& _get_validation_object();
00682 
00683                 if ($OBJ === FALSE)
00684                 { 
00685                         if ( ! isset($_POST[$field]))
00686                         {
00687                                 if (count($_POST) === 0)
00688                                 {
00689                                         return ' checked="checked"';
00690                                 }
00691                                 return '';
00692                         }
00693 
00694                         $field = $_POST[$field];
00695                         
00696                         if (is_array($field))
00697                         {
00698                                 if ( ! in_array($value, $field))
00699                                 {
00700                                         return '';
00701                                 }
00702                         }
00703                         else
00704                         {
00705                                 if (($field == '' OR $value == '') OR ($field != $value))
00706                                 {
00707                                         return '';
00708                                 }
00709                         }
00710 
00711                         return ' checked="checked"';
00712                 }
00713 
00714                 return $OBJ->set_checkbox($field, $value, $default);
00715         }
00716 }
00717 
00718 // ------------------------------------------------------------------------
00719 
00720 /**
00721  * Set Radio
00722  *
00723  * Let's you set the selected value of a radio field via info in the POST array.
00724  * If Form Validation is active it retrieves the info from the validation class
00725  *
00726  * @access      public
00727  * @param       string
00728  * @param       string
00729  * @param       bool
00730  * @return      string
00731  */
00732 if ( ! function_exists('set_radio'))
00733 {
00734         function set_radio($field = '', $value = '', $default = FALSE)
00735         {
00736                 $OBJ =& _get_validation_object();
00737 
00738                 if ($OBJ === FALSE)
00739                 {
00740                         if ( ! isset($_POST[$field]))
00741                         {
00742                                 if (count($_POST) === 0)
00743                                 {
00744                                         return ' checked="checked"';
00745                                 }
00746                                 return '';
00747                         }
00748 
00749                         $field = $_POST[$field];
00750                         
00751                         if (is_array($field))
00752                         {
00753                                 if ( ! in_array($value, $field))
00754                                 {
00755                                         return '';
00756                                 }
00757                         }
00758                         else
00759                         {
00760                                 if (($field == '' OR $value == '') OR ($field != $value))
00761                                 {
00762                                         return '';
00763                                 }
00764                         }
00765 
00766                         return ' checked="checked"';
00767                 }
00768 
00769                 return $OBJ->set_radio($field, $value, $default);
00770         }
00771 }
00772 
00773 // ------------------------------------------------------------------------
00774 
00775 /**
00776  * Form Error
00777  *
00778  * Returns the error for a specific form field.  This is a helper for the
00779  * form validation class.
00780  *
00781  * @access      public
00782  * @param       string
00783  * @param       string
00784  * @param       string
00785  * @return      string
00786  */
00787 if ( ! function_exists('form_error'))
00788 {
00789         function form_error($field = '', $prefix = '', $suffix = '')
00790         {
00791                 if (FALSE === ($OBJ =& _get_validation_object()))
00792                 {
00793                         return '';
00794                 }
00795 
00796                 return $OBJ->error($field, $prefix, $suffix);
00797         }
00798 }
00799 
00800 // ------------------------------------------------------------------------
00801 
00802 /**
00803  * Validation Error String
00804  *
00805  * Returns all the errors associated with a form submission.  This is a helper
00806  * function for the form validation class.
00807  *
00808  * @access      public
00809  * @param       string
00810  * @param       string
00811  * @return      string
00812  */
00813 if ( ! function_exists('validation_errors'))
00814 {
00815         function validation_errors($prefix = '', $suffix = '')
00816         {
00817                 if (FALSE === ($OBJ =& _get_validation_object()))
00818                 {
00819                         return '';
00820                 }
00821 
00822                 return $OBJ->error_string($prefix, $suffix);
00823         }
00824 }
00825 
00826 // ------------------------------------------------------------------------
00827 
00828 /**
00829  * Parse the form attributes
00830  *
00831  * Helper function used by some of the form helpers
00832  *
00833  * @access      private
00834  * @param       array
00835  * @param       array
00836  * @return      string
00837  */
00838 if ( ! function_exists('_parse_form_attributes'))
00839 {
00840         function _parse_form_attributes($attributes, $default)
00841         {
00842                 if (is_array($attributes))
00843                 {
00844                         foreach ($default as $key => $val)
00845                         {
00846                                 if (isset($attributes[$key]))
00847                                 {
00848                                         $default[$key] = $attributes[$key];
00849                                         unset($attributes[$key]);
00850                                 }
00851                         }
00852 
00853                         if (count($attributes) > 0)
00854                         {
00855                                 $default = array_merge($default, $attributes);
00856                         }
00857                 }
00858 
00859                 $att = '';
00860 
00861                 foreach ($default as $key => $val)
00862                 {
00863                         if ($key == 'value')
00864                         {
00865                                 $val = form_prep($val);
00866                         }
00867 
00868                         $att .= $key . '="' . $val . '" ';
00869                 }
00870 
00871                 return $att;
00872         }
00873 }
00874 
00875 // ------------------------------------------------------------------------
00876 
00877 /**
00878  * Attributes To String
00879  *
00880  * Helper function used by some of the form helpers
00881  *
00882  * @access      private
00883  * @param       mixed
00884  * @param       bool
00885  * @return      string
00886  */
00887 if ( ! function_exists('_attributes_to_string'))
00888 {
00889         function _attributes_to_string($attributes, $formtag = FALSE)
00890         {
00891                 if (is_string($attributes) AND strlen($attributes) > 0)
00892                 {
00893                         if ($formtag == TRUE AND strpos($attributes, 'method=') === FALSE)
00894                         {
00895                                 $attributes .= ' method="post"';
00896                         }
00897 
00898                 return ' '.$attributes;
00899                 }
00900         
00901                 if (is_object($attributes) AND count($attributes) > 0)
00902                 {
00903                         $attributes = (array)$attributes;
00904                 }
00905 
00906                 if (is_array($attributes) AND count($attributes) > 0)
00907                 {
00908                 $atts = '';
00909 
00910                 if ( ! isset($attributes['method']) AND $formtag === TRUE)
00911                 {
00912                         $atts .= ' method="post"';
00913                 }
00914 
00915                 foreach ($attributes as $key => $val)
00916                 {
00917                         $atts .= ' '.$key.'="'.$val.'"';
00918                 }
00919 
00920                 return $atts;
00921                 }
00922         }
00923 }
00924 
00925 // ------------------------------------------------------------------------
00926 
00927 /**
00928  * Validation Object
00929  *
00930  * Determines what the form validation class was instantiated as, fetches
00931  * the object and returns it.
00932  *
00933  * @access      private
00934  * @return      mixed
00935  */
00936 if ( ! function_exists('_get_validation_object'))
00937 {
00938         function &_get_validation_object()
00939         {
00940                 $CI =& get_instance();
00941 
00942                 // We set this as a variable since we're returning by reference
00943                 $return = FALSE;
00944 
00945                 if ( ! isset($CI->load->_ci_classes) OR  ! isset($CI->load->_ci_classes['form_validation']))
00946                 {
00947                         return $return;
00948                 }
00949 
00950                 $object = $CI->load->_ci_classes['form_validation'];
00951 
00952                 if ( ! isset($CI->$object) OR ! is_object($CI->$object))
00953                 {
00954                         return $return;
00955                 }
00956 
00957                 return $CI->$object;
00958         }
00959 }
00960 
00961 
00962 /* End of file form_helper.php */
00963 /* Location: ./system/helpers/form_helper.php */