function _async_js_process_dependencies in Asynchronous JavaScript 8
Same name and namespace in other branches
- 7 async_js.module \_async_js_process_dependencies()
Processes script dependencies, creating corresponding dependent references.
Parameters
array $scripts: An array of scripts as returned by async_js_add_js().
See also
1 call to _async_js_process_dependencies()
- async_js_js_alter in ./
async_js.module - Implements hook_js_alter().
File
- ./
async_js.module, line 181 - Queue JavaScript files to be loaded asynchronously.
Code
function _async_js_process_dependencies(array $scripts = array()) {
foreach ($scripts as $key => $script) {
// Make sure every script has an empty async_dependents array by default.
$scripts[$key]['async_dependents'] = array();
}
$scripts_copy = $scripts;
// Create corresponding dependent references.
foreach ($scripts_copy as $key => $script) {
if (!empty($script['async_dependencies'])) {
foreach ($script['async_dependencies'] as $dependency) {
if (!empty($scripts[$dependency])) {
$scripts[$dependency]['async_dependents'][] = $script['data'];
}
else {
unset($scripts[$key]);
drupal_set_message(t('The script, @script is dependent on @dependency, which does not exist on this page.', array(
'@script' => $script['data'],
'@dependency' => $dependency,
)), 'error');
}
}
}
}
return $scripts;
}