1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?php
- namespace Memcache_UI\Core {
- /**
- * A wrapper for XML elements.
- */
- class Element {
- public $attributes = array();
- public $name = NULL;
- public $new_line; // Add a new line after element
- public $value = NULL;
- public function __construct($name, $attr = NULL, $value = NULL) {
- $this->name = $name;
- $this->attributes = $attr;
- $this->value = $value;
- }
- /**
- * @link drupal7/includes/common.inc#check_plain()
- */
- public static function check_plain($text) {
- return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
- }
- /**
- * @link drupal7/includes/common.inc#drupal_attributes()
- */
- public static function getSerializedAttributes(array $attributes = array()) {
- foreach ($attributes as $attribute => &$data) {
- $data = implode(' ', (array) $data);
- $data = $attribute . '="' . self::check_plain($data) . '"';
- }
- return $attributes ? ' ' . implode(' ', $attributes) : '';
- }
- public function __toString() {
- $ret = '<'. $this->name;
- if (!empty($this->attributes) && is_array($this->attributes)) {
- $ret .= self::getSerializedAttributes($this->attributes);
- }
- if (empty($this->value)) {
- $ret .= ' />';
- }
- else {
- $ret .= '>';
- if ($this->value instanceof Element) {
- $ret .= (string) $this->value; // force __toString()
- }
- elseif (is_array($this->value)) {
- $ret .= implode("\n", $this->value);
- }
- else {
- $ret .= $this->value;
- }
- $ret .= "</$this->name>";
- }
- return $ret;
- }
- }
- }
|