Implements hook_libraries_info().
Related topics
File
-
advagg_mod/
advagg_mod.module, line 1176
Code
function advagg_mod_libraries_info() {
$libraries['loadCSS'] = array(
'name' => 'loadCSS',
'vendor url' => 'https://github.com/filamentgroup/loadCSS',
'download url' => 'https://github.com/filamentgroup/loadCSS/archive/master.zip',
'version arguments' => array(
'file' => 'package.json',
'pattern' => '/"version":\\s+"([0-9\\.]+)"/',
'lines' => 100,
),
// Called before the library is loaded.
'callbacks' => array(
'pre-load' => array(
'advagg_mod_libraries_preload_callback',
),
),
'local version' => '2.0.1',
'remote' => array(
'callback' => 'advagg_get_github_version_json',
'url' => 'https://cdn.jsdelivr.net/gh/filamentgroup/loadCSS@master/package.json',
),
'files' => array(
'js' => array(
'src/loadCSS.js' => array(
'type' => 'file',
'async' => TRUE,
),
),
),
);
// Get the latest tagged version for external file loading.
$version = advagg_get_remote_libraries_version('loadCSS', $libraries['loadCSS']);
// Get the advagg_mod path for local loading.
$advagg_mod_path = drupal_get_path('module', 'advagg_mod');
$libraries['loadCSS'] += array(
'variants' => array(
'normal-preload' => array(
'files' => array(
'js' => array(
'src/cssrelpreload.js' => array(
'type' => 'file',
'async' => TRUE,
),
),
),
),
'normal-onload' => array(
'files' => array(
'js' => array(
'src/loadCSS.js' => array(
'type' => 'file',
'async' => TRUE,
),
'src/onloadCSS.js' => array(
'type' => 'file',
'async' => TRUE,
),
),
),
),
'minified' => array(
'files' => array(
'js' => array(
'src/loadCSS.min.js' => array(
'type' => 'file',
'async' => TRUE,
),
),
),
),
'minified-preload' => array(
'files' => array(
'js' => array(
'src/cssrelpreload.min.js' => array(
'type' => 'file',
'async' => TRUE,
),
),
),
),
'minified-onload' => array(
'files' => array(
'js' => array(
'src/loadCSS.min.js' => array(
'type' => 'file',
'async' => TRUE,
),
'src/onloadCSS.min.js' => array(
'type' => 'file',
'async' => TRUE,
),
),
),
),
'external' => array(
'files' => array(
'js' => array(
"//cdn.jsdelivr.net/gh/filamentgroup/loadCSS@v{$version}/src/loadCSS.js" => array(
'type' => 'external',
'data' => "//cdn.jsdelivr.net/gh/filamentgroup/loadCSS@v{$version}/src/loadCSS.js",
'async' => TRUE,
),
),
),
),
'external-preload' => array(
'files' => array(
'js' => array(
"//cdn.jsdelivr.net/gh/filamentgroup/loadCSS@v{$version}/src/cssrelpreload.js" => array(
'type' => 'external',
'data' => "//cdn.jsdelivr.net/gh/filamentgroup/loadCSS@v{$version}/src/cssrelpreload.js",
'async' => TRUE,
),
),
),
),
'external-onload' => array(
'files' => array(
'js' => array(
"//cdn.jsdelivr.net/gh/filamentgroup/loadCSS@v{$version}/src/loadCSS.js" => array(
'type' => 'external',
'data' => "//cdn.jsdelivr.net/gh/filamentgroup/loadCSS@v{$version}/src/loadCSS.js",
'async' => TRUE,
),
"//cdn.jsdelivr.net/gh/filamentgroup/loadCSS@v{$version}/src/onloadCSS.js" => array(
'type' => 'external',
'data' => "//cdn.jsdelivr.net/gh/filamentgroup/loadCSS@v{$version}/src/onloadCSS.js",
'async' => TRUE,
),
),
),
),
'local' => array(
'version' => '1.3.1',
'files' => array(
'js' => array(
"{$advagg_mod_path}/loadCSS.js" => array(
'type' => 'file',
'data' => "{$advagg_mod_path}/loadCSS.js",
'async' => TRUE,
),
),
),
),
'local-preload' => array(
'version' => '1.3.1',
'files' => array(
'js' => array(
"{$advagg_mod_path}/cssrelpreload.js" => array(
'type' => 'file',
'data' => "{$advagg_mod_path}/cssrelpreload.js",
'async' => TRUE,
),
),
),
),
'local-onload' => array(
'version' => '1.3.1',
'files' => array(
'js' => array(
"{$advagg_mod_path}/loadCSS.js" => array(
'type' => 'file',
'data' => "{$advagg_mod_path}/loadCSS.js",
'async' => TRUE,
),
"{$advagg_mod_path}/onloadCSS.js" => array(
'type' => 'file',
'data' => "{$advagg_mod_path}/onloadCSS.js",
'async' => TRUE,
),
),
),
),
'local-minified' => array(
'version' => '1.3.1',
'files' => array(
'js' => array(
"{$advagg_mod_path}/loadCSS.min.js" => array(
'type' => 'file',
'data' => "{$advagg_mod_path}/loadCSS.min.js",
'async' => TRUE,
),
),
),
),
'local-minified-preload' => array(
'version' => '1.3.1',
'files' => array(
'js' => array(
"{$advagg_mod_path}/cssrelpreload.min.js" => array(
'type' => 'file',
'data' => "{$advagg_mod_path}/cssrelpreload.min.js",
'async' => TRUE,
),
),
),
),
'local-minified-onload' => array(
'version' => '1.3.1',
'files' => array(
'js' => array(
"{$advagg_mod_path}/loadCSS.min.js" => array(
'type' => 'file',
'data' => "{$advagg_mod_path}/loadCSS.min.js",
'async' => TRUE,
),
"{$advagg_mod_path}/onloadCSS.min.js" => array(
'type' => 'file',
'data' => "{$advagg_mod_path}/onloadCSS.min.js",
'async' => TRUE,
),
),
),
),
),
);
// Add inline data.
$loadcss_loc = "{$advagg_mod_path}/loadCSS.min.js";
$cssrelpreload_loc = "{$advagg_mod_path}/cssrelpreload.min.js";
$onloadcss_loc = "{$advagg_mod_path}/onloadCSS.min.js";
// Use given library if there.
$libraries_paths = array();
if (is_callable('libraries_get_libraries')) {
$libraries_paths = libraries_get_libraries();
}
if (isset($libraries_paths['loadCSS'])) {
// Get location of loadCSS.
if (is_readable($libraries_paths['loadCSS'] . '/src/loadCSS.min.js')) {
$loadcss_loc = $libraries_paths['loadCSS'] . '/src/loadCSS.min.js';
$libraries['loadCSS']['variants']['minified']['#files_exists'] = TRUE;
}
elseif (is_readable($libraries_paths['loadCSS'] . '/src/loadCSS.js')) {
$loadcss_loc = $libraries_paths['loadCSS'] . '/src/loadCSS.js';
}
// Get location of cssrelpreload.
if (is_readable($libraries_paths['loadCSS'] . '/src/cssrelpreload.min.js')) {
$cssrelpreload_loc = $libraries_paths['loadCSS'] . '/src/cssrelpreload.min.js';
if ($libraries['loadCSS']['variants']['minified']['#files_exists']) {
$libraries['loadCSS']['variants']['minified-preload']['#files_exists'] = TRUE;
}
}
elseif (is_readable($libraries_paths['loadCSS'] . '/src/cssrelpreload.js')) {
$cssrelpreload_loc = $libraries_paths['loadCSS'] . '/src/cssrelpreload.js';
}
// Get location of onloadCSS.
if (is_readable($libraries_paths['loadCSS'] . '/src/onloadCSS.min.js')) {
$onloadcss_loc = $libraries_paths['loadCSS'] . '/src/onloadCSS.min.js';
if ($libraries['loadCSS']['variants']['minified']['#files_exists']) {
$libraries['loadCSS']['variants']['minified-preload']['#files_exists'] = TRUE;
}
}
elseif (is_readable($libraries_paths['loadCSS'] . '/src/onloadCSS.js')) {
$onloadcss_loc = $libraries_paths['loadCSS'] . '/src/onloadCSS.js';
}
}
// Add inline scripts.
$libraries['loadCSS']['variants'] += array(
'inline' => array(
'files' => array(
'js' => array(
'loadCSS_inline' => array(
'type' => 'inline',
'data' => (string) @advagg_file_get_contents($loadcss_loc),
'no_defer' => TRUE,
),
),
),
),
'inline-preload' => array(
'files' => array(
'js' => array(
'cssrelpreload_inline' => array(
'type' => 'inline',
'data' => (string) @advagg_file_get_contents($cssrelpreload_loc),
'no_defer' => TRUE,
),
),
),
),
'inline-onload' => array(
'files' => array(
'js' => array(
'loadCSS_inline' => array(
'type' => 'inline',
'data' => (string) @advagg_file_get_contents($loadcss_loc),
'no_defer' => TRUE,
),
'onloadCSS_inline' => array(
'type' => 'inline',
'data' => (string) @advagg_file_get_contents($onloadcss_loc),
'no_defer' => TRUE,
),
),
),
),
);
if (!is_callable('libraries_detect')) {
// Set defaults.
$default_options = advagg_mod_loadcss_js_defaults();
foreach ($libraries['loadCSS']['files']['js'] as &$value) {
$value += $default_options;
}
foreach ($libraries['loadCSS']['variants'] as &$values) {
foreach ($values['files']['js'] as &$value) {
$value += $default_options;
}
}
}
return $libraries;
}