You are here

function picture_background_formatter_generate_background_css in Picture Background Formatter 7

CSS Generator Helper Function.

Parameters

string $original_uri: URI of the field image.

array $picture_mapping: Desired picture mapping to generate CSS.

string $selector: CSS selector to target.

Return value

string Generated background image CSS.

See also

picture_background_formatter_field_formatter_view()

1 call to picture_background_formatter_generate_background_css()
picture_background_formatter_field_formatter_view in ./picture_background_formatter.module
Implements hook_field_formatter_view().

File

./picture_background_formatter.module, line 122
Hooks and functions for the Picture Background Formatter module.

Code

function picture_background_formatter_generate_background_css($original_uri, $picture_mapping, $selector) {
  $breakpoints = picture_background_formatter_picture_breakpoint_data($picture_mapping);
  $css = "";
  foreach ($breakpoints as $breakpoint_size => $breakpoint_styles) {
    if ($breakpoint_size != "default") {
      $css .= '@media ' . $breakpoint_size . ' {';
    }
    foreach ($breakpoint_styles as $multiplier => $style_info) {
      $multiplier = rtrim($multiplier, ",");
      if ($style_info['image_style'] == "_original image_") {
        $url = file_create_url($original_uri);
      }
      else {
        $url = image_style_url($style_info['image_style'], $original_uri);
      }
      if ($multiplier != 1) {
        $css .= '@media (-webkit-min-device-pixel-ratio: ' . $multiplier . '), (min-resolution: ' . rtrim($multiplier, 'x') * 96 . 'dpi), (min-resolution: ' . $multiplier . 'dppx) {';
      }
      $css .= $selector . ' {background-image: url(' . $url . ');}';
      if ($multiplier != 1) {
        $css .= '}';
      }
    }
    if ($breakpoint_size != "default") {
      $css .= '}';
    }
  }
  return $css;
}