tag.php

来自「一款可以和GOOGLE媲美的开源统计系统,运用AJAX.功能强大. 无色提示:」· PHP 代码 · 共 1,418 行 · 第 1/3 页

PHP
1,418
字号
         *    @access public         */        function getLabel() {            if ($this->getAttribute('title')) {                return $this->getAttribute('title');            }            return $this->getAttribute('alt');        }                /**         *    Test for a label match when searching.         *    @param string $label     Label to test.         *    @return boolean          True on match.         *    @access public         */        function isLabel($label) {            return trim($label) == trim($this->getLabel());        }                /**         *    Dispatches the value into the form encoded packet.         *    @param SimpleEncoding $encoding    Form packet.         *    @param integer $x                  X coordinate of click.         *    @param integer $y                  Y coordinate of click.         *    @access public         */        function write(&$encoding, $x, $y) {            if ($this->getName()) {                $encoding->add($this->getName() . '.x', $x);                $encoding->add($this->getName() . '.y', $y);            } else {                $encoding->add('x', $x);                $encoding->add('y', $y);            }        }    }          /**     *    Submit button as button tag.	 *    @package SimpleTest	 *    @subpackage WebTester     */    class SimpleButtonTag extends SimpleWidget {                /**         *    Starts with a named tag with attributes only.         *    Defaults are very browser dependent.         *    @param hash $attributes    Attribute names and         *                               string values.         */        function SimpleButtonTag($attributes) {            $this->SimpleWidget('button', $attributes);        }                /**         *    Check to see if the tag can have both start and         *    end tags with content in between.         *    @return boolean        True if content allowed.         *    @access public         */        function expectEndTag() {            return true;        }                /**         *    Disables the setting of the button value.         *    @param string $value       Ignored.         *    @return boolean            True if allowed.         *    @access public         */        function setValue($value) {            return false;        }                /**         *    Value of browser visible text.         *    @return string        Visible label.         *    @access public         */        function getLabel() {            return $this->getContent();        }                /**         *    Test for a label match when searching.         *    @param string $label     Label to test.         *    @return boolean          True on match.         *    @access public         */        function isLabel($label) {            return trim($label) == trim($this->getLabel());        }    }      /**     *    Content tag for text area.	 *    @package SimpleTest	 *    @subpackage WebTester     */    class SimpleTextAreaTag extends SimpleWidget {                /**         *    Starts with a named tag with attributes only.         *    @param hash $attributes    Attribute names and         *                               string values.         */        function SimpleTextAreaTag($attributes) {            $this->SimpleWidget('textarea', $attributes);        }                /**         *    Accessor for starting value.         *    @return string        Parsed value.         *    @access public         */        function getDefault() {            return $this->_wrap(SimpleHtmlSaxParser::decodeHtml($this->getContent()));        }                /**         *    Applies word wrapping if needed.         *    @param string $value      New value.         *    @return boolean            True if allowed.         *    @access public         */        function setValue($value) {            return parent::setValue($this->_wrap($value));        }                /**         *    Test to see if text should be wrapped.         *    @return boolean        True if wrapping on.         *    @access private         */        function _wrapIsEnabled() {            if ($this->getAttribute('cols')) {                $wrap = $this->getAttribute('wrap');                if (($wrap == 'physical') || ($wrap == 'hard')) {                    return true;                }            }            return false;        }                /**         *    Performs the formatting that is peculiar to         *    this tag. There is strange behaviour in this         *    one, including stripping a leading new line.         *    Go figure. I am using Firefox as a guide.         *    @param string $text    Text to wrap.         *    @return string         Text wrapped with carriage         *                           returns and line feeds         *    @access private         */        function _wrap($text) {            $text = str_replace("\r\r\n", "\r\n", str_replace("\n", "\r\n", $text));            $text = str_replace("\r\n\n", "\r\n", str_replace("\r", "\r\n", $text));            if (strncmp($text, "\r\n", strlen("\r\n")) == 0) {                $text = substr($text, strlen("\r\n"));            }            if ($this->_wrapIsEnabled()) {                return wordwrap(                        $text,                        (integer)$this->getAttribute('cols'),                        "\r\n");            }            return $text;        }                /**         *    The content of textarea is not part of the page.         *    @return boolean        True.         *    @access public         */        function isPrivateContent() {            return true;        }    }        /**     *    File upload widget.	 *    @package SimpleTest	 *    @subpackage WebTester     */    class SimpleUploadTag extends SimpleWidget {                /**         *    Starts with attributes only.         *    @param hash $attributes    Attribute names and         *                               string values.         */        function SimpleUploadTag($attributes) {            $this->SimpleWidget('input', $attributes);        }                /**         *    Tag contains no content.         *    @return boolean        False.         *    @access public         */        function expectEndTag() {            return false;        }                /**         *    Dispatches the value into the form encoded packet.         *    @param SimpleEncoding $encoding    Form packet.         *    @access public         */        function write(&$encoding) {            if (! file_exists($this->getValue())) {                return;            }            $encoding->attach(                    $this->getName(),                    implode('', file($this->getValue())),                    basename($this->getValue()));        }    }        /**     *    Drop down widget.	 *    @package SimpleTest	 *    @subpackage WebTester     */    class SimpleSelectionTag extends SimpleWidget {        var $_options;        var $_choice;                /**         *    Starts with attributes only.         *    @param hash $attributes    Attribute names and         *                               string values.         */        function SimpleSelectionTag($attributes) {            $this->SimpleWidget('select', $attributes);            $this->_options = array();            $this->_choice = false;        }                /**         *    Adds an option tag to a selection field.         *    @param SimpleOptionTag $tag     New option.         *    @access public         */        function addTag(&$tag) {            if ($tag->getTagName() == 'option') {                $this->_options[] = &$tag;            }        }                /**         *    Text within the selection element is ignored.         *    @param string $content        Ignored.         *    @access public         */        function addContent($content) {        }                /**         *    Scans options for defaults. If none, then         *    the first option is selected.         *    @return string        Selected field.         *    @access public         */        function getDefault() {            for ($i = 0, $count = count($this->_options); $i < $count; $i++) {                if ($this->_options[$i]->getAttribute('selected') !== false) {                    return $this->_options[$i]->getDefault();                }            }            if ($count > 0) {                return $this->_options[0]->getDefault();            }            return '';        }                /**         *    Can only set allowed values.         *    @param string $value       New choice.         *    @return boolean            True if allowed.         *    @access public         */        function setValue($value) {            for ($i = 0, $count = count($this->_options); $i < $count; $i++) {                if ($this->_options[$i]->isValue($value)) {                    $this->_choice = $i;                    return true;                }            }            return false;        }                /**         *    Accessor for current selection value.         *    @return string      Value attribute or         *                        content of opton.         *    @access public         */        function getValue() {            if ($this->_choice === false) {                return $this->getDefault();            }            return $this->_options[$this->_choice]->getValue();        }    }        /**     *    Drop down widget.	 *    @package SimpleTest	 *    @subpackage WebTester     */    class MultipleSelectionTag extends SimpleWidget {        var $_options;        var $_values;                /**         *    Starts with attributes only.         *    @param hash $attributes    Attribute names and         *                               string values.         */        function MultipleSelectionTag($attributes) {            $this->SimpleWidget('select', $attributes);            $this->_options = array();            $this->_values = false;        }                /**         *    Adds an option tag to a selection field.         *    @param SimpleOptionTag $tag     New option.         *    @access public         */        function addTag(&$tag) {            if ($tag->getTagName() == 'option') {                $this->_options[] = &$tag;            }        }                /**         *    Text within the selection element is ignored.         *    @param string $content        Ignored.         *    @access public         */        function addContent($content) {        }                /**         *    Scans options for defaults to populate the         *    value array().         *    @return array        Selected fields.         *    @access public         */        function getDefault() {            $default = array();            for ($i = 0, $count = count($this->_options); $i < $count; $i++) {                if ($this->_options[$i]->getAttribute('selected') !== false) {                    $default[] = $this->_options[$i]->getDefault();                }            }            return $default;        }                /**         *    Can only set allowed values. Any illegal value         *    will result in a failure, but all correct values         *    will be set.         *    @param array $desired      New choices.         *    @return boolean            True if all allowed.         *    @access public         */        function setValue($desired) {            $achieved = array();            foreach ($desired as $value) {                $success = false;                for ($i = 0, $count = count($this->_options); $i < $count; $i++) {                    if ($this->_options[$i]->isValue($value)) {                        $achieved[] = $this->_options[$i]->getValue();                        $success = true;                        break;                    }                }                if (! $success) {                    return false;                }            }            $this->_values = $achieved;            return true;        }                /**         *    Accessor for current selection value.         *    @return array      List of currently set options.         *    @access public         */        function getValue() {            if ($this->_values === false) {                return $this->getDefault();            }            return $this->_values;        }    }        /**     *    Option for selection field.	 *    @package SimpleTest	 *    @subpackage WebTester     */    class SimpleOptionTag extends SimpleWidget {                /**         *    Stashes the attributes.         */        function SimpleOptionTag($attributes) {            $this->SimpleWidget('option', $attributes);        }                /**         *    Does nothing.         *    @param string $value      Ignored.         *    @return boolean           Not allowed.         *    @access public         */        function setValue($value) {            return false;        }                /**         *    Test to see if a value matches the option.         *    @param string $compare    Value to compare with.         *    @return boolean           True if possible match.         *    @access public         */        function isValue($compare) {            $compare = trim($compare);            if (trim($this->getValue()) == $compare) {                return true;            }            return trim($this->getContent()) == $compare;        }                /**         *    Accessor for starting value. Will be set to         *    the option label if no value exists.         *    @return string        Parsed value.         *    @access public         */        function getDefault() {            if ($this->getAttribute('value') === false) {                return $this->getContent();            }            return $this->getAttribute('value');        }                /**         *    The content of options is not part of the page.         *    @return boolean        True.         *    @access public         */        function isPrivateContent() {            return true;        }    }        /**     *    Radio button.	 *    @package SimpleTest	 *    @subpackage WebTester     */    class SimpleRadioButtonTag extends SimpleWidget {                /**         *    Stashes the attributes.         *    @param array $attributes        Hash of attributes.

⌨️ 快捷键说明

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