Graph::Element PHP Method

Element() protected method

Draws an element
protected Element ( $name, $attribs = NULL, $styles = NULL, $content = NULL )
    protected function Element($name, $attribs = NULL, $styles = NULL, $content = NULL)
    {
        // these properties require units to work well
        $require_units = array('stroke-width', 'stroke-dashoffset', 'font-size', 'baseline-shift', 'kerning', 'letter-spacing', 'word-spacing');
        if ($this->namespace && strpos($name, ':') === FALSE) {
            $name = 'svg:' . $name;
        }
        $element = '<' . $name;
        if (is_array($attribs)) {
            foreach ($attribs as $attr => $val) {
                // if units required, add px
                if (is_numeric($val)) {
                    if (array_search($attr, $require_units) !== FALSE) {
                        $val .= 'px';
                    }
                } else {
                    $val = htmlspecialchars($val);
                }
                $element .= ' ' . $attr . '="' . $val . '"';
            }
        }
        if (is_array($styles)) {
            $element .= ' style="';
            foreach ($styles as $attr => $val) {
                // check units again
                if (is_numeric($val)) {
                    if (array_search($attr, $require_units) !== FALSE) {
                        $val .= 'px';
                    }
                } else {
                    $val = htmlspecialchars($val);
                }
                $element .= $attr . ':' . $val . ';';
            }
            $element .= '"';
        }
        if (is_null($content)) {
            $element .= "/>\n";
        } else {
            $element .= '>' . $content . '</' . $name . ">\n";
        }
        return $element;
    }