123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465 |
- <?php
- class HTML_Common
- {
-
- var $_attributes = array();
-
- var $_tabOffset = 0;
-
- var $_tab = "\11";
-
- var $_lineEnd = "\12";
-
- var $_comment = '';
- public $freezeSeeOnlySelected;
-
- public function __construct($attributes = null, $tabOffset = 0)
- {
- $this->freezeSeeOnlySelected = false;
- $this->setAttributes($attributes);
- $this->setTabOffset($tabOffset);
- }
-
- function apiVersion()
- {
- return 1.7;
- }
-
- function _getLineEnd()
- {
- return $this->_lineEnd;
- }
-
- function _getTab()
- {
- return $this->_tab;
- }
-
- function _getTabs()
- {
- return str_repeat($this->_getTab(), $this->_tabOffset);
- }
-
- public function _getAttrString($attributes)
- {
- $strAttr = '';
- if (is_array($attributes)) {
- $charset = HTML_Common::charset();
- foreach ($attributes as $key => $value) {
-
- $value = @htmlspecialchars($value, ENT_COMPAT, $charset);
- $strAttr .= ' ' . $key . '="' . $value. '"';
- }
- }
- return $strAttr;
- }
-
- public function _parseAttributes($attributes)
- {
- if (is_array($attributes)) {
- $ret = array();
- foreach ($attributes as $key => $value) {
- if (is_int($key)) {
- $key = $value = strtolower($value);
- } else {
- $key = strtolower($key);
- }
- $ret[$key] = $value;
- }
- return $ret;
- } elseif (is_string($attributes)) {
- $preg = "/(([A-Za-z_:]|[^\\x00-\\x7F])([A-Za-z0-9_:.-]|[^\\x00-\\x7F])*)" .
- "([ \\n\\t\\r]+)?(=([ \\n\\t\\r]+)?(\"[^\"]*\"|'[^']*'|[^ \\n\\t\\r]*))?/";
- if (preg_match_all($preg, $attributes, $regs)) {
- for ($counter=0; $counter<count($regs[1]); $counter++) {
- $name = $regs[1][$counter];
- $check = $regs[0][$counter];
- $value = $regs[7][$counter];
- if (trim($name) == trim($check)) {
- $arrAttr[strtolower(trim($name))] = strtolower(trim($name));
- } else {
- if (substr($value, 0, 1) == "\"" || substr($value, 0, 1) == "'") {
- $arrAttr[strtolower(trim($name))] = substr($value, 1, -1);
- } else {
- $arrAttr[strtolower(trim($name))] = trim($value);
- }
- }
- }
- return $arrAttr;
- }
- }
- }
-
- function _getAttrKey($attr, $attributes)
- {
- if (isset($attributes[strtolower($attr)])) {
- return true;
- } else {
- return null;
- }
- }
-
- function _updateAttrArray(&$attr1, $attr2)
- {
- if (!is_array($attr2)) {
- return false;
- }
- foreach ($attr2 as $key => $value) {
- $attr1[$key] = $value;
- }
- }
-
- function _removeAttr($attr, &$attributes)
- {
- $attr = strtolower($attr);
- if (isset($attributes[$attr])) {
- unset($attributes[$attr]);
- }
- }
-
- public function getAttribute($attr)
- {
- $attr = strtolower($attr);
- if (isset($this->_attributes[$attr])) {
- return $this->_attributes[$attr];
- }
- return null;
- }
-
- function setAttribute($name, $value = null)
- {
- $name = strtolower($name);
- if (is_null($value)) {
- $value = $name;
- }
- $this->_attributes[$name] = $value;
- }
-
- function setAttributes($attributes)
- {
- $this->_attributes = $this->_parseAttributes($attributes);
- }
-
- function getAttributes($asString = false)
- {
- if ($asString) {
- return $this->_getAttrString($this->_attributes);
- } else {
- return $this->_attributes;
- }
- }
-
- function updateAttributes($attributes)
- {
- $this->_updateAttrArray($this->_attributes, $this->_parseAttributes($attributes));
- }
-
- function removeAttribute($attr)
- {
- $this->_removeAttr($attr, $this->_attributes);
- }
-
- function setLineEnd($style)
- {
- switch ($style) {
- case 'win':
- $this->_lineEnd = "\15\12";
- break;
- case 'unix':
- $this->_lineEnd = "\12";
- break;
- case 'mac':
- $this->_lineEnd = "\15";
- break;
- default:
- $this->_lineEnd = $style;
- }
- }
-
- function setTabOffset($offset)
- {
- $this->_tabOffset = $offset;
- }
-
- function getTabOffset()
- {
- return $this->_tabOffset;
- }
-
- function setTab($string)
- {
- $this->_tab = $string;
- }
-
- function setComment($comment)
- {
- $this->_comment = $comment;
- }
-
- function getComment()
- {
- return $this->_comment;
- }
-
- function toHtml()
- {
- return '';
- }
-
- function display()
- {
- print $this->toHtml();
- }
-
- function charset($newCharset = null)
- {
- return 'UTF-8';
- }
- }
|