tag.php.svn-base

来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 1,418 行 · 第 1/3 页

SVN-BASE
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 + -
显示快捷键?