⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 quickform.php

📁 完美的在线教育系统
💻 PHP
📖 第 1 页 / 共 5 页
字号:
                    break;                }            } while ($parent = get_parent_class($parent));        }        if ($ruleName) {            $registry =& HTML_QuickForm_RuleRegistry::singleton();            $registry->registerRule($ruleName, null, $name);        }        return $ruleName;    } // end func isRuleRegistered    // }}}    // {{{ getRegisteredRules()    /**     * Returns an array of registered validation rules     *     * @since     1.0     * @access    public     * @return    array     */    function getRegisteredRules()    {        return array_keys($GLOBALS['_HTML_QuickForm_registered_rules']);    } // end func getRegisteredRules    // }}}    // {{{ isElementRequired()    /**     * Returns whether or not the form element is required     *     * @param     string   $element     Form element name     * @since     1.0     * @access    public     * @return    boolean     */    function isElementRequired($element)    {        return in_array($element, $this->_required, true);    } // end func isElementRequired    // }}}    // {{{ isElementFrozen()    /**     * Returns whether or not the form element is frozen     *     * @param     string   $element     Form element name     * @since     1.0     * @access    public     * @return    boolean     */    function isElementFrozen($element)    {         if (isset($this->_elementIndex[$element])) {             return $this->_elements[$this->_elementIndex[$element]]->isFrozen();         }         return false;    } // end func isElementFrozen    // }}}    // {{{ setJsWarnings()    /**     * Sets JavaScript warning messages     *     * @param     string   $pref        Prefix warning     * @param     string   $post        Postfix warning     * @since     1.1     * @access    public     * @return    void     */    function setJsWarnings($pref, $post)    {        $this->_jsPrefix = $pref;        $this->_jsPostfix = $post;    } // end func setJsWarnings        // }}}    // {{{ setRequiredNote()    /**     * Sets required-note     *     * @param     string   $note        Message indicating some elements are required     * @since     1.1     * @access    public     * @return    void     */    function setRequiredNote($note)    {        $this->_requiredNote = $note;    } // end func setRequiredNote    // }}}    // {{{ getRequiredNote()    /**     * Returns the required note     *     * @since     2.0     * @access    public     * @return    string     */    function getRequiredNote()    {        return $this->_requiredNote;    } // end func getRequiredNote    // }}}    // {{{ validate()    /**     * Performs the server side validation     * @access    public     * @since     1.0     * @return    boolean   true if no error found     */    function validate()    {        if (count($this->_rules) == 0 && count($this->_formRules) == 0 &&             $this->isSubmitted()) {            return (0 == count($this->_errors));        } elseif (!$this->isSubmitted()) {            return false;        }        include_once('HTML/QuickForm/RuleRegistry.php');        $registry =& HTML_QuickForm_RuleRegistry::singleton();        foreach ($this->_rules as $target => $rules) {            $submitValue = $this->getSubmitValue($target);            foreach ($rules as $rule) {                if ((isset($rule['group']) && isset($this->_errors[$rule['group']])) ||                     isset($this->_errors[$target])) {                    continue 2;                }                // If element is not required and is empty, we shouldn't validate it                if (!$this->isElementRequired($target)) {                    if (!isset($submitValue) || '' == $submitValue) {                        continue 2;                    // Fix for bug #3501: we shouldn't validate not uploaded files, either.                    // Unfortunately, we can't just use $element->isUploadedFile() since                    // the element in question can be buried in group. Thus this hack.                    } elseif (is_array($submitValue)) {                        if (false === ($pos = strpos($target, '['))) {                            $isUpload = !empty($this->_submitFiles[$target]);                        } else {                            $base = str_replace(                                        array('\\', '\''), array('\\\\', '\\\''),                                        substr($target, 0, $pos)                                     );                             $idx  = "['" . str_replace(                                        array('\\', '\'', ']', '['), array('\\\\', '\\\'', '', "']['"),                                         substr($target, $pos + 1, -1)                                    ) . "']";                            eval("\$isUpload = isset(\$this->_submitFiles['{$base}']['name']{$idx});");                        }                        if ($isUpload && (!isset($submitValue['error']) || 0 != $submitValue['error'])) {                            continue 2;                        }                    }                }                if (isset($rule['dependent']) && is_array($rule['dependent'])) {                    $values = array($submitValue);                    foreach ($rule['dependent'] as $elName) {                        $values[] = $this->getSubmitValue($elName);                    }                    $result = $registry->validate($rule['type'], $values, $rule['format'], true);                } elseif (is_array($submitValue) && !isset($rule['howmany'])) {                    $result = $registry->validate($rule['type'], $submitValue, $rule['format'], true);                } else {                    $result = $registry->validate($rule['type'], $submitValue, $rule['format'], false);                }                if (!$result || (!empty($rule['howmany']) && $rule['howmany'] > (int)$result)) {                    if (isset($rule['group'])) {                        $this->_errors[$rule['group']] = $rule['message'];                    } else {                        $this->_errors[$target] = $rule['message'];                    }                }            }        }        // process the global rules now        foreach ($this->_formRules as $rule) {            if (true !== ($res = call_user_func($rule, $this->_submitValues, $this->_submitFiles))) {                if (is_array($res)) {                    $this->_errors += $res;                } else {                    return PEAR::raiseError(null, QUICKFORM_ERROR, null, E_USER_WARNING, 'Form rule callback returned invalid value in HTML_QuickForm::validate()', 'HTML_QuickForm_Error', true);                }            }        }        return (0 == count($this->_errors));    } // end func validate    // }}}    // {{{ freeze()    /**     * Displays elements without HTML input tags     *     * @param    mixed   $elementList       array or string of element(s) to be frozen     * @since     1.0     * @access   public     * @throws   HTML_QuickForm_Error     */    function freeze($elementList=null)    {        if (!isset($elementList)) {            $this->_freezeAll = true;            $elementList = array();        } else {            if (!is_array($elementList)) {                $elementList = preg_split('/[ ]*,[ ]*/', $elementList);            }            $elementList = array_flip($elementList);        }        foreach (array_keys($this->_elements) as $key) {            $name = $this->_elements[$key]->getName();            if ($this->_freezeAll || isset($elementList[$name])) {                $this->_elements[$key]->freeze();                unset($elementList[$name]);            }        }        if (!empty($elementList)) {            return PEAR::raiseError(null, QUICKFORM_NONEXIST_ELEMENT, null, E_USER_WARNING, "Nonexistant element(s): '" . implode("', '", array_keys($elementList)) . "' in HTML_QuickForm::freeze()", 'HTML_QuickForm_Error', true);        }        return true;    } // end func freeze            // }}}    // {{{ isFrozen()    /**     * Returns whether or not the whole form is frozen     *     * @since     3.0     * @access    public     * @return    boolean     */    function isFrozen()    {         return $this->_freezeAll;    } // end func isFrozen    // }}}    // {{{ process()    /**     * Performs the form data processing     *     * @param    mixed     $callback        Callback, either function name or array(&$object, 'method')     * @param    bool      $mergeFiles      Whether uploaded files should be processed too     * @since    1.0     * @access   public     * @throws   HTML_QuickForm_Error     */    function process($callback, $mergeFiles = true)    {        if (!is_callable($callback)) {            return PEAR::raiseError(null, QUICKFORM_INVALID_PROCESS, null, E_USER_WARNING, "Callback function does not exist in QuickForm::process()", 'HTML_QuickForm_Error', true);        }        $values = ($mergeFiles === true) ? HTML_QuickForm::arrayMerge($this->_submitValues, $this->_submitFiles) : $this->_submitValues;        return call_user_func($callback, $values);    } // end func process    // }}}    // {{{ accept()   /**    * Accepts a renderer    *    * @param object     An HTML_QuickForm_Renderer object    * @since 3.0    * @access public    * @return void    */    function accept(&$renderer)    {        $renderer->startForm($this);        foreach (array_keys($this->_elements) as $key) {            $element =& $this->_elements[$key];            $elementName = $element->getName();            $required    = ($this->isElementRequired($elementName) && !$element->isFrozen());            $error       = $this->getElementError($elementName);            $element->accept($renderer, $required, $error);        }        $renderer->finishForm($this);    } // end func accept    // }}}    // {{{ defaultRenderer()   /**    * Returns a reference to default renderer object    *    * @access public    * @since 3.0    * @return object a default renderer object    */    function &defaultRenderer()    {        if (!isset($GLOBALS['_HTML_QuickForm_default_renderer'])) {            include_once('HTML/QuickForm/Renderer/Default.php');            $GLOBALS['_HTML_QuickForm_default_renderer'] =& new HTML_QuickForm_Renderer_Default();        }        return $GLOBALS['_HTML_QuickForm_default_renderer'];    } // end func defaultRenderer    // }}}    // {{{ toHtml ()    /**     * Returns an HTML version of the form     *     * @param string $in_data (optional) Any extra data to insert right     *               before form is rendered.  Useful when using templates.     *     * @return   string     Html version of the form     * @since     1.0     * @access   public     */    function toHtml ($in_data = null)    {        if (!is_null($in_data)) {            $this->addElement('html', $in_data);        }        $renderer =& $this->defaultRenderer();        $this->accept($renderer);        return $renderer->toHtml();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -