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 .= "name>"; } return $ret; } } }