You are here

function advagg_missing_create_file in Advanced CSS/JS Aggregation 7.2

Given a filename create that file.

Parameters

string $filename: Just the filename no path information.

bool $no_alters: (optional) Set to TRUE to do the bare amount of processing on the file.

mixed $data: (optional) Output from advagg_get_hashes_from_filename().

Return value

mixed On failure a string saying why it failed. On success the $files_to_save array.

3 calls to advagg_missing_create_file()
advagg_build_aggregates in ./advagg.module
Builds the requested CSS/JS aggregates.
advagg_missing_fatal_handler in ./advagg.missing.inc
Given a filename create that file; usually works if PHP goes fatal.
advagg_missing_generate in ./advagg.missing.inc
Generates a missing CSS/JS file and send it to client.

File

./advagg.missing.inc, line 423
Advanced CSS/JS aggregation module.

Code

function advagg_missing_create_file($filename, $no_alters = FALSE, $data = array()) {

  // Option to still delever the file if fatal error.
  register_shutdown_function("advagg_missing_fatal_handler", $filename);
  if (empty($data)) {
    $data = advagg_get_hashes_from_filename($filename);
  }
  if (is_array($data)) {
    list($type, $aggregate_filenames_hash, $aggregate_contents_hash, $aggregate_settings) = $data;
  }
  else {
    return $data;
  }
  if (empty($aggregate_settings)) {
    $aggregate_settings = advagg_current_hooks_hash_array();
  }

  // Set no alters if this is the last chance of generating the aggregate.
  if ($no_alters) {
    $aggregate_settings['settings']['no_alters'] = TRUE;
  }

  // Get a list of files.
  $files = advagg_get_files_from_hashes($type, $aggregate_filenames_hash, $aggregate_contents_hash);
  if (empty($files)) {
    return t('Hashes do not match database.');
  }

  // Save aggregate file.
  list($files_to_save, $errors) = advagg_save_aggregate($filename, $files, $type, $aggregate_settings);

  // Update atime.
  advagg_multi_update_atime(array(
    array(
      'aggregate_filenames_hash' => $aggregate_filenames_hash,
      'aggregate_contents_hash' => $aggregate_contents_hash,
    ),
  ));

  // Make sure .htaccess file exists in the advagg dir.
  if (variable_get('advagg_htaccess_check_generate', ADVAGG_HTACCESS_CHECK_GENERATE)) {
    advagg_htaccess_check_generate($files_to_save, $type);
  }

  // Return data.
  return array(
    $files_to_save,
    $type,
    $aggregate_filenames_hash,
    $aggregate_contents_hash,
    $aggregate_settings,
    $files,
    $errors,
  );
}