<?xml version="1.0"?><phpdoc><class name="form" extends="form_commonobject" undoc="false" access="public" package="Form"><file>c:/www/apache/doc2//form/form.inc</file><doc><author email="ulf.wendel@phpdoc.de">Ulf Wendel</author><inherited src="Array"/><description>The form classes provide a way to generate and validate a HTMLform without the need to write a single line of HTML. Serverside and clientside(JavaScript1.2) validation is done automatically. This code is thesuccessor of the OOH Forms. See pages/form/ for examples.A form consists of an object of this class which controls lots of form elements.Form known all HTML form element types plus some compound types:- button- checkbox- combo (text + select box)- date (lots of select boxes)- file- hidden- image- password- radio- select box- submit- text- textarea- tree (select box with options show as a tree)</description><shortdescription>Object oriented HTML form generation and validation.</shortdescription><version>$Id: form.inc,v 1.14 2000/12/19 10:39:49 uw Exp $</version></doc><function name="setJSMode" undoc="false" access="public"><doc><parameter name="$js_mode" default="&amp;quot;weak&amp;quot;" type="string">&amp;quot;weak&amp;quot; or &amp;quot;strong&amp;quot;, if &amp;quot;strong&amp;quot; validation will be done onChange/onClick&#x0a;otherwise only onSubmit.</parameter><return type="void"/><description/><shortdescription>Sets the JavaScript validation mode.</shortdescription></doc></function><function name="setMethod" undoc="false" access="public"><doc><see type="function">autoloadValues()</see><see type="var">$method</see><parameter name="$method" default="&amp;quot;POST&amp;quot;" type="string">&amp;quot;POST&amp;quot; or &amp;quot;GET&amp;quot;</parameter><return type="void"/><description/><shortdescription>Sets the method used by this form.</shortdescription></doc></function><function name="autoloadValues" undoc="false" access="public"><doc><parameter name="$ellist" default="&amp;quot;&amp;quot;" type="mixed">of one element or array of elements. An empty string&#x0a;causes a fallback to all elements.</parameter><return name="" type="boolean"/><description/><shortdescription>Loads the form with HTTP_[POST|GET]_VARS.</shortdescription></doc></function><function name="setValues" undoc="false" access="public"><doc><parameter name="$values" type="array">of values, $values[ name ] = value</parameter><return name="" type="boolean"/><throws>form_error</throws><description/><shortdescription>Sets the value of one element or a group of elements.</shortdescription></doc></function><function name="Validation" undoc="false" access="private"><doc><see type="function">ValidationOn()</see><see type="function">ValidationOff()</see><parameter name="$ellist" type="mixed">Eigther the name of one element of an&#x0a;array of elements: $ellist [ name ] = events.</parameter><parameter name="$status" default="false" type="boolean">The default of false turns off the validation,&#x0a;true turns it on.</parameter><return type="void"/><description>The new forms provide a way to validate depencencies between form elements.You may define a dependencie validation method for any element(attribute: validator). It gets called in the very first lines ofvalidate() and controls the default validators by turning them on/offfor certain elements using validation().</description><shortdescription>Controls the default validation of an element.</shortdescription></doc></function><function name="ValidationOff" undoc="false" access="public"><doc><see type="function">Validation()</see><parameter name="$ellist" type="mixed">Name of one element or array of elements.</parameter><return type="void"/><description/><shortdescription>Public handle to turn default validation off.</shortdescription></doc></function><function name="ValidationOn" undoc="false" access="public"><doc><see type="function">Validation()</see><parameter name="$ellist" type="mixed">Name of one element or array of elements.</parameter><return type="void"/><description/><shortdescription>Public handle to turn default validation on.</shortdescription><brother>validationoff</brother></doc></function><function name="setValidator" undoc="false" access="private"><doc><parameter name="$name" type="string">element name</parameter><parameter name="$validator" type="string">name of validation function</parameter><return name="" type="boolean"/><throws>form_error</throws><description/><shortdescription>Sets the name of a custom validation function.</shortdescription></doc></function><function name="getStart" undoc="false" access="public"><doc><parameter name="$js_name" default="&amp;quot;&amp;quot;" type="string">form name. If empty no JavaScript validation will be done.</parameter><parameter name="$method" default="&amp;quot;POST&amp;quot;" type="string">method attribute: &amp;quot;POST&amp;quot; or &amp;quot;GET&amp;quot;.</parameter><parameter name="$action" default="&amp;quot;&amp;quot;" type="string">action attribute. If empty $PHP_SELF gets used.</parameter><parameter name="$target" default="&amp;quot;&amp;quot;" type="string">target attribute.</parameter><return name="" type="string">HTML form-Tag</return><global name="$PHP_SELF" type="string"/><description/><shortdescription>Generates the opening HTML form tag, &amp;lt;form&amp;gt;.</shortdescription></doc></function><function name="Start" undoc="false" access="public"><doc><parameter name="$js_name" default="&amp;quot;&amp;quot;" type="string">form name. If empty no JavaScript validation will be done.</parameter><parameter name="$method" default="&amp;quot;POST&amp;quot;" type="string">method attribute: &amp;quot;POST&amp;quot; or &amp;quot;GET&amp;quot;.</parameter><parameter name="$action" default="&amp;quot;&amp;quot;" type="string">action attribute. If empty $PHP_SELF gets used.</parameter><parameter name="$target" default="&amp;quot;&amp;quot;" type="string">target attribute.</parameter><return type="void"/><global name="$PHP_SELF" type="string"/><description/><shortdescription>Generate and print &amp;lt;form&amp;gt;-Tag</shortdescription><brother>getstart</brother></doc></function><function name="getFinish" undoc="false" access="public"><doc><parameter name="$additional_html" default="&amp;quot;&amp;quot;" type="string">Optional, additional HTML inserted in front of&#x0a;the generated HTML.</parameter><parameter name="$sess" default="&amp;quot;&amp;quot;" type="mixed">Session Class</parameter><return name="$html" type="string"/><description/><shortdescription>Generates the closing HTML form tag and handles the hidden elements.</shortdescription></doc></function><function name="Finish" undoc="false" access="public"><doc><parameter name="$additional_html" default="&amp;quot;&amp;quot;" type="string">Optional, additional HTML inserted in front of&#x0a;the generated HTML.</parameter><parameter name="$sess" default="&amp;quot;&amp;quot;" type="mixed">Session Class</parameter><return type="void"/><description/><shortdescription>Generate and print closing &amp;lt;/form&amp;gt;-Tag.</shortdescription><brother>getfinish</brother></doc></function><function name="get" undoc="false" access="public"><doc><see type="function">getStart()</see><see type="function">getFinish()</see><parameter name="$js_name" default="&amp;quot;&amp;quot;" type="string">form name. If empty no JavaScript validation will be done.</parameter><parameter name="$method" default="&amp;quot;POST&amp;quot;" type="string">method attribute: &amp;quot;POST&amp;quot; or &amp;quot;GET&amp;quot;.</parameter><parameter name="$action" default="&amp;quot;&amp;quot;" type="string">action attribute. If empty $PHP_SELF gets used.</parameter><parameter name="$target" default="&amp;quot;&amp;quot;" type="string">target attribute.</parameter><parameter name="$additional_html" default="&amp;quot;&amp;quot;" type="string">HTML added right before the closing form-Tag</parameter><return name="" type="string">HTML form-Tag</return><global name="$PHP_SELF" type="string"/><description/><shortdescription>Generate the complete form.</shortdescription></doc></function><function name="show" undoc="false" access="public"><doc><see type="function">getStart()</see><see type="function">getFinish()</see><parameter name="$js_name" default="&amp;quot;&amp;quot;" type="string">form name. If empty no JavaScript validation will be done.</parameter><parameter name="$method" default="&amp;quot;POST&amp;quot;" type="string">method attribute: &amp;quot;POST&amp;quot; or &amp;quot;GET&amp;quot;.</parameter><parameter name="$action" default="&amp;quot;&amp;quot;" type="string">action attribute. If empty $PHP_SELF gets used.</parameter><parameter name="$target" default="&amp;quot;&amp;quot;" type="string">target attribute.</parameter><parameter name="$additional_html" default="&amp;quot;&amp;quot;" type="string">HTML added right before the closing form-Tag</parameter><return type="void"/><global name="$PHP_SELF" type="string"/><description/><shortdescription>Generate and print the complete form.</shortdescription><brother>get</brother></doc></function><function name="addElement" undoc="false" access="public"><doc><parameter name="$element_data" type="array"/><return name="$ok" type="bool"/><throws>form_error</throws><description/><shortdescription>Adds an element to the form object.</shortdescription></doc></function><function name="getElement" undoc="false" access="public"><doc><parameter name="$elname" type="string">name</parameter><parameter name="$value" default="&amp;quot;&amp;quot;" type="string">value, only used with radio - FIXME</parameter><return name="" type="string">HTML </return><throws>form_error</throws><description/><shortdescription>Generate and return the html representation of an element.</shortdescription></doc></function><function name="getType" undoc="false" access="public"><doc><parameter name="$elname" type="string"/><return name="$type" type="string"/><throws>form_error</throws><description/><shortdescription>Return the type of an element.</shortdescription></doc></function><function name="getValue" undoc="false" access="public"><doc><parameter name="$name" type="string">element name</parameter><return name="$value" type="mixed"/><throws>form_error</throws><description>Use the function within your custom validation functions.</description><shortdescription>Return the current value of an element.</shortdescription></doc></function><function name="showElement" undoc="false" access="private"><doc><parameter name="$elname" type="string">name</parameter><parameter name="$value" default="&amp;quot;&amp;quot;" type="string">value, only used with radio - FIXME</parameter><return type="void"/><throws>form_error</throws><description/><shortdescription>Return and print an element.</shortdescription><brother>getelement</brother></doc></function><function name="validate" undoc="false" access="public"><doc><parameter name="$vallist" default="&amp;quot;&amp;quot;" type="mixed"/><return name="" type="array"> ($error_msg, $error_flags)</return><description/><shortdescription>Validate a form.</shortdescription></doc></function><function name="setValidationError" undoc="false" access="public"><doc><see type="function">getValidationResult()</see><see type="function">validate()</see><parameter name="$name" type="string">element name</parameter><parameter name="$message" type="string"/><return name="$ok" type="boolean"/><throws>form_error</throws><description/><shortdescription>Sets the validation error message for of an element.</shortdescription></doc></function><function name="getValidationResult" undoc="false" access="public"><doc><see type="function">setValidationError()</see><see type="function">validate()</see><return name="" type="array"> ($error_msg, $error_flags)</return><description/><shortdescription>Returns an array that holds the results of the last validation.</shortdescription></doc></function><function name="getCustomValidators" undoc="false" access="private"><doc><parameter name="$ellist" default="&amp;quot;&amp;quot;" type="mixed"/><return name="$validators" type="array"> $k =&amp;gt; $custom_function</return><description/><shortdescription>Returns an array of all custom validation functions</shortdescription></doc></function><function name="freeze" undoc="false" access="public"><doc><parameter name="$flist" default="&amp;quot;&amp;quot;" type="mixed"/><return type="void"/><description>A user can&amp;apos;t change the value of an frozen element.</description><shortdescription>Freeze an element, frozen elements are drawn in an non editable way.</shortdescription></doc></function><function name="unfreeze" undoc="false" access="public"><doc><see type="function">freeze()</see><parameter name="$flist" default="&amp;quot;&amp;quot;" type="mixed">of one element or list of elements to unfreeze. An empty&#x0a;string causes a fallback to all elements.</parameter><return type="void"/><description/><shortdescription>Thaw out an element.</shortdescription></doc></function><function name="addJS" undoc="false" access="public"><doc><parameter name="$name" type="string">name of the element</parameter><parameter name="$code" type="string">JavaScript code</parameter><return name="$ok" type="bool"/><throws>form_error</throws><description>FIXME</description><shortdescription>Adds JavaScript validation code to an element</shortdescription></doc></function><function name="getJS" undoc="false" access="public"><doc><return name="$code" type="string"> JavaScript validation code</return><throws>form_error</throws><description/><shortdescription>Returns JavaScript validation code.</shortdescription></doc></function><function name="compressJS" undoc="false" access="private"><doc><see type="function">getJS()</see><parameter name="$code" type="string">code snippet</parameter><return name="" type="string">compressed code</return><description>Warning: do not use this function with user supplied code.The function replaces most tabs and spaces with an empty string beforeit starts to remove some newlines. The resulting code is usually15-25% shorter than the orginial code.</description><shortdescription>Removes tabs, spaces and newlines from the given JavaScript code.</shortdescription></doc></function><function name="thawout" undoc="false" access="private"><doc><see type="function">freeze()</see><parameter name="$flist" default="&amp;quot;&amp;quot;" type="mixed">of one element or list of elements to unfreeze. An empty&#x0a;string causes a fallback to all elements.</parameter><return type="void"/><description/><shortdescription>Thaw out an element.</shortdescription><brother>unfreeze</brother></doc></function><function name="getElements" undoc="false" access="public"><doc><return name="$elements" type="array"> [ name ] = name</return><description/><shortdescription>Returns an array of all elements.</shortdescription></doc></function><function name="getOptions" undoc="false" access="public"><doc><parameter name="$ellist" type="mixed">String with the name of one element or a list of elements.</parameter><return name="$options" type="array"/><throws>form_error</throws><description>Comboboxes expand their option list. Take care that you savethe expanded option list so that you can reload the newoption list after the form was submittet.FIXME getOptions()</description><shortdescription>Return an array of all options of a combo list.</shortdescription></doc></function><function name="ElementExists" undoc="false" access="private"><doc><parameter name="$name" type="string">name of the requested element</parameter><return name="$ok" type="bool"/><description/><shortdescription>Checks the existance of a certain element.</shortdescription></doc></function><function name="setDefaults" undoc="false" access="private"><doc><see type="var">$defaults</see><parameter name="$defaults" type="array">$default [ attribute ] = value</parameter><return name="$ok" type="boolean"/><throws>form_error</throws><description>You can use this function to define default values forelements.</description><shortdescription>Sets default element attributes.</shortdescription></doc></function><function name="addDefaultAttributes" undoc="false" access="private"><doc><parameter name="&amp;$element_data" type="array"/><return type="void"/><description/><shortdescription>Adds default values to an element if they haven&amp;apos;t been overriden.</shortdescription></doc></function><function name="getNameTranslationList" undoc="false" access="private"><doc><parameter name="$ellist" type="mixed"/><return type="void"/><description/><shortdescription>FIXME</shortdescription></doc></function><function name="getElementnames" undoc="false" access="private"><doc><return type="void"/><description/><shortdescription>FIXME</shortdescription></doc></function><function name="clearCode" undoc="false" access="private"><doc><parameter name="$code" type="string"/><return name="$code" type="string"/><description/><shortdescription>Reformate generated code</shortdescription></doc></function><function name="getSessionHash" undoc="false" access="public"><doc><return name="$session_hash" type="array"/><description>Returns an array with elname =&amp;gt; value pairs, that can be usedto be stored in  a session. new_assistant needs this</description><shortdescription>FIXME</shortdescription></doc></function><function name="setElementnamePrefix" undoc="false" access="private"><doc><see type="var">$element_prefix</see><parameter name="$prefix" type="string"/><return name="" type="boolean"/><description/><shortdescription>Sets a global Prefix for element names.</shortdescription></doc></function><function name="isChecked" undoc="false" access="public"><doc><parameter name="$elname" type="string">name</parameter><return name="" type="boolean"/><description/><shortdescription>Is this checkboxobject checked?</shortdescription></doc></function><function name="getNewComboOption" undoc="false" access="public"><doc><parameter name="$name" type="string">element name</parameter><return name="$html" type="string"/><description/><shortdescription>Returns the latest combo entry of the user</shortdescription></doc></function><function name="addOption" undoc="false" access="public"><doc><see type="function">getNewComboOption()</see><see type="function">SetOptions()</see><see type="function">getOptions()</see><parameter name="$name" type="string"/><parameter name="$label" type="string"/><parameter name="$value" default="&amp;quot;&amp;quot;" type="string">= &amp;quot;&amp;quot;</parameter><return name="$ok" type="bool"/><description/><shortdescription>Add a new option to a combo</shortdescription></doc></function><function name="getTree" undoc="false" access="public"><doc><parameter name="$ellist" type="string">|array	$ellist</parameter><return name="$trees" type="array"/><description>Returns the tree for a certain value of an treeview elementIt&amp;apos;s just implementet to make the api complete</description><shortdescription>FIXME FIXME</shortdescription></doc></function><function name="setTree" undoc="false" access="public"><doc><parameter name="$ellist" type="array"/><return name="$ok" type="bool"/><throws>form_error</throws><description>Helpful with dynamically changing trees</description><shortdescription>Set the tree of an treeview element</shortdescription></doc></function><function name="isMethodAllowed" undoc="false" access="private"><doc><parameter name="$function" type="string">Name of the function that calls this method</parameter><parameter name="$name" type="string">Name of a form element</parameter><parameter name="$required_type" type="mixed"/><return name="$ok" type="boolean"/><throws>form_error</throws><description/><shortdescription/></doc></function><function name="setJSError" undoc="false" access="public"><doc><see type="var">$js_error_prefix</see><see type="var">$js_error_postfix</see><parameter name="$prefix" type="string"/><parameter name="$postfix" type="string"/><return type="void"/><description/><shortdescription>Sets the JavaScript error message pre- and postfix text.</shortdescription></doc></function><function name="list" undoc="true" access="private"><doc><parameter name="$eldata" undoc="true"/><parameter name="$getvalue_func" undoc="true"/><parameter name="$getvalue_fname" undoc="true"/><parameter name="$js_validator" undoc="true"/><parameter name="$el" undoc="true"/><parameter name="$el" undoc="true"/><parameter name="$complex" undoc="true"/><parameter name="$complex" undoc="true"/><parameter name="$js_validator" undoc="true"/><parameter name="$custom" undoc="true"/><parameter name="$custom" undoc="true"/><parameter name="$custom" undoc="true"/><parameter name="$js_validator" undoc="true"/><parameter name="$js" undoc="true"/><parameter name="$js" undoc="true"/><parameter name="$js" undoc="true"/><parameter name="$js" undoc="true"/><parameter name="$js" undoc="true"/><parameter name="$js" undoc="true"/><parameter name="$js" undoc="true"/><parameter name="$js" undoc="true"/><parameter name="$eldata" undoc="true"/><parameter name="$getvalue_fname" undoc="true"/><parameter name="$getvalue_fname" undoc="true"/><return type="void"/></doc></function><function name="setOptions" undoc="true" access="private"><doc><parameter name="$ellist" undoc="true"/><return type="void"/></doc></function><variable name="$defaults" access="private" type="array">array(&#x0a;													# text element defaults&#x0a;													&amp;quot;textsize&amp;quot;			=&amp;gt; 0,&#x0a;													&amp;quot;textmaxlength&amp;quot; =&amp;gt; 0,&#x0a;									&#x0a;													# file element defaults&#x0a;													&amp;quot;filesize&amp;quot;			=&amp;gt; 0,&#x0a;													&#x0a;													# image element defaults&#x0a;													&amp;quot;imageborder&amp;quot;		=&amp;gt; 0,&#x0a;													&#x0a;													# select objects&#x0a;													&amp;quot;selectintro&amp;quot;		=&amp;gt; &amp;quot;&amp;quot;,&#x0a;													&amp;quot;selectintro_e&amp;quot;	=&amp;gt; &amp;quot;&amp;quot;,&#x0a;													&#x0a;													# HTML CSS defaults				&#x0a;													&amp;quot;cssid&amp;quot;					=&amp;gt; &amp;quot;&amp;quot;,&#x0a;													&amp;quot;cssclass&amp;quot;			=&amp;gt; &amp;quot;&amp;quot;,&#x0a;													&amp;quot;cssstyle&amp;quot;			=&amp;gt; &amp;quot;&amp;quot;&#x0a;											)<doc><see type="function">setDefaults()</see><description/><shortdescription>Some default values.</shortdescription></doc></variable><variable name="$elements" access="private" type="array">array()<doc><description/><shortdescription>Array of all elements.</shortdescription></doc></variable><variable name="$element_names" access="private" type="array">array()<doc><description/><shortdescription>List of all element names.</shortdescription></doc></variable><variable name="$element_prefix" access="private" type="string">&amp;quot;&amp;quot;<doc><see type="function">setElementnamePrefix()</see><description>In multipage forms a global element name prefix can beused to avoid name clashes.</description><shortdescription>Global element name prefix.</shortdescription></doc></variable><variable name="$validation_flags" access="private" type="array">array()<doc><see type="function">validate()</see><see type="function">setValidationError()</see><see type="function">getValidationResult()</see><see type="var">$validation_msg</see><description/><shortdescription>Results of the last validation.</shortdescription></doc></variable><variable name="$validation_msg" access="private" type="string">&amp;quot;&amp;quot;<doc><see type="function">validate()</see><see type="function">setValidationError()</see><see type="function">getValidationResult()</see><see type="var">$validation_flags</see><description/><shortdescription>String with all error messages.</shortdescription></doc></variable><variable name="$hidden_elements" access="private" type="array">array()<doc><description>Hidden elements are treated different than in the old oohforms. Now you cangive a hidden element an html name (attribute name) and an alias name (elname)to access the element. That caused the introduction of some translationtables.</description><shortdescription>Array of hidden elements.</shortdescription></doc></variable><variable name="$radio_elements" access="private" type="array">array()<doc><description/><shortdescription>Array of radio elements.</shortdescription></doc></variable><variable name="$js_name" access="private" type="string">&amp;quot;&amp;quot;<doc><description>If no name is given no JavaScript validation will be done.</description><shortdescription>HTML name attribute of the opening form Tag.</shortdescription></doc></variable><variable name="$js_mode" access="private" type="string">&amp;quot;strong&amp;quot;<doc><description>Form knows two kinds of JavaScript validation: &amp;quot;strong&amp;quot; and &amp;quot;weak&amp;quot;.&amp;quot;strong&amp;quot; means that validation will be performed onChange/onClick,&amp;quot;weak&amp;quot; stands for onSubmit.</description><shortdescription>JavaScript validation mode</shortdescription></doc></variable><variable name="$js_error_prefix" access="private" type="string">&amp;quot;There&amp;apos;re errors in the form: \n\n&amp;quot;<doc><see type="var">$js_error_postfix</see><see type="function">setJSError()</see><description>Prefix displayed in front of the errors in a JavaScript alert box.</description><shortdescription>JavaScript error message prefix.</shortdescription></doc></variable><variable name="$js_error_postfix" access="private" type="string">&amp;quot;\n\nPlease correct the input.&amp;quot;<doc><see type="var">$js_error_prefix</see><see type="function">setJSError()</see><description>Postfix displayed right after the errors in a JavaScript alert box.</description><shortdescription>JavaScript error message postfix.</shortdescription></doc></variable><variable name="$method" access="private" type="string">&amp;quot;POST&amp;quot;<doc><see type="function">Start()</see><see type="function">autoloadValues()</see><description/><shortdescription>Method used in the form.</shortdescription></doc></variable><variable name="$flag_loader" access="public" type="boolean">true<doc><description>addElement() will call form_elements_loader() if the flag is set to true.It&amp;apos;s strongly recommended that you use the Form Loader unless you&amp;apos;reusing the Zend Cache or a similar product.</description><shortdescription>Flag indication that you&amp;apos;re using the Form Loader.</shortdescription></doc></variable><variable name="$flag_contains_file" access="private" type="boolean">false<doc><description/><shortdescription>Flag indicating that a file upload button is in the form.</shortdescription></doc></variable><inherited src="form_commonobject" type="functions"><element>introspection</element></inherited><inherited src="form_commonobject" type="variables"><element>$cr_html</element><element>$exceptions</element></inherited><path><parent>form_commonobject</parent></path><baseclass>form_commonobject</baseclass><subclasses><subclass>example_form</subclass></subclasses></class></phpdoc>