You are here

function advagg_checksum in Advanced CSS/JS Aggregation 7

Same name and namespace in other branches
  1. 6 advagg.module \advagg_checksum()

Generate a checksum for a given filename.

Parameters

$filename: filename

Return value

Checksum value.

2 calls to advagg_checksum()
advagg_flush_caches in ./advagg.module
Implements hook_flush_caches().
advagg_insert_bundle_db in ./advagg.module
Insert info into the advagg_files and advagg_bundles database.

File

./advagg.module, line 1408
Advanced CSS/JS aggregation module

Code

function advagg_checksum($filename) {
  advagg_clearstatcache(TRUE, $filename);
  if (file_exists($filename)) {
    $mode = variable_get('advagg_checksum_mode', ADVAGG_CHECKSUM_MODE);
    if ($mode == 'filemtime' && function_exists('filemtime')) {
      $checksum = @filemtime($filename);
      if ($checksum === FALSE) {
        touch($filename);
        advagg_clearstatcache(TRUE, $filename);
        $checksum = @filemtime($filename);

        // Use md5 as a last option.
        if ($checksum === FALSE) {
          $checksum = md5(file_get_contents($filename));
        }
      }
    }
    elseif ($mode = 'md5' && function_exists('md5')) {
      $checksum = md5(file_get_contents($filename));
    }
  }
  else {
    $checksum = '-1';
  }
  return $checksum;
}