function views_rss_rewrite_relative_paths in Views RSS 7.2
Same name and namespace in other branches
- 8.3 views_rss.module \views_rss_rewrite_relative_paths()
- 8.2 views_rss.module \views_rss_rewrite_relative_paths()
- 6.2 views_rss.module \views_rss_rewrite_relative_paths()
Preprocess callback. Replaces relative paths in element values with absolute URLs. Based on preg_match from rel_to_abs module by lourenzo, with added patch from issue #1335734 by joelstein.
See also
http://drupal.org/project/rel_to_abs
http://drupal.org/node/1335734
3 string references to 'views_rss_rewrite_relative_paths'
- views_rss_core_views_rss_channel_elements in modules/
views_rss_core/ views_rss_core.module - Implements hook_views_rss_channel_elements().
- views_rss_core_views_rss_item_elements in modules/
views_rss_core/ views_rss_core.module - Implements hook_views_rss_item_elements().
- views_rss_dc_views_rss_item_elements in modules/
views_rss_dc/ views_rss_dc.module - Implements hook_views_rss_item_elements().
File
- ./
views_rss.module, line 137 - Module providing fields-based views style plugin for RSS feed generation.
Code
function views_rss_rewrite_relative_paths(&$variables) {
// Rewriting relative paths should be enabled by default,
// so rewrite relative paths even if option value is not set.
if (!isset($variables['view']->style_plugin->options['feed_settings']['absolute_paths']) || !empty($variables['view']->style_plugin->options['feed_settings']['absolute_paths'])) {
global $base_path;
foreach ($variables['elements'] as $delta => $element) {
if (isset($element['value'])) {
// Value is an array, so this is a set of subelements.
if (is_array($element['value'])) {
views_rss_rewrite_relative_paths($variables['elements'][$delta]['value']);
}
else {
$pattern = '/(src|href)=(\'|")[^\\/]' . preg_quote($base_path, '/') . '/';
$replacement = '$1=$2' . url('<front>', array(
'absolute' => TRUE,
));
$variables['elements'][$delta]['value'] = preg_replace($pattern, $replacement, $element['value']);
}
}
}
}
}