Пример #1
0
function svg_preprocess($element)
{
    if (isset($element->data['margin'])) {
        $margin =& $element->data['margin'];
        $parts = svg_parselist($margin);
        $count = count($parts);
        if ($count === 1) {
            $margin = array($parts[0], $parts[0], $parts[0], $parts[0]);
        } elseif ($count === 2) {
            $margin = array($parts[0], $parts[1], $parts[0], $parts[1]);
        } elseif ($count === 3) {
            $margin = array($parts[0], $parts[1], $parts[2], $parts[1]);
        } else {
            $margin = $parts;
        }
    } else {
        $element->data['margin'] = array(0, 0, 0, 0);
    }
    // 'Unzip' string tokens on data attributes.
    foreach (array('points', 'd') as $point_data_attr) {
        if (isset($element->attrs[$point_data_attr])) {
            $value = $element->attrs[$point_data_attr];
            if (Tokens::is($value, 's')) {
                $element->attrs[$point_data_attr] = trim(Crush::$process->tokens->get($value), '"\'');
            }
        }
    }
    if (isset($element->data['width'])) {
        $element->svg_attrs['width'] = $element->data['width'];
    }
    if (isset($element->data['height'])) {
        $element->svg_attrs['height'] = $element->data['height'];
    }
}