You are here

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