function drupal_load_stylesheet

Loads the stylesheet and resolves all @import commands.

Loads a stylesheet and replaces @import commands with the contents of the imported file. Use this instead of file_get_contents when processing stylesheets.

The returned contents are compressed removing white space and comments only when CSS aggregation is enabled. This optimization will not apply for color.module enabled themes with CSS aggregation turned off.

Parameters

$file: Name of the stylesheet to be processed.

$optimize: Defines if CSS contents should be compressed or not.

$reset_basepath: Used internally to facilitate recursive resolution of @import commands.

Return value

Contents of the stylesheet, including any resolved @import commands.

4 calls to drupal_load_stylesheet()
CascadingStylesheetsUnitTest::testLoadCssBasic in drupal/core/modules/system/lib/Drupal/system/Tests/Common/CascadingStylesheetsUnitTest.php
Tests CSS loading via drupal_load_stylesheet().
color_scheme_form_submit in drupal/core/modules/color/color.module
Form submission handler for color_scheme_form().
drupal_build_css_cache in drupal/core/includes/common.inc
Aggregates and optimizes CSS files into a cache file in the files directory.
_drupal_load_stylesheet in drupal/core/includes/common.inc
Loads stylesheets recursively and returns contents with corrected paths.

File

drupal/core/includes/common.inc, line 2458
Common functions that many Drupal modules will need to reference.

Code

function drupal_load_stylesheet($file, $optimize = NULL, $reset_basepath = TRUE) {

  // These statics are not cache variables, so we don't use drupal_static().
  static $_optimize, $basepath;
  if ($reset_basepath) {
    $basepath = '';
  }

  // Store the value of $optimize for preg_replace_callback with nested
  // @import loops.
  if (isset($optimize)) {
    $_optimize = $optimize;
  }

  // Stylesheets are relative one to each other. Start by adding a base path
  // prefix provided by the parent stylesheet (if necessary).
  if ($basepath && !file_uri_scheme($file)) {
    $file = $basepath . '/' . $file;
  }
  $basepath = dirname($file);

  // Load the CSS stylesheet. We suppress errors because themes may specify
  // stylesheets in their .info.yml file that don't exist in the theme's path,
  // but are merely there to disable certain module CSS files.
  if ($contents = @file_get_contents($file)) {

    // Return the processed stylesheet.
    return drupal_load_stylesheet_content($contents, $_optimize);
  }
  return '';
}