function advagg_js_compress_redo_files in Advanced CSS/JS Aggregation 7.2
Get all js files and js files that are not compressed.
Parameters
array $redo_list: JS files that need to be compressed.
int $max_time: Max amount of time to spend on compressing.
bool $drush: Set to TRUE to output drush info when running.
Return value
array Array($list, $redo_list).
3 calls to advagg_js_compress_redo_files()
- advagg_js_compress_batch_process in advagg_js_compress/
advagg_js_compress.module - The batch processor.
- advagg_js_compress_cron in advagg_js_compress/
advagg_js_compress.module - Implements hook_cron().
- drush_advagg_js_compress in advagg_js_compress/
advagg_js_compress.drush.inc - Callback function for drush advagg-js-compress.
File
- advagg_js_compress/
advagg_js_compress.module, line 594 - Advanced CSS/JS aggregation js compression module.
Code
function advagg_js_compress_redo_files(array $redo_list, $max_time = 30, $drush = FALSE) {
// Get the compressor list and start the clock.
module_load_include('inc', 'advagg_js_compress', 'advagg_js_compress.advagg');
$compressor_list = advagg_js_compress_get_enabled_compressors(array(), -1);
shuffle($redo_list);
$time_start = microtime(TRUE);
if ($drush && (!is_callable('drush_log') || !is_callable('dt'))) {
$drush = FALSE;
}
// Change settings for testing.
if (isset($GLOBALS['conf']['advagg_js_compress_force_run'])) {
$advagg_js_compress_force_run = $GLOBALS['conf']['advagg_js_compress_force_run'];
}
if (isset($GLOBALS['conf']['advagg_js_compress_add_license'])) {
$advagg_js_compress_add_license = $GLOBALS['conf']['advagg_js_compress_add_license'];
}
if (isset($GLOBALS['conf']['httprl_background_callback'])) {
$httprl_background_callback = $GLOBALS['conf']['httprl_background_callback'];
}
$GLOBALS['conf']['advagg_js_compress_force_run'] = TRUE;
$GLOBALS['conf']['advagg_js_compress_add_license'] = 0;
$GLOBALS['conf']['httprl_background_callback'] = FALSE;
$counter = array();
foreach ($redo_list as $key => $values) {
// Test the files for up to 30 seconds.
$filenames_info = array();
$filenames_info[$values['data']] = $values;
$compressors = $compressor_list;
if (isset($values['compressors'])) {
$compressors = $values['compressors'];
}
if ($drush) {
drush_log(dt('Compressing @data.', array(
'@data' => $values['data'],
)), 'ok');
}
// Remove jsqueeze if compression failed.
if (!empty($values['advagg_js_compress'])) {
$neg_one_counter = 0;
foreach ($values['advagg_js_compress'] as $compressor_data) {
if ($compressor_data['code'] == -1) {
$neg_one_counter++;
}
}
if (count($values['advagg_js_compress']) === $neg_one_counter) {
$compressor_key = array_search('jsqueeze', $compressors);
if ($compressor_key !== FALSE) {
unset($compressors[$compressor_key]);
}
}
}
// Prime cache.
advagg_js_compress_run_mutiple_tests($filenames_info, $compressors);
// Add to cache.
advagg_get_info_on_file($values['data'], TRUE, TRUE);
$counter[$key] = $values;
// Stop after 30 seconds of processing.
$time_end = microtime(TRUE);
$time = $time_end - $time_start;
if (!empty($max_time) && $time > $max_time) {
break;
}
}
// Put them back to normal.
if (isset($advagg_js_compress_force_run)) {
$GLOBALS['conf']['advagg_js_compress_force_run'] = $advagg_js_compress_force_run;
}
if (isset($advagg_js_compress_add_license)) {
$GLOBALS['conf']['advagg_js_compress_add_license'] = $advagg_js_compress_add_license;
}
if (isset($httprl_background_callback)) {
$GLOBALS['conf']['httprl_background_callback'] = $httprl_background_callback;
}
return $counter;
}