function svg_embed_filter_svg_embed_process in SVG Embed 7
Implements hook_filter_FILTER_process().
1 string reference to 'svg_embed_filter_svg_embed_process'
- svg_embed_filter_info in ./
svg_embed.module - Implements hook_filter_info().
File
- ./
svg_embed.module, line 69 - SVG Embed. Provides a filter for text formats that includes and on the fly translates SVG files into text fields.
Code
function svg_embed_filter_svg_embed_process($text, $filter, $format, $langcode, $cache, $cache_id) {
if (empty($text)) {
return '';
}
if ($langcode == LANGUAGE_NONE) {
global $user;
$language = user_preferred_language($user);
$langcode = $language->language;
}
if (preg_match_all("/\\[svg:([^\\:;\\?\\*\\{\\}\\/]+)\\]/", $text, $matches, PREG_SET_ORDER)) {
foreach ($matches as $match) {
if (is_numeric($match[1])) {
$field = 'fid';
}
else {
$field = 'filename';
}
$file = db_select('file_managed', 'f')
->fields('f', array(
'fid',
'uri',
))
->condition('f.' . $field, $match[1])
->execute()
->fetch();
if (!empty($file)) {
$text = str_replace('[svg:' . $match[1] . ']', _svg_embed_get_svg($file, $langcode), $text);
}
}
}
return $text;
}