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']; } }