function geofield_ymap_filter_process in Geofield Yandex Maps 7
Filter process callback.
1 string reference to 'geofield_ymap_filter_process'
- geofield_ymap_filter_info in ./
geofield_ymap.filter.inc - Implements hook_filter_info().
File
- ./
geofield_ymap.filter.inc, line 77
Code
function geofield_ymap_filter_process($text, $filter, $format, $langcode, $cache, $cache_id) {
if (preg_match_all('#\\[map(.*?)\\](.*?)\\[/map\\]#s', $text, $matches_all, PREG_SET_ORDER)) {
$default_element = array();
foreach ($filter->settings as $filter_setting_name => $filter_setting_value) {
$default_element['#' . $filter_setting_name] = $filter_setting_value;
}
foreach ($matches_all as $matches) {
$map_settings = trim($matches[1]);
$map_objects = trim($matches[2]);
$element = $default_element;
if ($map_settings) {
foreach (explode(' ', $map_settings) as $map_setting) {
list($map_setting_name, $map_setting_value) = explode('=', $map_setting);
$map_setting_name = str_replace('-', '_', $map_setting_name);
if (isset($filter->settings['map_' . $map_setting_name])) {
$element['#map_' . $map_setting_name] = trim($map_setting_value, '"');
}
}
}
if ($map_objects) {
$element['#map_objects'] = str_replace("\n", ' ', $map_objects);
}
$text = str_replace($matches[0], theme('geofield_ymap', array(
'element' => $element,
)), $text);
}
}
return $text;
}