linea21-externals
[ class tree: linea21-externals ] [ index: linea21-externals ] [ all elements ]

Source for file class.form.php

Documentation is available at class.form.php

  1. <?php
  2.  
  3. /************************************************************************************************
  4.  * FORM CLASS                                                                                   ***
  5.  *                                                                                              * *
  6.  *    Usage:   This class is designed to ease the creation of forms in a php applcation. This   * *
  7.  *             class was inspired by a similar class by MT Jordan <mtjo@netzero.net> available  * *
  8.  *             from http://mtjo.f2o.org/forms/.                                                 * *
  9.  *             You must include the class in your html file, this is easiest when you have the  * *
  10.  *             class in your php include path, but may be done from anywhere.                   * *
  11.  *                                                                                              * *
  12.  *    Example: See included example.form.php                                                    * *
  13.  *                                                                                              * *
  14.  *    License: This program is free software; you can redistribute it and/or modify it under    * *
  15.  *             the terms of the GNU General Public License as published by the Free Software    * *
  16.  *             Foundation; either version 2 of the License, or (at your option) any later       * *
  17.  *             version.                                                                         * *
  18.  *             This program is distributed in the hope that it will be useful, but WITHOUT ANY  * *
  19.  *             WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A  * *
  20.  *             PARTICULAR PURPOSE.  See the GNU General Public License for more details.        * *
  21.  *             You should have received a copy of the GNU General Public License along with     * *
  22.  *             this program; if not, write to the Free Software Foundation, Inc., 51 Franklin   * *
  23.  *             Street, Fifth Floor, Boston, MA  02110-1301 USA                                  * *
  24.  *                                                                                              * *
  25.  *    File:    class.form.php    Version: 1.0.0 Beta        Date:    12/17/2005                 * *
  26.  *                                                                                              * *
  27.  *    Author:  Shannon Brooks <sbrooks@dogdoo.net>                                              * *
  28.  *                                                                                              * *
  29.  *    WWW:     http://www.dogdoo.net                                                            * *
  30.  *                                                                                              * *
  31.  *    Shannon Brooks (c) 2005                                                                   * *
  32.  *                                                                                              * *
  33.  ************************************************************************************************ *
  34.  ************************************************************************************************/
  35.  
  36. /**
  37.  * @package linea21.externals
  38.  * @subpackage form
  39.  * @author Shannon Brooks <sbrooks@dogdoo.net>
  40.  * @version $id SVN
  41.  * @access public
  42.  * @license http://opensource.org/licenses/gpl-3.0.html
  43.  */
  44.  
  45. class genForm {
  46.  
  47.   /* Public Variables *******************************************************************************
  48.  
  49.   Usage: $form->variable = <value>; -- must be set inside of script, not here */
  50.  
  51.   var $newline;           // true for new lines after elements, default is true
  52.   var $error;             // will contain any error information, useful for debugging
  53.   var $outputxhtml;       // when true, will attempt to output valid xhtml, default is true
  54.   var $singleline;        // when true, will output single line, default is false
  55.   var $brafterlabel;      // when true, will output <br /> after </label> except for radio and
  56.   // checkbox inputs, default is false
  57.  
  58.   /* Form Elements **********************************************************************************
  59.  
  60.   startForm() -- generates the opening form tag
  61.  
  62.   Usage: bool $form->startForm('action'[,'class or id','target','method']);
  63.  
  64.   Examples:
  65.   $form->startForm(basename($_SERVER['PHP_SELF']),"#testForm") || die("error: ".$form->error);
  66.   $form->startForm('somescript.php','someClass','_blank','get') || die("error: ".$form->error);
  67.  
  68.   Note: you shouldn't use target in xhtml */
  69.  
  70.   // start the <form> element
  71.   function startForm($action=false,$class='',$target='',$method='post'{
  72.  
  73.     // verify action is set
  74.     if(!$action{
  75.       $this->error = "action is required for startForm";
  76.       return false;
  77.     }
  78.     else $action ' action="' $action '"'}
  79.  
  80.     // select form action: post or get
  81.     if (!ereg("^(get|post)$",strtolower($method))) {
  82.       $this->error = "method should be post or get";
  83.       return false;
  84.     }
  85.     else $method ' method="' $method '"'}
  86.  
  87.     // target value for form
  88.     if(trim($target != '')) $target ' target="' $target '"'}
  89.  
  90.     // determine class or ID
  91.     $class $this->ClassID($class);
  92.  
  93.     // generate form tag and attributes
  94.     $this->output .= '<form' $class $action $method $target ' enctype="multipart/form-data">' ((!$this->singleline)?("\n"):('')) (($this->outputxhtml)?('<div>' ((!$this->singleline)?("\n"):(''))):(''));
  95.     $this->formopen = true;
  96.  
  97.     return true;
  98.   }
  99.  
  100.   // close the </form>
  101.   function closeForm({
  102.     $this->output .=  (($this->outputxhtml)?('</div>' ((!$this->singleline)?("\n"):(''))):('')) '</form>' ((!$this->singleline)?("\n"):(''));
  103.     $this->formopen = false;
  104.     return true;
  105.   }
  106.  
  107.   /* Hidded Type Inputs *****************************************************************************
  108.  
  109.   hiddenInput() -- generates a hidden input
  110.  
  111.   Usage: bool $form->hiddenInput('name','value'); */
  112.  
  113.   function hiddenInput($name=false,$value=false{
  114.  
  115.     // verify name and value are set
  116.     if(!$name || !$value{
  117.       $this->error = "name and value are required for hiddenInput";
  118.       return false;
  119.     }
  120.  
  121.     // generate tag
  122.     $this->output .= '<input type="hidden" name="' $name '" value="' htmlspecialchars($value'" />' ((!$this->singleline)?("\n"):(''));
  123.  
  124.     return true;
  125.   }
  126.  
  127.   /* Text Type Inputs *******************************************************************************
  128.  
  129.   textInput() -- generates a text input
  130.  
  131.   Usage: bool $form->textInput('name'[,'label','class', 'label class or #id','tooltip','max size (numeric)','size (numeric)','readonly (true/false)','value','password (true/false)']); */
  132.  
  133.   function textInput($name=false,$label=false,$class=false,$lclass=false,$title=false,$maxsize=false,$size=false,$readonly=false,$value=false,$password=false{
  134.  
  135.     // verify name is set
  136.     if(!$name{
  137.       $this->error = "name is required for textInput";
  138.       return false;
  139.     }
  140.     else $nametag ' name="' $name '" id="' $name '"'}
  141.  
  142.     // determine if this is a password input
  143.     if($password$type ' type="password"'}
  144.     else $type ' type="text"'}
  145.  
  146.     // determine class for input
  147.     if(!$class$class ''}
  148.     else $class ' class="' $class '"'}
  149.  
  150.     // determine class or id for label class
  151.     $lclass $this->ClassID($lclass);
  152.  
  153.     // title for input (tooltip)
  154.     if(!$title$title ''}
  155.     else $title ' title="' $title '"'}
  156.  
  157.     // max size of input, numeric and limits input length
  158.     if(!$maxsize$maxsize ''}
  159.     else $maxsize ' maxlength="' $maxsize '"'}
  160.  
  161.     // size of input, numeric and not nessary with styles
  162.     if(!$size$size ''}
  163.     else $size ' size="' $size '"'}
  164.  
  165.     // determine if input is readonly
  166.     if(!$readonly$readonly ''}
  167.     else $readonly ' readonly="readonly"'}
  168.  
  169.     // determine if value is set
  170.     if(!$value$value ''}
  171.     else $value ' value="' htmlspecialchars($value'"'}
  172.  
  173.     // determine if label is set
  174.     if(!$label$label ''}
  175.     else $label '<label' $lclass ' for="' $name '">' $label '</label>' (($this->brafterlabel)?('<br />'):('')) ((!$this->singleline)?("\n"):(''))}
  176.  
  177.     // generate output
  178.     $this->output .= $label '<input' $type $nametag $class $title $size $maxsize $readonly $value ' />' (($this->newline)?("<br />"):('')) ((!$this->singleline)?("\n"):(''));
  179.  
  180.     return true;
  181.   }
  182.  
  183.   /* Checkbox and Radio Type Inputs ***************************************************************************
  184.  
  185.   checkboxInput() -- generates a checkbox
  186.  
  187.   Usage: bool $form->checkboxInputs('type (checkbox/radio)','name','value'[,'checked (true/false)','labelpos (before/after)','class','label class or #id','tooltip']);
  188.  
  189.   Note:  concantonates the name and value for the id so that clicking on the label changes the checked state of radio buttons */
  190.  
  191.   function checkboxInput($type='checkbox',$name=false,$value=false,$label=false,$checked=false,$labelpos='after',$class=false,$lclass=false,$title=false{
  192.  
  193.     // determine type is checkbox or radio
  194.     if($type != 'checkbox' && $type != 'checkbox[]' && $type != 'radio'{
  195.       $this->error = "checkboxInput type must be checkbox or radio";
  196.       return false;
  197.     }
  198.     else $typetag ' type="' $type '"'}
  199.  
  200.     // verify name and value are set
  201.     if(!$name || !$value{
  202.       $this->error = "name and value are required for checkboxInput";
  203.       return false;
  204.     }
  205.     else $nametag ' name="' $name '" id="'$name (($type == 'radio')?($value):('')) '" value="' $value '"'}
  206.  
  207.     // determine if check box is checked
  208.     if(!$checked$checked ''}
  209.     else $checked ' checked="checked"'}
  210.  
  211.     // determine class for input
  212.     if(!$class$class ''}
  213.     else $class ' class="' $class '"'}
  214.  
  215.     // determine class or id for label class
  216.     $lclass $this->ClassID($lclass);
  217.  
  218.     // title for input (tooltip)
  219.     if(!$title$title ''}
  220.     else $title ' title="' $title '"'}
  221.  
  222.     // determin if label is set
  223.     if(!$label$label ''}
  224.     else $label '<label' $lclass ' for="' $name  (($type == 'radio')?($value):('')) '">' $label '</label>'}
  225.  
  226.     // generate checkbox tag and attributes
  227.     $checkbox '<input' $typetag $nametag $checked $class $title ' />';
  228.  
  229.     // order label and checkbox according to labelpos
  230.     $this->output .= (($labelpos == 'after')?($checkbox ((!$this->singleline)?("\n"):('')) $label):($label ((!$this->singleline)?("\n"):('')) $checkbox)) (($this->newline)?("<br />"):('')) ((!$this->singleline)?("\n"):(''));
  231.  
  232.     return true;
  233.   }
  234.  
  235.  
  236.   /* File Upload Input ******************************************************************************
  237.  
  238.   fileInput() -- generates a file upload box
  239.  
  240.   Usage: bool $form->file('name'[,'label','class','label class or #id','tooltip','size (numeric)']);
  241.  
  242.   Example file input: echo $form->file('file','Upload File: '); */
  243.  
  244.   function fileInput($name=false,$label=false,$class='',$lclass='',$title='',$size=''{
  245.  
  246.     // verify that name is set
  247.     if(!$name{
  248.       $this->error = "fileInput requires that name be set";
  249.       return false;
  250.     }
  251.     else $nametag ' name="' $name '" id="' $name '"'}
  252.  
  253.     // determine class for input
  254.     if(!$class$class ''}
  255.     else $class ' class="' $class '"'}
  256.  
  257.     // determine class or id for label class
  258.     $lclass $this->ClassID($lclass);
  259.  
  260.     // determine if size is set and generate tag
  261.     if(!$size$size=''}
  262.     else $size ' size="' $size '"'}
  263.  
  264.     // title for input (tooltip)
  265.     if(!$title$title ''}
  266.     else $title ' title="' $title '"'}
  267.  
  268.     // determin if label is set
  269.     if(!$label$label ''}
  270.     else $label '<label' $lclass ' for="' $name '">' $label '</label>' (($this->brafterlabel)?('<br />'):('')) ((!$this->singleline)?("\n"):(''))}
  271.  
  272.     // generate file input tag and attributes
  273.     $this->output .= $label '<input type="file"' $nametag $class $title $size ' />' (($this->newline)?("<br />"):('')) ((!$this->singleline)?("\n"):(''));
  274.  
  275.     return true;
  276.   }
  277.  
  278.   /* Textarea Input *********************************************************************************
  279.  
  280.   textareaInput() -- generates a textarea
  281.  
  282.   Usage: bool $form->textareaInput('name'[,'label','class','label class or #id','tooltip','default value','cols (numeric)','rows (numeric)','wrap type (soft/hard/off)','readonly (true/false)']);
  283.  
  284.   Examples:
  285.   $form->textarea('comments','Please enter your comments:','thin_borders','bold',false,'Type comments here...',100,10);
  286.   $form->textarea('license','License Agreement',false,false,'Please read carefully...','Some license info...',false,false,false,true); */
  287.  
  288.   function textareaInput($name=false,$label=false,$class=false,$lclass=false,$title=false,$value='',$cols=false,$rows=false,$wrap=false,$readonly=false{
  289.  
  290.     // verify that name is set
  291.     if(!$name{
  292.       $this->error = "textareaInput requires that name be set";
  293.       return false;
  294.     }
  295.     else $nametag ' name="' $name '" id="' $name '"'}
  296.  
  297.     // determine class for input
  298.     if(!$class$class ''}
  299.     else $class ' class="' $class '"'}
  300.  
  301.     // determine class or id for label class
  302.     $lclass $this->ClassID($lclass);
  303.  
  304.     // title for input (tooltip)
  305.     if(!$title$title ''}
  306.     else $title ' title="' $title '"'}
  307.  
  308.     // determine number of columns
  309.     if(!$cols || !is_numeric($cols)) $cols (($this->outputxhtml)?(' cols=""'):(''))}
  310.     else $cols ' cols="' $cols '"'}
  311.  
  312.     // determine number of rows
  313.     if(!$rows || !is_numeric($rows)) $rows (($this->outputxhtml)?(' rows=""'):(''))}
  314.     else $rows ' rows="' $rows '"'}
  315.  
  316.     // determine if textbox should be read only
  317.     if(!$readonly$readonly ''}
  318.     else $readonly ' readonly="readonly"'}
  319.  
  320.     // determine wrap type
  321.     if(!$wrap$wrap ''}
  322.     else $wrap ' wrap="' $wrap '"'}
  323.  
  324.     // determin if label is set
  325.     if(!$label$label ''}
  326.     else $label '<label' $lclass ' for="' $name '">' $label '</label>' (($this->brafterlabel)?('<br />'):('')) ((!$this->singleline)?("\n"):(''))}
  327.  
  328.     // generate textarea tag and attributes
  329.     $this->output .= $label '<textarea' $nametag $cols $rows $readonly $wrap $class $title '>' $value '</textarea>' (($this->newline)?("<br />"):('')) ((!$this->singleline)?("\n"):(''));
  330.  
  331.     return true;
  332.   }
  333.  
  334.   /* Select and Option Inputs ***********************************************************************
  335.  
  336.   startSelect(),addOption() and closeSelect() -- create a drop down list
  337.  
  338.   Usage:
  339.   bool startSelect('name'[,'label','class','label class or #id','tooltip'])
  340.   bool selectOption('value'[,'option text','selected (true/false)'])
  341.   bool closeSelect()                                                                          */
  342.  
  343.   // start the <select> input
  344.   function startSelect($name=false,$label=false,$class=false,$lclass=false,$title=false{
  345.  
  346.     // verify that name is set
  347.     if(!$name{
  348.       $this->error = "startSelect requires that name be set";
  349.       return false;
  350.     }
  351.     else $nametag ' name="' $name '" id="' $name '"'}
  352.  
  353.     // determine class for input
  354.     if(!$class$class ''}
  355.     else $class ' class="' $class '"'}
  356.  
  357.     // determine class or id for label class
  358.     $lclass $this->ClassID($lclass);
  359.  
  360.     // title for input (tooltip)
  361.     if(!$title$title ''}
  362.     else $title ' title="' $title '"'}
  363.  
  364.     // determin if label is set
  365.     if(!$label$label ''}
  366.     else $label '<label' $lclass ' for="' $name '">' $label '</label>' (($this->brafterlabel)?('<br />'):(''))}
  367.  
  368.     // generate select tag
  369.     $this->output .= $label '<select' $nametag $class $title '>' ((!$this->singleline)?("\n"):(''));
  370.  
  371.     // tell script that select tag is open
  372.     $this->selectopen = true;
  373.  
  374.     return $true;
  375.   }
  376.  
  377.   // insert <option> tags for <select>
  378.   function addOption($value=false,$option=false,$selected=false{
  379.  
  380.     // verify that there is a select tag open
  381.     if(!$this->selectopen{
  382.       $this->error = "there must be an open select tag";
  383.       return false;
  384.     }
  385.  
  386.     // verify that value is set
  387.     if(!$value{
  388.       $this->error = "selectOption requires that value be set";
  389.       return false;
  390.     }
  391.  
  392.     // determine if option is selected
  393.     if(!$selected$selected ''}
  394.     else $selected ' selected="selected"'}
  395.  
  396.     // determine if option text exisits
  397.     if(!$option$option $value}
  398.  
  399.     // generate option tag and attributes
  400.     $this->output .= '<option value="' $value '"' $selected '>' $option '</option>' ((!$this->singleline)?("\n"):(''));
  401.  
  402.     return true;
  403.   }
  404.  
  405.   // close the </select> input
  406.   function closeSelect({
  407.  
  408.     // verify that there is a select tag open
  409.     if(!$this->selectopen{
  410.       $this->error = "there must be an open select tag";
  411.       return false;
  412.     }
  413.  
  414.     // generate ouput
  415.     $this->output .= '</select>' (($this->newline)?("<br />"):('')) ((!$this->singleline)?("\n"):(''));
  416.  
  417.     // tell script that select tag is closed
  418.     $this->selectopen = false;
  419.  
  420.     return true;
  421.   }
  422.  
  423.   /* Fieldset/Legend Tags ***************************************************************************
  424.  
  425.   startFieldset() and closeFieldset -- generate a fieldset
  426.  
  427.   Usage:
  428.   bool $form->startFieldset(['legend','class or #id'])
  429.   bool $form->closeFieldset()
  430.  
  431.   Note: Leave legend title empty for no heading */
  432.  
  433.   // start the <fieldset>
  434.   function startFieldset($legend=false,$class=false{
  435.  
  436.     // determine fieldset class or ID
  437.     $class $this->ClassID($class);
  438.  
  439.     // generate <legend></legend> tags
  440.     if(!$legend$legend ''}
  441.     else $legend '<legend>' $legend '</legend>' ((!$this->singleline)?("\n"):(''))}
  442.  
  443.     // start fieldset tag
  444.     $this->output .= '<fieldset' $class '>' ((!$this->singleline)?("\n"):('')) $legend;
  445.  
  446.     // tell script that fieldset is open
  447.     $this->fieldsetopen = true;
  448.  
  449.     return true;
  450.   }
  451.  
  452.   // close the </fieldset>
  453.   function closeFieldset({
  454.  
  455.     // verify that fieldset is open
  456.     if(!$this->fieldsetopen{
  457.       $this->error = "there must be an open fieldset tag";
  458.       return false;
  459.     }
  460.  
  461.     // output </fieldset> tag
  462.     $this->output .= '</fieldset>' ((!$this->singleline)?("\n"):(''));
  463.  
  464.     // tell script that fieldset is closed
  465.     $this->fieldsetopen = false;
  466.  
  467.     return true;
  468.   }
  469.  
  470.   /* Buttons ****************************************************************************************
  471.  
  472.   genericButton(), submitButton() and resetButton() -- used to generate buttons
  473.  
  474.   Usage:
  475.   bool $form->genericButton(['javascript for onclick event','button text','class or #id','tooltip','image for image buttons','image border width (numeric)'])
  476.   bool $form->submitButton(['javascript for onclick event','button text','default button (true/false)','class or #id','tooltip','image for image buttons','image border width (numeric)'])
  477.   bool $form->resetButton(['javascript for onclick event','button text','default button (true/false)','class or #id','tooltip'])
  478.  
  479.   Examples:
  480.   $form->submitButton('return checkForm(thisForm)','Send Form')
  481.   $form->resetButton()
  482.  
  483.   Note: It would be better to assign the button an id and then dynamically assign javascript functions to the button.
  484.   Note: If you choose to use image buttons, the border is not specified by default. If you don't set the style to have no border in css you must set the border width. */
  485.  
  486.   // standard general purpose button
  487.   function genericButton($script=false,$value='Click Here',$class=false,$title=false,$img=false,$imgborder=false{
  488.  
  489.     // determine whether button is image or standard button
  490.     if(!$img$type ' type="button"'}
  491.     else $type ' type="image" src="' $img ((is_numeric($imgborder))?('" border="' $imgborder '"'):(''))}
  492.  
  493.     // determine button class
  494.     $class $this->ClassID($class);
  495.  
  496.     // title for input (tooltip)
  497.     if(!$title$title ''}
  498.     else $title ' title="' $title '"'}
  499.  
  500.     //determine if script is set
  501.     if(!$script$script ''}
  502.     else $script ' onclick="' str_replace('"','\'',$script'"'}
  503.  
  504.     // generate button
  505.     $this->output .= '<form><input' $type ' value="' $value '"' $script $class $title ' /></form>' (($this->newline)?("<br />"):('')) ((!$this->singleline)?("\n"):(''));
  506.  
  507.     return true;
  508.   }
  509.  
  510.   // submit button
  511.   function submitButton($script=false,$value=false,$default=true,$class=false,$title=false,$img=false,$imgborder=false{
  512.  
  513.     // determine whether button is image or standard button
  514.     if(!$img$type ' type="submit"'}
  515.     else $type ' type="image" src="' $img ((is_numeric($imgborder))?('" border="' $imgborder '"'):(''))}
  516.  
  517.     // determine button class
  518.     $class $this->ClassID($class);
  519.  
  520.     // title for input (tooltip)
  521.     if(!$title$title ''}
  522.     else $title ' title="' $title '"'}
  523.  
  524.     // determine if button text is not default
  525.     if(!$value$value ''}
  526.     else $value ' value="' $value '"'}
  527.  
  528.     //determine if script is set
  529.     if(!$script$script ''}
  530.     else $script ' onclick="' str_replace('"','\'',$script'"'}
  531.  
  532.     // generate submit button
  533.     $this->output .= '<input' $type $value $class $title $script (($default && !$this->outputxhtml)?(' default="default"'):('')) ' />' ((!$this->singleline)?("\n"):(''));
  534.  
  535.     return true;
  536.   }
  537.  
  538.   // reset button
  539.   function resetButton($script=false,$value=false,$default=false,$class=false,$title=false{
  540.  
  541.     // determine button class
  542.     $class $this->ClassID($class);
  543.  
  544.     // title for input (tooltip)
  545.     if(!$title$title ''}
  546.     else $title ' title="' $title '"'}
  547.  
  548.     // determine if button text is not default
  549.     if(!$value$value ''}
  550.     else $value ' value="' $value '"'}
  551.  
  552.     //determine if script is set
  553.     if(!$script$script ''}
  554.     else $script ' onclick="' str_replace('"','\'',$script'"'}
  555.  
  556.     // generate reset button
  557.     $this->output .= '<input type="reset"' $value $class $title $script (($default && !$this->outputxhtml)?(' default="default"'):('')) ' />' ((!$this->singleline)?("\n"):(''));
  558.  
  559.     return true;
  560.   }
  561.  
  562.   /* Insert Unaltered HTML **************************************************************************
  563.  
  564.   insertHTML() -- used to insert unaltered HTML code
  565.  
  566.   Usage: bool insertHTML('<p>Some <b>HTML</b> code...</p>'[,'true/false-add a new line after code']) */
  567.  
  568.   function insertHTML($code=false,$autonl=true{
  569.     if(!$code{
  570.       $this->error = "insertHTML needs a code argument";
  571.       return false;
  572.     }
  573.     else {
  574.       $this->output .= $code (($this->newline && $autonl)?("<br />"):('')) ((!$this->singleline)?("\n"):(''));
  575.       return true;
  576.     }
  577.   }
  578.  
  579.   /* Insert Linebreak *******************************************************************************
  580.  
  581.   insertBR() -- used to insert a <br /> when $this->newline = false
  582.  
  583.   Usage: bool insertBR() */
  584.  
  585.   function insertBR({
  586.     $this->output .="<br />" ((!$this->singleline)?("\n"):(''));
  587.     return true;
  588.   }
  589.  
  590.   /* Output Form ************************************************************************************
  591.  
  592.   getForm() -- get form output, returns false on error
  593.  
  594.   Usage: string getForm() */
  595.  
  596.   function getForm({
  597.  
  598.     // make sure there are no preceeding errors
  599.     if($this->error{
  600.       return false;
  601.     }
  602.  
  603.     // check for open select tags
  604.     elseif($this->selectopen{
  605.       $this->error = "You have an open select tag, please check your code.";
  606.       return false;
  607.     }
  608.  
  609.     // check for open fieldset
  610.     elseif($this->fieldsetopen{
  611.       $this->error = "You have an open fieldset tag, please check your code.";
  612.       return false;
  613.     }
  614.  
  615.     // check for open form, if open just close it and return form
  616.     elseif($this->formopen{
  617.       $this->closeForm();
  618.       return $this->output;
  619.     }
  620.  
  621.     // return form
  622.     else {
  623.       return $this->output;
  624.     }
  625.   }
  626.  
  627.   /* Reset Form *************************************************************************************
  628.  
  629.   resetForm() -- resets form to original state
  630.  
  631.   Usage: $form->resetForm()
  632.  
  633.   Note: use this function when reusing the same form object on one page. */
  634.  
  635.   function resetForm({
  636.     $this->genForm();
  637.     return true;
  638.   }
  639.  
  640.   /**************************************************************************************************
  641.    * INTERNAL FUNCTIONS - Please do not use these functions or variables directly                   *
  642.    **************************************************************************************************/
  643.  
  644.   /* Private Variables ******************************************************************************/
  645.  
  646.   var $output;
  647.   var $formopen;
  648.   var $selectopen;
  649.   var $fieldsetopen;
  650.  
  651.   /* Internal function to get class or id from $_dyna_form_classID **********************************/
  652.  
  653.   function ClassID($ClassID{
  654.  
  655.     // verify that there is a class set, check to make sure user didn't put a blank space
  656.     // in a attempt to disable the class attribute or by accident
  657.     if(trim($ClassID== '' || !$ClassIDreturn ''}
  658.  
  659.     // determine if it is a class or id, ids should begin with #
  660.     if(ereg("^#",$ClassID)) return ' id="' substr($ClassID,1'"'}
  661.     else return ' class="' $ClassID '"'}
  662.   }
  663.  
  664.   /* Internal function to initialize variables ******************************************************/
  665.  
  666.   function genForm({
  667.     $this->output        = '';
  668.     $this->error         = false;
  669.     $this->newline       = true;
  670.     $this->formopen      = false;
  671.     $this->selectopen    = false;
  672.     $this->fieldsetopen  = false;
  673.     $this->outputxhtml   = true;
  674.     $this->singleline    = false;
  675.     $this->brafterlabel  = false;
  676.   }
  677.  
  678. }
  679. ?>

Documentation generated on Thu, 03 May 2012 15:02:26 +0200 by phpDocumentor 1.4.1