1.20.x views_plugin_cache.inc protected views_plugin_cache::assetDiff(array $assets, array $start_assets, $diff_function)

Computes the differences between two JS/CSS asset arrays.

Parameters

array $assets: The current asset array.

array $start_assets: The original asset array.

string $diff_function: The function that should be used for computing the diff.

Return value

array: A CSS or JS asset array that contains all entries that are new/different in $assets.

File

modules/views/plugins/views_plugin_cache.inc, line 241
Definition of views_plugin_cache.

Class

views_plugin_cache
The base plugin to handle caching.

Code

protected function assetDiff(array $assets, array $start_assets, $diff_function) {
  $diff = $diff_function($assets, $start_assets);

  // Clean the resulting array up, since backdrop_array_diff_assoc_recursive()
  // can leave half-populated arrays behind.
  foreach ($diff as $key => $entry) {
    // If only the weight was different, we can remove this entry.
    if (count($entry) == 1 && isset($entry['weight'])) {
      unset($diff[$key]);
    }
    // If there are other differences, we override with the latest entry.
    elseif ($entry != $assets[$key]) {
      $diff[$key] = $assets[$key];
    }
  }
  return $diff;
}